最近,由于实验要求,我需要把在服务器上训练好的pytorch模型预训练.pth文件部署到安卓端测试推理时间,但是一直不知道应该怎么转变模型和部署,查了很多资料,遇到了很多问题,在同学的帮助下,尝试成功。
我简单记录一下整个部署流程,希望可以帮助想要尝试的同志们,同时,如果之后还需要部署相同项目的时候,我还可以参考这篇笔记。
一共有四个部分,pytorch->onnx->ncnn->Android
1.pytorch->onnx
(1)安装onnx和onnxruntime
onnx: pip install onnx
onnxruntime:
CPU版本:pip install onnxruntime
GPU版本:pip install onnxruntime-gpu
我使用的是gpu版本,在服务器上安装的
(2)pytorch->onnx
1)我使用pytorch生成了预训练的pth文件,把这个文件转换成onnx文件,只需要一个函数:
#导出onnx文件
torch_out = torch.onnx._export(model, x, output_onnx, export_params=True, verbose=False, input_names=input_names, output_names=output_names)
参数:
model :torch模型 pth文件
x:模型的输入 tensor
output_onnx:模型输出位置和文件 如:“resnet.onnx”
export_params:bool,default=True true表示导出trained model。默认即可
注意:在这个函数之前一定先使用model.eval()
2)onnxruntime加载onnx模型测试
import onnx
model = onnx.load("model.onnx

最低0.47元/天 解锁文章
8569

被折叠的 条评论
为什么被折叠?



