Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Quantizzazione formazione consapevole

Gestito da tensorflow modello di ottimizzazione

Ci sono due forme di quantizzazione: quantizzazione post-formazione e quantizzazione di formazione a conoscenza. Inizia con la quantizzazione post allenamento dal momento che è più facile da usare, anche se la quantizzazione formazione conoscenza è spesso migliore per la precisione del modello.

Questa pagina offre una panoramica sulla quantizzazione di formazione a conoscenza per aiutare a determinare come si adatta con il vostro caso d'uso.

Panoramica

La quantizzazione formazione consapevoli emula deduzione in tempo quantizzazione, la creazione di un modello che gli strumenti a valle utilizzeranno per produrre modelli in realtà quantizzate. I modelli quantizzati utilizzano inferiore precisione (ad esempio 8-bit invece di 32 bit float), con i vantaggi durante la distribuzione.

Distribuisci con quantizzazione

Quantizzazione introduce miglioramenti tramite compressione modello e riduzione della latenza. Con le impostazioni predefinite API, le dimensioni restringe modello di 4x, e che tipicamente vede tra 1,5 - 4x miglioramenti nella latenza CPU nei backend testati. Alla fine, i miglioramenti latenza può essere visto sul acceleratori di apprendimento automatico compatibili, quali l'EdgeTPU e NNAPI.

La tecnica è utilizzata in produzione nel discorso, la visione, il testo, e tradurre i casi d'uso. Il codice attualmente supporta un sottoinsieme di questi modelli .

Esperimento con quantizzazione e hardware associato

Gli utenti possono configurare i parametri di quantizzazione (ad esempio numero di bit) e in una certa misura, gli algoritmi sottostanti. Con queste modifiche da predefiniti API, non v'è alcun percorso di distribuzione supportati.

API specifica di questa configurazione sono sperimentale e non soggetta a compatibilità.

compatibilità API

Gli utenti possono applicare quantizzazione con le seguenti API:

  • Edificio Modello: tf.keras con solo sequenziale e modelli funzionali.
  • versioni tensorflow: 2.x TF per TF-notte.
  • modalità di esecuzione tensorflow: esecuzione ansioso

E 'sulla nostra tabella di marcia per aggiungere il supporto nelle seguenti aree:

  • edificio Modello: chiarire come i modelli sottoclassato hanno limitato o nessun sostegno
  • Formazione distribuita: tf.distribute

matrice di supporto generale

Il supporto è disponibile nelle seguenti aree:

  • Copertura Modello: modelli utilizzando strati whitelist , BatchNormalization quando segue strati Conv2D e DepthwiseConv2D, e in casi limitati, Concat .
  • Accelerazione hardware: i nostri valori di default API sono compatibili con l'accelerazione sul EdgeTPU, NNAPI, e backend TFLite, tra gli altri. Vedere l'avvertenza nella tabella di marcia.
  • Distribuire con quantizzazione: quantizzazione solo per assi per strati convoluzionali, non per-tensore di quantizzazione, è attualmente supportato.

E 'sulla nostra tabella di marcia per aggiungere il supporto nelle seguenti aree:

  • Copertura Modello: esteso per includere RNN / LSTMs e supporto generale Concat.
  • Accelerazione hardware: assicurare il convertitore TFLite può produrre modelli full-interi. Vedere questo problema per i dettagli.
  • Esperimento con i casi d'uso quantizzazione:
    • Esperimento con algoritmi di quantizzazione che gli strati arco Keras o richiedere la fase di formazione.
    • Stabilizzare le API.

risultati

Classificazione di immagini con gli strumenti

Modello Non quantizzato Top-1 Precisione 8-bit quantizzato Precisione
MobilenetV1 224 71.03% 71.06%
RESNET v1 50 76,3% 76,1%
MobilenetV2 224 70.77% 70.01%

I modelli sono stati testati su IMAGEnet e valutati sia tensorflow e TFLite.

Classificazione di immagini per la tecnica

Modello Non quantizzato Top-1 Precisione 8-Bit quantizzato Precisione
Nasnet-Mobile 74% 73%
RESNET-v2 50 75,6% 75%

I modelli sono stati testati su IMAGEnet e valutati sia tensorflow e TFLite.

Esempi

Oltre alla esempio di quantizzazione di formazione consapevole , vedere i seguenti esempi:

  • Modello di CNN sulla scritta a mano compito di classificazione cifre MNIST con la quantizzazione: il codice

Per sfondo su qualcosa di simile, vedere la quantizzazione e la formazione di reti neurali per l'efficiente Integer-aritmetico-Solo Inference carta . Questo documento introduce alcuni concetti che questo uso di utensili. L'implementazione non è esattamente lo stesso, e ci sono altri concetti utilizzati in questo strumento (es quantizzazione per-asse).