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

Język wykładowy Polski
Semestr Zimowy
Status W ofercie
Opiekun Jan Otop
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 aspektów optymalizacji sieci neuronowych pod urządzenia o ograniczonych zasobach obliczeniowych i pamięciowych, jak np. urządzenia wbudowane. W trakcie wykładów przedstawione będą: * Przykłady głębokich sieci neuronowych projektowanych pod kątem urządzeń wbudowanych. * Algorytmy optymalizujące sieci neuronowe pod względem pamięciowym i obliczeniowym, jak np. quantization, pruning, clustering czy knowledge distillation. * Biblioteki i narzędzia (np. kompilatory) open source do optymalizacji sieci neuronowych i procesu ich wykonywania - TensorFlow Model Optimization Toolkit, NNI, TensorFlow Lite, Apache TVM, czy IREE. * Przykłady niskopoziomowych technik optymalizacji najpopularniejszych operacji w sieciach neuronowych. * Przykłady sprzętowych akceleracji operacji występujących w sieciach neuronowych na CPU oraz GPU * Przykłady akceleratorów operacji sieci neuronowych Zajęcia na uczelni będą zajęciami wykładowo-ćwiczeniowymi. Dodatkowo, zagadnienia z wykładów będą realizowane w praktyce w ramach miniprojektów - przeprowadzane będą różne optymalizacje sieci, a następnie weryfikowany będzie ich wpływ na szybkość wykonywania inferencji, zajętość pamięci, oraz jakość predykcji. Również w ramach zadań praktycznych 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. Wymaganym systemem operacyjnym do pracy w ramach tego projektu jest dowolna dystrybucja Linuxa. Głównymi językami programowania wymaganymi w trakcie kursu będzie Python oraz C/C++.