当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.lite.TFLiteConverter用法及代码示例


将 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.int8target_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()

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.lite.TFLiteConverter。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。