将 TensorFlow 模型转换为 TensorFlow Lite 模型。
用法
tf.lite.TFLiteConverter(
funcs, trackable_obj=None
)
参数
-
funcs
TensorFlow ConcreteFunction 列表。该列表不应包含重复的元素。 -
trackable_obj
与funcs
关联的 tf.AutoTrackable 对象。需要维护对该对象的引用,以便变量不会被垃圾收集,因为函数对变量的引用很弱。仅当用户不维护 tf.AutoTrackable 对象时才需要这样做(例如from_saved_model
)。
属性
-
optimizations
实验标志,可能会发生变化。要应用的优化集。例如 {tf.lite.Optimize.DEFAULT}。 (默认无,必须是无或一组类型的值tf.lite.Optimize
) -
representative_dataset
用于整数量化的生成器函数,其中每个生成的样本具有与模型输入相同的顺序、类型和形状。通常,这是从训练或评估数据集中随机选择的数百个样本的一小部分,没有特定的顺序。这是一个可选属性,但对于完整整数量化是必需的,即,如果tf.int8
是target_spec.supported_types
中唯一支持的类型。请参阅tf.lite.RepresentativeDataset
。 (默认无) -
target_spec
实验标志,可能会发生变化。目标设备的规格,包括支持的操作集、支持的类型和一组用户定义的 TensorFlow Lite 运行时所需的 TensorFlow 算子。请参阅tf.lite.TargetSpec
。 -
inference_input_type
输入层的数据类型。请注意,整数类型(tf.int8 和 tf.uint8)目前仅支持用于训练后整数量化和量化感知训练。 (默认 tf.float32,必须在 {tf.float32, tf.int8, tf.uint8} 中) -
inference_output_type
输出层的数据类型。请注意,整数类型(tf.int8 和 tf.uint8)目前仅支持用于训练后整数量化和量化感知训练。 (默认 tf.float32,必须在 {tf.float32, tf.int8, tf.uint8} 中) -
allow_custom_ops
指示是否允许自定义操作的布尔值。当为 False 时,任何未知操作都是错误。当为 True 时,将为任何未知的操作创建自定义操作。开发人员需要使用自定义解析器将这些提供给 TensorFlow Lite 运行时。 (默认为假) -
experimental_new_converter
实验标志,可能会发生变化。启用基于 MLIR 的转换。 (默认为真) -
experimental_new_quantizer
实验标志,可能会发生变化。启用基于 MLIR 的量化转换,而不是基于 Flatbuffer 的转换。 (默认为真) -
experimental_enable_resource_variables
实验标志,可能会发生变化。启用此转换器转换资源变量。仅当使用from_saved_model 接口时才允许这样做。 (默认为假)
示例用法:
# Converting a SavedModel to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
# Converting a tf.Keras model to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
# Converting ConcreteFunctions to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_concrete_functions([func], model)
tflite_model = converter.convert()
# Converting a Jax model to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.experimental_from_jax([func], [[
('input1', input1), ('input2', input2)])
tflite_model = converter.convert()
相关用法
- Python tf.lite.Interpreter.get_signature_runner用法及代码示例
- Python tf.lite.experimental.QuantizationDebugger用法及代码示例
- Python tf.lite.Interpreter.tensor用法及代码示例
- Python tf.lite.Interpreter.get_signature_list用法及代码示例
- Python tf.lite.experimental.authoring.compatible用法及代码示例
- Python tf.lite.Interpreter.resize_tensor_input用法及代码示例
- Python tf.lite.Interpreter用法及代码示例
- Python tf.lite.experimental.load_delegate用法及代码示例
- Python tf.linalg.LinearOperatorFullMatrix.matvec用法及代码示例
- Python tf.linalg.LinearOperatorToeplitz.solve用法及代码示例
- Python tf.linalg.LinearOperatorIdentity.solvevec用法及代码示例
- Python tf.linalg.LinearOperatorPermutation.solve用法及代码示例
- Python tf.linalg.band_part用法及代码示例
- Python tf.linalg.LinearOperatorKronecker.diag_part用法及代码示例
- Python tf.linalg.lu_matrix_inverse用法及代码示例
- Python tf.linalg.LinearOperatorToeplitz.matvec用法及代码示例
- Python tf.linalg.LinearOperatorBlockLowerTriangular.solvevec用法及代码示例
- Python tf.linalg.LinearOperatorLowerTriangular.matvec用法及代码示例
- Python tf.linalg.LinearOperatorCirculant2D.solve用法及代码示例
- Python tf.linalg.LinearOperatorCirculant3D.diag_part用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.lite.TFLiteConverter。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。