Ten dokument zawiera omówienie przycinania modelu, aby pomóc określić, jak pasuje on do przypadku użycia.
- Aby zagłębić się w kompletny przykład, zobacz przykład Przycinanie za pomocą Keras .
- Aby szybko znaleźć interfejsy API potrzebne do Twojego przypadku użycia, zapoznaj się z obszernym przewodnikiem po przycinaniu .
- Aby zapoznać się z zastosowaniem przycinania na potrzeby wnioskowania na urządzeniu, zapoznaj się z sekcją Przycinanie na potrzeby wnioskowania na urządzeniu za pomocą pakietu XNNPACK .
- Aby zobaczyć przykład przycinania konstrukcyjnego, uruchom samouczek Przycinanie konstrukcyjne z rozrzutnością 2 na 4 .
Przegląd
Przycinanie wag na podstawie wielkości stopniowo zeruje wagi modelu podczas procesu uczenia, aby uzyskać rzadkość modelu. Modele rzadkie są łatwiejsze do skompresowania i możemy pominąć zera podczas wnioskowania, aby poprawić opóźnienia.
Ta technika wprowadza ulepszenia poprzez kompresję modelu. W przyszłości wsparcie frameworka dla tej techniki zapewni poprawę opóźnień. Zaobserwowaliśmy nawet sześciokrotną poprawę kompresji modelu przy minimalnej utracie dokładności.
Technika ta jest oceniana w różnych zastosowaniach związanych z mową, takich jak rozpoznawanie mowy i zamiana tekstu na mowę, i była eksperymentowana w różnych modelach widzenia i tłumaczenia.
Macierz zgodności API
Użytkownicy mogą stosować przycinanie za pomocą następujących interfejsów API:
- Budowa modelu:
tf.keras
tylko z modelami sekwencyjnymi i funkcjonalnymi - Wersje TensorFlow: TF 1.x dla wersji 1.14+ i 2.x.
-
tf.compat.v1
z pakietem TF 2.X itf.compat.v2
z pakietem TF 1.X nie są obsługiwane.
-
- Tryb wykonywania TensorFlow: zarówno wykres, jak i zachłanność
- Rozproszone szkolenie:
tf.distribute
tylko z wykonaniem wykresu
Na naszej mapie drogowej znajduje się wsparcie w następujących obszarach:
Wyniki
Klasyfikacja obrazu
Model | Non-sparse Top-1 Dokładność | Losowa rzadka dokładność | Losowa rzadkość | Strukturalna rzadka dokładność | Strukturalna rzadkość |
---|---|---|---|---|---|
PoczątekV3 | 78,1% | 78,0% | 50% | 75,8% | 2 na 4 |
76,1% | 75% | ||||
74,6% | 87,5% | ||||
Sieć komórkowaV1 224 | 71,04% | 70,84% | 50% | 67,35% | 2 na 4 |
MobilenetV2 224 | 71,77% | 69,64% | 50% | 66,75% | 2 na 4 |
Modele zostały przetestowane na Imagenet.
Tłumaczenie
Model | Nierzadki BLEU | Rzadki BLEU | Rzadkość |
---|---|---|---|
GNMT EN-DE | 26,77 | 26,86 | 80% |
26,52 | 85% | ||
26.19 | 90% | ||
GNMT DE-EN | 29.47 | 29,50 | 80% |
29.24 | 85% | ||
28,81 | 90% |
Modele wykorzystują niemiecki i angielski zestaw danych WMT16 z news-test2013 jako zestawem deweloperskim i news-test2015 jako zestawem testowym.
Model wyszukiwania słów kluczowych
DS-CNN-L to model wykrywania słów kluczowych stworzony dla urządzeń brzegowych. Można go znaleźć w repozytorium przykładów oprogramowania ARM.
Model | Dokładność nierzadka | Strukturalna dokładność rzadka (wzór 2 na 4) | Losowa rzadka celność (rzadkość celu 50%) |
---|---|---|---|
DS-CNN-L | 95,23 | 94,33 | 94,84 |
Przykłady
Oprócz samouczka Prune with Keras zobacz następujące przykłady:
- Wytrenuj model CNN na podstawie odręcznego zadania klasyfikacji cyfr MNIST z przycinaniem: kod
- Trenuj LSTM w zadaniu klasyfikacji sentymentu IMDB z przycinaniem: kod
Aby uzyskać więcej informacji, zobacz Przycinać lub nie przycinać: badanie skuteczności przycinania dla kompresji modelu [ papier ].