Pytorch 模型 pth 转onnx模型多输出实验
pytorch 模型预实验完成,进一步部署很重要的一步,转存pth模型为ONNX
Reference:
5.
# -*- coding: utf-8 -*-
"""
Project: TESTCODE
Creator: CHENRAN
Create time: 2022-06-14 14:20
IDE: PyCharm
Introduction:
"""
import torch
print(torch.__version__)
# pth模型转onnx模型
def pth_to_onnx(input, pth_path, onnx_path,):
model = torch.load(pth_path)
model.eval()
loaded_model = torch.jit.load(pth_path)
loaded_model_output = loaded_model(input.cuda())
# 指定模型的输入,以及onnx的输出路径
"""
model:# 正在运行的模型
input: # 模型输入(或用于多个输入的元组)
onnx_path: # 保存onnx模型格式的路径名字
verbose:# 是否打印网络
opset_version:# 导出模型的ONNX版本
input_names:# 模型的输入名称
output_names:# 模型的输出名称
example_outputs: 模型的输出示例
"""
output_names_list = [prob, prob_logit, prob_map, height_prob, height_prob_logit,
center_mask, visit_mask, center_idx, offset, edge_map,
seg_map]
torch.onnx.export(model, input, onnx_path,
opset_version=11,
input_names=[input],
export_params=True,
enable_onnx_checker=True,
verbose=True,
output_names=output_names_list,
example_outputs= loaded_model_output,
)
print("Exporting .pth model to onnx model")
print("Successful!!!")
def main():
example = torch.rand(1, 3, 320, 800)
folder_path = /media/ubuntu/backup/CRData/Eigenlanes_redefine/Modeling/culane/output/train/weight/
jit_pth_path = folder_path+finalmodelalljit.pth
onnx_path = folder_path+model.onnx
pth_to_onnx(input=example, pth_path=jit_pth_path, onnx_path=onnx_path)
if __name__ == __main__:
main()
Result:
上一篇:
Python 安装包管理工具 pip
