Naslov Kvantizirane neuronske mreže na razvojnom sustavu PYNQ
Naslov (engleski) Quantized neural networks on the PYNQ development system
Autor Petar Grekšić
Mentor Hrvoje Mlinarić (mentor)
Član povjerenstva Hrvoje Mlinarić (predsjednik povjerenstva)
Član povjerenstva Josip Knezović (član povjerenstva)
Član povjerenstva Daniel Hofman (član povjerenstva)
Ustanova koja je dodijelila akademski / stručni stupanj Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zagreb
Datum i država obrane 2021-02-23, Hrvatska
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Računarstvo
Sažetak Popularnost korištenja neuronskih mreža u modernim računalnim sustavima svakim danom sve više raste, kao i kompleksnost problema koji se rješavaju uz pomoć tih neuronskih mreža. Poznatiji problemi koji se rješavaju uz pomoć neuronskih mreža uključuju prepoznavanje uzoraka na slikama ili video signalu, prepoznavanje teksta, pretvaranje teksta u govor ili obratno, klimatsko predviđanje i mnogi drugi manje poznati problemi. Međutim, kako istraživači povećavaju strukturu neuronskih mreža kako bi klasificirali komplicirane probleme uz veliku preciznost, moderne neuronske mreže mogu zauzimati nekoliko GB memorije u parametrima i zahtijevati nekoliko milijardi operacija za klasifikaciju jednog ulaza što je nepovoljno za izvođenje na računalnim sustavima koji imaju ograničenja u područjima memorije i potrošnje energije, primjerice ugradbeni računalni sustavi ili računalni sustavi koji zahtijevaju veliki stupanj skalabilnosti. Na sreću, dokazano je da neuronske mreže s parametrima u obliku brojeva s pomičnim zarezom sadrže veliki stupanj redundancije, odnosno da se isti problemi mogu, uz prihvatljiv gubitak na preciznosti, klasificirati uz pomoć neuronskih mreža s kvantiziranim parametrima. U sklopu ovog diplomskog rada opisan je postupak treniranja kvantiziranih neuronskih mreža korištenjem programske biblioteke Brevitas, prevođenje treniranog modela kvantizirane neuronske mreže iz ONNX podatkovnog formata u oblik pogodan za Vivado HLS sintezu uz pomoć skriptnog prevodioca FINN i izrada pokaznog sustava koji se izvodi na PYNQ-Z1 razvojnoj pločici. Pokazni sustav se sastoji od dvije Jupyter bilježnice od kojih prva služi za testiranje performansi dobivenog akceleratora, a druga omogućava klasifikaciju slike dohvaćene putem USB kamere. Korisnik upravlja s pokaznim sustavom tako da se spoji na poslužitelj Jupyter bilježnica koji je pokrenut na PYNQ-Z1 razvojnoj pločici koristeći web preglednik.
Sažetak (engleski) The popularity of using neural networks in modern computing system grows with each passing day, as does the complexity of the problems which are solved with aforementioned neural networks. Some of the more known problems that are solved by using neural networks include pattern recognition in images or video signal, text recognition, text to speech conversion or speech to text conversion, climate change prediction along with many other less known problems. However, as researchers increase the structure of neural network sin order to classify more complex problems with great precision, modern neural networks can take up a few GB in memory for parameters and require a few billion floating point operations just to classify a single input which is not suitable for deployment on computing system with limitations regarding memory or energy consumption, such as embedded computing systems or computing systems with high scalability requirements. Luckily, it was proven that full precision floating point neural networks contain a lot of redundancy, or in other words it was shown that quantized parameter neural networks can be used to solve the same problems, albeit with acceptable accuracy loss. This masters thesis describes the training of quantized neural networks using Brevitas, exporting the neural networks from ONNX model format to a form which is suitable for Vivado HLS synthesis with the help of the FINN script compiler and construction of a demonstration system which is executed on a PYNQ-Z1 development board. The demonstration system consists of two Jupyter notebooks of which the first is used for testing the performance of the accelerator and the second is used to classify the image taken by the USB camera. Interfacing with the demonstration system is done by connecting to the running Jupyter notebook server on the PYNQ-Z1 development board with a web browser.
Ključne riječi
PYNQ
razvojna pločica
PYNQ-Z1
neuronske mreže
kvantizacija
Brevitas
Pytorch
ONNX
Docker
verifikacija
konvolucija
Vivado
FINN
PyVerilator
cppsim
Python
Xilinx
Ključne riječi (engleski)
PYNQ
development board
PYNQ-Z1
neural networks
quantization
Brevitas
Pytorch
ONNX
Docker
verification
convolution
Vivado
FINN
PyVerilator
cppsim
Python
Xilinx
Jezik hrvatski
URN:NBN urn:nbn:hr:168:647928
Studijski program Naziv: Računarstvo Vrsta studija: sveučilišni Stupanj studija: diplomski Akademski / stručni naziv: magistar/magistra inženjer/inženjerka računarstva (mag.ing.comp.)
Vrsta resursa Tekst
Način izrade datoteke Izvorno digitalna
Prava pristupa Zatvoreni pristup
Uvjeti korištenja
Javna napomena
Datum i vrijeme pohrane 2023-01-13 10:02:36