Ten dokument zawiera przegląd czyszczenia modelu, który pomoże Ci określić, jak pasuje on do Twojego przypadku użycia.
- Aby przejść od razu do kompleksowego przykładu, zobacz przykład Przycinanie za pomocą Keras .
- Aby szybko znaleźć interfejsy API potrzebne w danym przypadku użycia, zapoznaj się z obszernym przewodnikiem dotyczącym czyszczenia .
- Aby poznać zastosowanie czyszczenia pod kątem wnioskowania na urządzeniu, zobacz Czyszczenie pod kątem wnioskowania na urządzeniu za pomocą XNNPACK .
- Aby zobaczyć przykład przycinania strukturalnego, uruchom samouczek Przycinanie strukturalne z rzadkością 2 na 4 .
Przegląd
Przycinanie wag w oparciu o wielkość stopniowo zeruje wagi modeli podczas procesu uczenia, aby osiągnąć rzadkość modelu. Modele rzadkie są łatwiejsze do kompresji i możemy pominąć zera podczas wnioskowania, aby poprawić opóźnienia.
Technika ta zapewnia ulepszenia poprzez kompresję modelu. W przyszłości wsparcie ramowe dla tej techniki zapewni poprawę opóźnień. Zaobserwowaliśmy nawet 6-krotną 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 przetwarzanie tekstu na mowę, a także była testowana w różnych modelach widzenia i tłumaczenia.
Matryca zgodności API
Użytkownicy mogą zastosować przycinanie za pomocą następujących interfejsów API:
- Budowanie modelu:
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 wykonania TensorFlow: zarówno wykres, jak i chętny
- Uczenie rozproszone:
tf.distribute
z wykonaniem tylko wykresu
Naszym planem działania jest dodanie wsparcia w następujących obszarach:
Wyniki
Klasyfikacja obrazu
Model | Nierzadka dokładność na najwyższym poziomie | Losowa, rzadka dokładność | Losowa rzadkość | Strukturalna rzadka dokładność | Strukturalna rzadkość |
---|---|---|---|---|---|
IncepcjaV3 | 78,1% | 78,0% | 50% | 75,8% | 2 na 4 |
76,1% | 75% | ||||
74,6% | 87,5% | ||||
MobilenetV1 224 | 71,04% | 70,84% | 50% | 67,35% | 2 na 4 |
MobilenetV2 224 | 71,77% | 69,64% | 50% | 66,75% | 2 na 4 |
Modele testowano w serwisie 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 zbiór danych WMT16 z news-test2013 jako zestawem deweloperskim i news-test2015 jako zestawem testowym.
Model wyszukiwania słów kluczowych
DS-CNN-L to model wyszukiwania słów kluczowych stworzony dla urządzeń brzegowych. Można go znaleźć w repozytorium przykładów oprogramowania ARM.
Model | Nierzadka dokładność | Strukturalna, rzadka dokładność (wzór 2 na 4) | Losowa rzadka dokładność (rzadkość celu 50%) |
---|---|---|---|
DS-CNN-L | 95,23 | 94,33 | 94,84 |
Przykłady
Oprócz samouczka Prune with Keras zapoznaj się z następującymi przykładami:
- Wytrenuj model CNN w zakresie zadania klasyfikacji cyfr pisanych odręcznie MNIST z przycinaniem: kod
- Trenuj LSTM w zadaniu klasyfikacji tonacji IMDB za pomocą czyszczenia: code
Więcej informacji można znaleźć w artykule Przycinać czy nie przycinać: badanie skuteczności przycinania w celu kompresji modelu [ artykuł ].