从冻结图到 tflite 模型的模型转换过程中 "input_tensor_name" 应该是什么?
What should be the "input_tensor_name" during model conversion from frozen graph to tflite model?
我使用 Deeplab 官方 Github 页面上提供的 python 脚本,用我自己的数据集训练了一个语义分割模型。
训练和测试都很顺利
然后我使用 export_model.py 和以下命令将我的模型导出到冻结图:
python3 export_model.py \
--model_variant="xception_65" \
--crop_size=354 \
--crop_size=354 \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--checkpoint_path=model.ckpt-1000 \
--export_path=frozen_inference_graph_354X354.pb
这也成功了。现在我想使用 convert_to_tflite.py 将我的冻结图转换为 tflite。该脚本有 2 个我不理解的输入参数: "input_tensor_name" 和 "output_tensor_name" 。我应该将值保留为“output_tensor_name”的默认值“ArgMax:0”吗? “input_tensor_name”的值应该是多少?
python3 convert_to_tflite.py \
--quantized_graph_def_path=frozen_inference_graph_354X354.pb \
--output_tflite_path=model.tflite \
--input_tensor_name="?" \
--output_tensor_name="?"
我找不到与此相关的任何文档。提前致谢!
您需要查看文档,特别是 quantize markdown 文档。
在该文档中,您可以找到有效的 --input_tensor_name=MobilenetV2/MobilenetV2/input:0
您需要通过修改参数 --quantize_delay_step
使用文档中显示的策略之一来训练量化感知模型
为了进行训练,您可能至少需要 tensorflow==1.15.3。参见 this issue
如果您执行以上所有操作,您的冻结图将具有指定名称的有效输入张量。您可以通过使用 Netron 搜索特定节点名称来检查。最后,使用 convert_to_tflite.py
脚本
创建 tflite 模型
我使用 Deeplab 官方 Github 页面上提供的 python 脚本,用我自己的数据集训练了一个语义分割模型。 训练和测试都很顺利
然后我使用 export_model.py 和以下命令将我的模型导出到冻结图:
python3 export_model.py \
--model_variant="xception_65" \
--crop_size=354 \
--crop_size=354 \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--checkpoint_path=model.ckpt-1000 \
--export_path=frozen_inference_graph_354X354.pb
这也成功了。现在我想使用 convert_to_tflite.py 将我的冻结图转换为 tflite。该脚本有 2 个我不理解的输入参数: "input_tensor_name" 和 "output_tensor_name" 。我应该将值保留为“output_tensor_name”的默认值“ArgMax:0”吗? “input_tensor_name”的值应该是多少?
python3 convert_to_tflite.py \
--quantized_graph_def_path=frozen_inference_graph_354X354.pb \
--output_tflite_path=model.tflite \
--input_tensor_name="?" \
--output_tensor_name="?"
我找不到与此相关的任何文档。提前致谢!
您需要查看文档,特别是 quantize markdown 文档。
在该文档中,您可以找到有效的 --input_tensor_name=MobilenetV2/MobilenetV2/input:0
您需要通过修改参数 --quantize_delay_step
为了进行训练,您可能至少需要 tensorflow==1.15.3。参见 this issue
如果您执行以上所有操作,您的冻结图将具有指定名称的有效输入张量。您可以通过使用 Netron 搜索特定节点名称来检查。最后,使用 convert_to_tflite.py
脚本