赞
踩
pb转tflite分为tf1.x和tf2.x
2.0及以上版本得转换移步TensorFlow Lite 转换器,注意:这是假定您已安装 TensorFlow 2.x 并在 TensorFlow 2.x 中训练了模型。
这里主要使用tflite_convert工具,从TensorFlow 1.9开始,命令行工具tflite_convert作为Python包的一部分随之安装
注意:假设你的模型是TF1.X版本训练的。环境tensorflow-gpu=1.15(这是我的版本,训练和转换环境都是,这个版本应当最好和你训练的TF版本一样),所以使用tflite_convert命令行工具。该工具嵌入在tensorflow1.x>中,可以尝试在命令行中使用“tflite_convert”命令,看是否存在该命令,一般来说如果你正常。
官方文档
在终端输入:$ tflite_convert
usage: tflite_convert [-h] --output_file OUTPUT_FILE (--graph_def_file GRAPH_DEF_FILE | --saved_model_dir SAVED_MODEL_DIR | --keras_model_file KERAS_MODEL_FILE) [--output_format {TFLITE,GRAPHVIZ_DOT}] [--inference_type {FLOAT,QUANTIZED_UINT8}] [--inference_input_type {FLOAT,QUANTIZED_UINT8}] [--input_arrays INPUT_ARRAYS] [--input_shapes INPUT_SHAPES] [--output_arrays OUTPUT_ARRAYS] [--saved_model_tag_set SAVED_MODEL_TAG_SET] [--saved_model_signature_key SAVED_MODEL_SIGNATURE_KEY] [--std_dev_values STD_DEV_VALUES] [--mean_values MEAN_VALUES] [--default_ranges_min DEFAULT_RANGES_MIN] [--default_ranges_max DEFAULT_RANGES_MAX] [--post_training_quantize] [--drop_control_dependency] [--reorder_across_fake_quant] [--change_concat_input_ranges {TRUE,FALSE}] [--allow_custom_ops] [--target_ops TARGET_OPS] [--dump_graphviz_dir DUMP_GRAPHVIZ_DIR] [--dump_graphviz_video] tflite_convert: error: the following arguments are required: --output_file
(表示有多种选项,可以看到该工具的输入模型可以使GRAPH_DEF_FILE、AVED_MODEL_DIR以及KERAS_MODEL_FILE)
如何转换,在命令行中代码如下:
tflite_convert
--output_file /home/ubuntu/Project/MobileFaceNet_TF-master/arch/pretrained_model/saved_model.tflite
--graph_def_file /home/ubuntu/Project/MobileFaceNet_TF-master/arch/pretrained_model/saved_model.pb
--input_arrays input
--input_shapes 1,112,112,3
--output_arrays embeddings
--output_format TFLITE
–output_file:定义了输出tflite的路径
–graph_def:定义了pb文件路径
–input_arrays:指明输入节点
–input_shapes:指明输入shape
–output_arrays:指明输出节点
–output_format:指明转换格式(不用改)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。