Path: blob/master/site/pt-br/guide/migrate/tflite.ipynb
25118 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.INT8
portf.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_ops optimizations representative_dataset target_spec inference_input_type inference_output_type experimental_new_converter experimental_new_quantizer | suportado |
input_tensors output_tensors input_arrays_with_shape output_arrays experimental_debug_info_func | removido (argumentos da API do conversor não suportados) |
change_concat_input_ranges default_ranges_stats get_input_arrays() inference_type quantized_input_stats reorder_across_fake_quant | removido (workflows de quantização não suportados) |
conversion_summary_dir dump_graphviz_dir dump_graphviz_video | removido (visualize os modelos usando Netron ou visualize.py) |
output_format drop_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.