Domande frequenti (FAQ)

Se non trovi una risposta alla tua domanda qui, consulta la nostra documentazione dettagliata sull'argomento o invia un problema a GitHub .

Conversione del modello

Quali formati sono supportati per la conversione da TensorFlow a TensorFlow Lite?

I formati supportati sono elencati qui

Perché alcune operazioni non sono implementate in TensorFlow Lite?

Per mantenere TFLite leggero, solo alcuni operatori TF (elencati nella lista consentita ) sono supportati in TFLite.

Perché il mio modello non viene convertito?

Poiché il numero di operazioni di TensorFlow Lite è inferiore a quello di TensorFlow, alcuni modelli potrebbero non essere in grado di eseguire la conversione. Alcuni errori comuni sono elencati qui .

Per problemi di conversione non correlati a operazioni mancanti o operazioni del flusso di controllo, cerca i nostri problemi GitHub o creane uno nuovo .

Come posso verificare che un modello TensorFlow Lite si comporti come il modello TensorFlow originale?

Il modo migliore per eseguire il test è confrontare gli output dei modelli TensorFlow e TensorFlow Lite per gli stessi input (dati di test o input casuali) come mostrato qui .

Come posso determinare gli input/output per il buffer del protocollo GraphDef?

Il modo più semplice per esaminare un grafico da un file .pb è utilizzare Netron , un visualizzatore open source per modelli di machine learning.

Se Netron non riesce ad aprire il grafico, puoi provare lo strumento summary_graph .

Se lo strumento summary_graph restituisce un errore, puoi visualizzare GraphDef con TensorBoard e cercare gli input e gli output nel grafico. Per visualizzare un file .pb , utilizzare lo script import_pb_to_tensorboard.py come di seguito:

python import_pb_to_tensorboard.py --model_dir <model path> --log_dir <log dir path>

Come posso controllare un file .tflite ?

Netron è il modo più semplice per visualizzare un modello TensorFlow Lite.

Se Netron non riesce ad aprire il tuo modello TensorFlow Lite, puoi provare lo script visualize.py nel nostro repository.

Se utilizzi TF 2.5 o una versione successiva

python -m tensorflow.lite.tools.visualize model.tflite visualized_model.html

Altrimenti, puoi eseguire questo script con Bazel

bazel run //tensorflow/lite/tools:visualize model.tflite visualized_model.html

Ottimizzazione

Come posso ridurre le dimensioni del mio modello TensorFlow Lite convertito?

La quantizzazione post-training può essere utilizzata durante la conversione a TensorFlow Lite per ridurre le dimensioni del modello. La quantizzazione post-addestramento quantizza i pesi a 8 bit di precisione da virgola mobile e li dequantizza durante il runtime per eseguire calcoli in virgola mobile. Tuttavia, tieni presente che ciò potrebbe avere alcune implicazioni sulla precisione.

Se è possibile riqualificare il modello, prendere in considerazione l'addestramento basato sulla quantizzazione . Tuttavia, si noti che l'addestramento basato sulla quantizzazione è disponibile solo per un sottoinsieme di architetture di rete neurale convoluzionale.

Per una comprensione più approfondita dei diversi metodi di ottimizzazione, consulta Ottimizzazione del modello .

Come posso ottimizzare le prestazioni di TensorFlow Lite per la mia attività di machine learning?

Il processo di alto livello per ottimizzare le prestazioni di TensorFlow Lite è simile al seguente:

  • Assicurati di avere il modello giusto per l'attività. Per la classificazione delle immagini, consulta TensorFlow Hub .
  • Modifica il numero di thread. Molti operatori TensorFlow Lite supportano kernel multi-thread. A questo scopo è possibile utilizzare SetNumThreads() nell'API C++ . Tuttavia, l'aumento dei thread comporta una variabilità delle prestazioni a seconda dell'ambiente.
  • Utilizza acceleratori hardware. TensorFlow Lite supporta l'accelerazione del modello per hardware specifico utilizzando i delegati. Consulta la nostra guida per i delegati per informazioni su quali acceleratori sono supportati e come utilizzarli con il tuo modello sul dispositivo.
  • Modello di profilo (avanzato). Lo strumento di benchmarking Tensorflow Lite ha un profiler integrato che può mostrare le statistiche per operatore. Se sai come ottimizzare le prestazioni di un operatore per la tua piattaforma specifica, puoi implementare un operatore personalizzato .

Per una discussione più approfondita su come ottimizzare le prestazioni, dai un'occhiata alle migliori pratiche .