将 TensorFlow 模型转换为 output_format
。
用法
tf.compat.v1.lite.TFLiteConverter(
graph_def, input_tensors, output_tensors, input_arrays_with_shape=None,
output_arrays=None, experimental_debug_info_func=None
)
参数
-
graph_def
冻结的 TensorFlow GraphDef。 -
input_tensors
输入张量列表。使用foo.shape
和foo.dtype
计算类型和形状。 -
output_tensors
输出张量列表(此处仅使用 .name)。 -
input_arrays_with_shape
表示输入张量名称的字符串元组和表示输入形状的整数列表(例如,[("foo":[1, 16, 16, 3])])。仅当图形无法加载到 TensorFlow 以及input_tensors
和output_tensors
为 None 时使用。 (默认无) -
output_arrays
用于冻结图形的输出张量列表。仅当图形无法加载到 TensorFlow 以及input_tensors
和output_tensors
为 None 时使用。 (默认无) -
experimental_debug_info_func
一个实验函数,用于从graph_def
检索一组节点的图形调试信息。
抛出
-
ValueError
无效参数。
属性
-
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_type
数值数组的数据类型,不包括输入层。 (默认 tf.float32,必须在 {tf.float32, tf.int8, tf.uint8} 中) -
inference_input_type
输入层中数值数组的数据类型。如果inference_input_type
在 {tf.int8, tf.uint8} 中,则必须提供quantized_input_stats
。 (默认是分配给inference_type
的值,必须在 {tf.float32, tf.int8, tf.uint8} 中) -
inference_output_type
输出层中数值数组的数据类型。 (默认是分配给inference_type
的值,必须在 {tf.float32, tf.int8, tf.uint8} 中) -
quantized_input_stats
输入张量名称到浮点元组的映射,表示训练数据的均值和标准差。 (例如,{"foo":(0., 1.)})。如果inference_input_type
是 tf.int8 或 tf.uint8,则为必需。 (默认无) -
default_ranges_stats
整数元组 (min, max) 表示没有指定范围的所有数值数组的范围值。旨在通过"dummy quantization" 进行量化实验。 (默认无) -
allow_custom_ops
指示是否允许自定义操作的布尔值。当为 False 时,任何未知操作都是错误。当为 True 时,将为任何未知的操作创建自定义操作。开发人员需要使用自定义解析器将这些提供给 TensorFlow Lite 运行时。 (默认为假) -
drop_control_dependency
布尔值,指示是否静默删除控制依赖项。这是因为 TFLite 不支持控制依赖。 (默认为真) -
reorder_across_fake_quant
布尔值,指示是否在意外位置重新排序 FakeQuant 节点。当 FakeQuant 节点的位置阻止转换图形所需的图形转换时使用。生成与量化训练图不同的图,可能导致不同的算术行为。 (默认为假) -
change_concat_input_ranges
用于更改量化模型的 concat 运算符的输入和输出的最小/最大范围行为的布尔值。当为 true 时更改 concat 运算符重叠的范围。 (默认为假) -
output_format
输出文件格式。 (默认 tf.compat.v1.lite.constants.TFLITE,必须在 {tf.compat.v1.lite.constants.TFLITE, tf.compat.v1.lite.constants.GRAPHVIZ_DOT}) -
dump_graphviz_dir
文件夹的完整文件路径,用于在处理 GraphViz .dot 文件的各个阶段转储图形。优先于output_format=tf.compat.v1.lite.constants.GRAPHVIZ_DOT
为了保持输出文件的要求。 (默认无) -
dump_graphviz_video
布尔值,指示是否在每次图形转换后转储 GraphViz .dot 文件。需要指定dump_graphviz_dir
标志。 (默认为假) -
conversion_summary_dir
存储转换日志的目录的完整路径。 (默认无) -
target_ops
已弃用。请改用target_spec.supported_ops
。 -
post_training_quantize
已弃用。请改用optimizations
并将其设置为{tf.lite.Optimize.DEFAULT}
。 (默认为假) -
experimental_new_converter
实验标志,可能会发生变化。启用基于 MLIR 的转换。 (默认为真) -
experimental_new_quantizer
实验标志,可能会发生变化。启用基于 MLIR 的量化转换,而不是基于 Flatbuffer 的转换。 (默认为真)
这用于从 TensorFlow GraphDef、SavedModel 或 tf.keras 模型转换为 TFLite FlatBuffer 或图形可视化。
示例用法:
# Converting a GraphDef from session.
converter = tf.compat.v1.lite.TFLiteConverter.from_session(
sess, in_tensors, out_tensors)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
# Converting a GraphDef from file.
converter = tf.compat.v1.lite.TFLiteConverter.from_frozen_graph(
graph_def_file, input_arrays, output_arrays)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
# Converting a SavedModel.
converter = tf.compat.v1.lite.TFLiteConverter.from_saved_model(
saved_model_dir)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
# Converting a tf.keras model.
converter = tf.compat.v1.lite.TFLiteConverter.from_keras_model_file(
keras_model)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
相关用法
- Python tf.compat.v1.layers.conv3d用法及代码示例
- Python tf.compat.v1.layers.Conv3D用法及代码示例
- Python tf.compat.v1.layers.dense用法及代码示例
- Python tf.compat.v1.losses.softmax_cross_entropy用法及代码示例
- Python tf.compat.v1.layers.AveragePooling3D用法及代码示例
- Python tf.compat.v1.layers.Conv2DTranspose用法及代码示例
- Python tf.compat.v1.layers.max_pooling3d用法及代码示例
- Python tf.compat.v1.layers.average_pooling1d用法及代码示例
- Python tf.compat.v1.layers.experimental.keras_style_scope用法及代码示例
- Python tf.compat.v1.layers.flatten用法及代码示例
- Python tf.compat.v1.layers.conv1d用法及代码示例
- Python tf.compat.v1.layers.experimental.set_keras_style用法及代码示例
- Python tf.compat.v1.layers.conv2d_transpose用法及代码示例
- Python tf.compat.v1.layers.dropout用法及代码示例
- Python tf.compat.v1.layers.batch_normalization用法及代码示例
- Python tf.compat.v1.layers.average_pooling2d用法及代码示例
- Python tf.compat.v1.losses.mean_squared_error用法及代码示例
- Python tf.compat.v1.layers.MaxPooling1D用法及代码示例
- Python tf.compat.v1.layers.conv2d用法及代码示例
- Python tf.compat.v1.layers.Conv2D用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.lite.TFLiteConverter。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。