onnx 模型转换与 onnxruntime 和caffe2 推理速度比较
背景
pytorch 模型通常包括网络结构.py文件和模型参数文件.pth,通常需要转换为onnx格式再向其他终端或移动端部署(onnx模型一般用于中间部署阶段,相当于翻译的作用)。移动端通常使用ncnn、mnn、Caffe2进行inference,实现实时计算。
本文展示pytorch转onnx的模型在PC端 以CPU方式运行。
1、模型转换
1.1. pytorch 模型转onnx 模型
def torch2onnx(model, save_path):
"""
:param model:
:param save_path: XXX/XXX.onnx
:return:
"""
model.eval()
data = torch.rand(1, 3, 48, 64)
input_names = ["input"]
output_names = ["cls","lmk"]
torch.onnx._export(model, data, save_path, export_params=True, opset_version=11, input_names=input_names, output_names=output_names)
print("torch2onnx finish.")
在实际使用过程中我们希望inference时支持batch=2的操作,比如左右眼分类。
可以修改
data = torch.rand(2,