Path: blob/master/site/pt-br/guide/migrate/tflite.ipynb
39015 views
Copyright 2021 The TensorFlow Authors.
Migrando seu código TFLite para TF2
O TensorFlow Lite (TFLite) é um conjunto de ferramentas que ajuda os desenvolvedores a executar a inferência de aprendizado de máquina em um dispositivo (dispositivos móveis, embarcados e IoT). O conversor TFLite é uma dessas ferramentas que converte modelos TF existentes num formato de modelo TFLite otimizado que pode ser executado com eficiência no dispositivo.
Neste documento, você aprenderá quais alterações precisa fazer no seu código de conversão de TF para TFLite, e verá alguns exemplos que fazem a mesma coisa.
Alterações no seu código de conversão de TF para TFLite
Se você estiver usando um formato de modelo TF1 legado (como um arquivo Keras, frozen GraphDef, checkpoints, tf.Session), atualize-o para TF1/TF2 SavedModel e use a API do conversor TF2
tf.lite.TFLiteConverter.from_saved_model(...)para convertê-lo num modelo TFLite (consulte a Tabela 1).Atualize os sinalizadores da API do conversor (consulte a Tabela 2).
Remova as APIs legadas, como
tf.lite.constants. (por exemplo: substituatf.lite.constants.INT8portf.int8)
// Tabela 1 // Atualização da API TFLite Python Converter
| API TF1 | API TF2 |
|---|---|
tf.lite.TFLiteConverter.from_saved_model('saved_model/',..) | suportado |
tf.lite.TFLiteConverter.from_keras_model_file('model.h5',..) | removido (atualize para o formato SavedModel) |
tf.lite.TFLiteConverter.from_frozen_graph('model.pb',..) | removido (atualize para o formato SavedModel) |
tf.lite.TFLiteConverter.from_session(sess,...) | removido (atualize para o formato SavedModel) |
<style> .table {margin-left: 0 !important;} </style>
// Tabela 2 // Atualização de sinalizadores da API do TFLite Python Converter
| API TF1 | API TF2 |
|---|---|
allow_custom_opsoptimizationsrepresentative_datasettarget_spec inference_input_typeinference_output_typeexperimental_new_converterexperimental_new_quantizer | suportado |
input_tensorsoutput_tensorsinput_arrays_with_shapeoutput_arraysexperimental_debug_info_func | removido (argumentos da API do conversor não suportados) |
change_concat_input_rangesdefault_ranges_statsget_input_arrays()inference_typequantized_input_statsreorder_across_fake_quant | removido (workflows de quantização não suportados) |
conversion_summary_dirdump_graphviz_dirdump_graphviz_video | removido (visualize os modelos usando Netron ou visualize.py) |
output_formatdrop_control_dependency | removido (recursos não suportados no TF2) |
Exemplos
Agora você percorrerá alguns exemplos para converter modelos TF1 legados para SavedModels do TF1/TF2 e, em seguida, convertê-los em modelos TF2 TFLite.
Configuração
Comece com os imports necessários do TensorFlow.
Crie todos os formatos de modelo TF1 necessários.
1. Converta um TF1 SavedModel para um modelo TFLite
Antes: Convertendo com TF1
Este é um código típico para conversão TFlite no estilo TF1.
Depois: Convertendo com TF2
Converta diretamente o TF1 SavedModel para um modelo TFLite, com um conjunto menor de sinalizadores do conversor v2.
2. Converta um arquivo de modelo TF1 Keras para um modelo TFLite
Antes: Convertendo com TF1
Este é um código típico para conversão TFlite no estilo TF1.
Depois: Convertendo com TF2
Primeiro, converta o arquivo de modelo TF1 Keras para um TF2 SavedModel e, em seguida, converta-o para um modelo TFLite, com um conjunto menor de sinalizadores do conversor v2.
3. Converta um frozen GraphDef TF1 para um modelo TFLite
Antes: Convertendo com TF1
Este é um código típico para conversão TFlite no estilo TF1.
Depois: Convertendo com TF2
Primeiro, converta o frozen GraphDef TF1 para um SavedModel TF1 e, em seguida, converta-o para um modelo TFLite, com um conjunto menor de sinalizadores do conversor v2.
Mais recursos
Consulte o Guia TFLite para saber mais sobre os workflows e os recursos mais recentes.
Se você estiver usando código TF1 ou formatos de modelo TF1 legados (arquivos Keras
.h5, frozen GraphDef.pb, etc.), atualize seu código e migre seus modelos para o formato TF2 SavedModel.
Ver em TensorFlow.org
Executar no Google Colab
Ver fonte no GitHub
Baixar notebook