工具下载tensorflow-onnx
按照步骤安装
主要依赖的库文件
tensorflow
tf2onnx==1.10.0
onnx>1.5
测试时:onnxruntime >1.4.0
python -m tf2onnx.convert --input ./pb/xxx.pb --inputs normalized_input_image_tensor:0 --outputs normalized_input_image_tensor:0,raw_outputs/class_predictions:0,raw_outputs/box_encodings:0,anchors:0 --output ./onnx/xxx.onnx --verbose --opset 12
–input: 需要转换的pb地址
–inputs:模型输入op
–outputs:模型需要输出的op
–output: 转换的onnx的输出地址
–opset : 转换模型的版本,版本尽量高一些,有些工具不支持低版本的,例如pplnn推理引擎
–verbose:转换时日志显示
模型结构可视化工具
查看自己的模型结构
获取模型的节点列表名,输入、输出等:
import tensorflow as tf
import os
model_dir = './pb/entry_202008120940_s3_79779.pb'
def create_graph():
with tf.gfile.FastGFile(model_dir, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
tf.import_graph_def(graph_def, name='')
create_graph()
tensor_name_list = [tensor.name for tensor in tf.get_default_graph().as_graph_def().node]
print("input_name:"+tensor_name_list[0])
print("output_name:"+str(tensor_name_list))
查看生成的onnx:
import onnx
# Load the ONNX model
model = onnx.load("./onnx/entry_202008120940_s3_79779.onnx")
# 检查IR是否形成良好
onnx.checker.check_model(model)
# 打印图形的可读表示形式
print(onnx.helper.printable_graph(model.graph))
参考:
https://blog.csdn.net/comway_Li/article/details/113885297?utm_term=pb%E8%BD%AConnx&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-1-113885297&spm=3001.4430
https://blog.csdn.net/sinat_37532065/article/details/106664724