Path: blob/master/site/es-419/guide/migrate/tflite.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
Migrar su código TFLite a TF2
TensorFlow Lite (TFLite) es un conjunto de herramientas que ayuda a los desarrolladores a correr inferencia ML sobre dispositivos (móviles, embebidos y dispositivos IoT). El conversor TFLite es una de esas herramientas que convierte los modelos TF existentes en un formato de modelo TFLite optimizado que puede ejecutarse de forma eficiente en el dispositivo.
En este documento, aprenderá qué cambios debe realizar en su código de conversión de TF a TFLite, seguido de algunos ejemplos que hacen lo mismo.
Cambios en su código de conversión de TF a TFLite
Si está usando un formato de modelo TF1 heredado (como un archivo Keras, GraphDef congelado, puntos de verificación, tf.Session), actualícelo a TF1/TF2 SavedModel y use la API del conversor TF2
tf.lite.TFLiteConverter.from_saved_model(...)
para convertirlo en un modelo TFLite (consulte la Tabla 1).Actualice los indicadores de la API del convertidor (consulte la tabla 2).
Elimine las API heredadas como
tf.lite.constants
. (por ejemplo: Reemplacetf.lite.constants.INT8
portf.int8
)
// Tabla 1 // Actualización de la API del conversor Python TFLite
API TF1 | API TF2 |
---|---|
tf.lite.TFLiteConverter.from_saved_model('saved_model/',..) | admitida |
tf.lite.TFLiteConverter.from_keras_model_file('model.h5',..) | retirada (actualización al formato SavedModel) |
tf.lite.TFLiteConverter.from_frozen_graph('model.pb',..) | retirada (actualización al formato SavedModel) |
tf.lite.TFLiteConverter.from_session(sess,...) | retirada (actualización al formato SavedModel) |
<style> .table {margin-left: 0 !important;} </style>
// Tabla 2 // Actualización de indicadores de la API del conversor TFLite Python
API TF1 | API TF2 |
---|---|
allow_custom_ops optimizations representative_dataset target_spec inference_input_type inference_output_type experimental_new_converter experimental_new_quantizer | admitidas |
input_tensors output_tensors input_arrays_with_shape output_arrays experimental_debug_info_func | retiradas (argumentos de la API del convertidor no admitidos) |
change_concat_input_ranges default_ranges_stats get_input_arrays() inference_type quantized_input_stats reorder_across_fake_quant | retiradas (flujos de trabajo de cuantización no admitidos) |
conversion_summary_dir dump_graphviz_dir dump_graphviz_video | retiradas (en su lugar, visualice los modelos usando Netron o visualize.py) |
output_format drop_control_dependency | retiradas (características no soportadas en TF2) |
Ejemplos
Ahora verá algunos ejemplos para convertir modelos heredados de TF1 en TF1/TF2 SavedModels y luego convertirlos en modelos TF2 TFLite.
Preparación
Comience con las importaciones necesarias de TensorFlow.
Cree todos los formatos de modelo TF1 necesarios.
1. Convierta un TF1 SavedModel en un modelo TFLite
Antes: Conversión con TF1
Este es el código típico para la conversión TFlite estilo TF1.
Después: Conversión con TF2
Convierte directamente el TF1 SavedModel en un modelo TFLite, estableciendo unos indicadores de conversión v2 más pequeños.
2. Convierta un archivo de modelo Keras TF1 en un modelo TFLite
Antes: Conversión con TF1
Este es el código típico para la conversión TFlite estilo TF1.
Después: Conversión con TF2
Primero, convierta el archivo del modelo Keras TF1 en un SavedModel TF2 y, a continuación, conviértalo en un modelo TFLite, estableciendo unos indicadores de conversión v2 más pequeños.
3. Convertir un GraphDef congelado TF1 en un modelo TFLite
Antes: Conversión con TF1
Este es el código típico para la conversión TFlite estilo TF1.
Después: Conversión con TF2
Primero, convierta el GraphDef congelado TF1 en un SavedModel TF1 y, a continuación, conviértalo en un modelo TFLite, con unos indicadores de convertidor v2 más pequeños configurados.
Lecturas adicionales
Consulte la Guía de TFLite para saber más sobre los flujos de trabajo y las funciones más recientes.
Si está usando código TF1 o formatos de modelos TF1 heredados (archivos Keras
.h5
, GraphDef.pb
congelados, etc.), actualice su código y migre sus modelos al formato TF2 SavedModel.