Optymalizacja głębokich sieci neuronowych na urządzenia IoT

Język wykładowy Polski
Semestr Zimowy
Status W ofercie
Opiekun Filip Chudy
Liczba godzin 7 (wyk.) 7 (prac.)
Rodzaj K2 - kurs zaawansowany
ECTS 3
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

** Przedmiot jest prowadzony przez Grzegorza Latosińskiego z Antmicro. ** Celem przedmiotu jest przedstawienie różnych technik optymalizacji sieci neuronowych pod urządzenia o ograniczonych zasobach obliczeniowych i pamięciowych, w szczególności urządzeń wbudowanych. W trakcie wykładów przedstawione będą - Algorytmy optymalizujące sieci neuronowe pod względem pamięciowym i obliczeniowym, jak kwantyzacja, pruning, klasteryzacja wag czy destylacja wiedzy. - Popularne niskopoziomowe techniki optymalizacji najpopularniejszych operacji w sieciach neuronowych. - Urządzenia wbudowane z dedykowanymi akceleratorami sieci neuronowych i procesem ich obliczeń. - Narzędzia i biblioteki (typu open source) do: - Optymalizacji sieci neuronowych i procesu ich wykonywania (TensorFlow Model Optimization Toolkit, NNI) - Kompilacji sieci neuronowych (Apache TVM, IREE) - Uruchamiania sieci na docelowych urządzeniach (Apache TVM, IREE, LiteRT, ONNXRuntime, ExecuTorch, ...) - Symulacji/emulacji urządzeń wbudowanych i akceleratorów sieci neuronowych - Przykłady głębokich sieci neuronowych projektowanych pod kątem urządzeń wbudowanych. W trakcie laboratoriów będą w praktyce realizowane zagadnienia z wykładów - przeprowadzane będą różne optymalizacje sieci, a następnie weryfikowany będzie ich wpływ na wydajność sieci (szybkość wykonywania inferencji, zużycie zasobów), oraz jakość predykcji. Również w trakcie laboratoriów będziemy weryfikować, jak należy przygotować odpowiednio model pod wybrane optymalizacje, i jak dobierać optymalizacje pod konkretną platformę sprzętową. Zalecanym systemem operacyjnym do pracy jest dowolna dystrybucja Linuxa. Głównym językiem programowania wymaganym w trakcie kursu jest Python.