Questo documento fornisce una panoramica sull'eliminazione del modello per aiutarti a determinare come si adatta al tuo caso d'uso.
- Per immergerti direttamente in un esempio end-to-end, consulta l'esempio di potatura con Keras .
- Per trovare rapidamente le API necessarie per il tuo caso d'uso, consulta la guida completa all'eliminazione .
- Per esplorare l'applicazione dell'eliminazione per l'inferenza sul dispositivo, vedere Eliminazione per l'inferenza sul dispositivo con XNNPACK .
- Per vedere un esempio di potatura strutturale, esegui il tutorial Potatura strutturale con scarsità 2 x 4 .
Panoramica
L'eliminazione del peso basata sulla grandezza azzera gradualmente i pesi del modello durante il processo di training per ottenere la scarsità del modello. I modelli sparsi sono più facili da comprimere e possiamo saltare gli zeri durante l'inferenza per migliorare la latenza.
Questa tecnica apporta miglioramenti tramite la compressione del modello. In futuro, il supporto del framework per questa tecnica fornirà miglioramenti della latenza. Abbiamo riscontrato miglioramenti fino a 6 volte nella compressione del modello con una perdita minima di precisione.
La tecnica è in fase di valutazione in varie applicazioni vocali, come il riconoscimento vocale e la sintesi vocale, ed è stata sperimentata in vari modelli di visione e traduzione.
Matrice di compatibilità API
Gli utenti possono applicare l'eliminazione con le seguenti API:
- Modellismo:
keras
con i soli modelli Sequenziale e Funzionale - Versioni TensorFlow: TF 1.x per le versioni 1.14+ e 2.x.
-
tf.compat.v1
con un pacchetto TF 2.X etf.compat.v2
con un pacchetto TF 1.X non sono supportati.
-
- Modalità di esecuzione di TensorFlow: sia grafica che entusiasta
- Formazione distribuita:
tf.distribute
con sola esecuzione del grafico
È nel nostro piano d'azione aggiungere supporto nelle seguenti aree:
Risultati
Classificazione delle immagini
Modello | Precisione Top-1 non scarsa | Precisione sparsa casuale | Sparsità casuale | Precisione sparsa strutturata | Sparsità strutturata |
---|---|---|---|---|---|
InceptionV3 | 78,1% | 78,0% | 50% | 75,8% | 2 per 4 |
76,1% | 75% | ||||
74,6% | 87,5% | ||||
MobilenetV1 224 | 71,04% | 70,84% | 50% | 67,35% | 2 per 4 |
MobilenetV2 224 | 71,77% | 69,64% | 50% | 66,75% | 2 per 4 |
I modelli sono stati testati su Imagenet.
Traduzione
Modello | BLEU non sparso | BLEU sparso | Sparsità |
---|---|---|---|
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% |
I modelli utilizzano il set di dati WMT16 tedesco e inglese con news-test2013 come set di sviluppo e news-test2015 come set di test.
Modello di individuazione delle parole chiave
DS-CNN-L è un modello di individuazione delle parole chiave creato per dispositivi edge. Può essere trovato nel repository degli esempi del software ARM.
Modello | Precisione non sparsa | Precisione sparsa strutturata (modello 2 per 4) | Precisione sparsa casuale (sparsità target 50%) |
---|---|---|---|
DS-CNN-L | 95.23 | 94.33 | 94,84 |
Esempi
Oltre al tutorial Prune with Keras , vedere i seguenti esempi:
- Addestra un modello CNN sull'attività di classificazione delle cifre scritte a mano MNIST con potatura: codice
- Addestra un LSTM sull'attività di classificazione del sentiment IMDB con potatura: codice
Per informazioni generali, vedere Per potare o non potare: esplorare l'efficacia della potatura per la compressione del modello [ articolo ].