tensorflow保存pb文件
参考 https://zhuanlan.zhihu.com/p/32887066
# convert_variables_to_constants 需要指定output_node_names,list(),可以多个
constant_graph = graph_util.convert_variables_to_constants(self.session,self.session.graph_def,
['global_descriptor','keypoints','local_descriptors'])
# 写入序列化的 PB 文件
with tf.gfile.FastGFile(pb_file_path+'model.pb', mode='wb') as f:
f.write(constant_graph.SerializeToString())
pt转onnx
import torch
model = torch.jit.load('MobileNetVLADPCA.pt')
input_shape = (3, 640, 480) #输入数据
input_data_shape = torch.randn(1, *input_shape, device="cpu")
out = model(input_data_shape)
print(out.size()) #注意,这里如果是多输出的话需要写多个输出名即output_names,多输入同理
input_names = ["input"]
output_names = ["output"]
torch.onnx.export(model, input_data_shape, "MobileNetVLADPCA.onnx", verbose=True, export_params=True,
input_names=input_names,output_names=output_names,example_outputs=out)
pytorch转换模型:
python3 mo_onnx.py --input_model <输入模型路经> --output_dir <输出模型路经> --input_shape [1,3,640,480]