最近,由于实验要求,我需要把在服务器上训练好的pytorch模型预训练.pth文件部署到安卓端测试推理时间,但是一直不知道应该怎么转变模型和部署,查了很多资料,遇到了很多问题,在同学的帮助下,尝试成功。
我简单记录一下整个部署流程,希望可以帮助想要尝试的同志们,同时,如果之后还需要部署相同项目的时候,我还可以参考这篇笔记。
一共有四个部分,pytorch->onnx->nn->Android
1.pytorch->onnx
(1)安装onnx和onnxruntime
onnx: onnxruntime:
CPU版本: GPU版本: 我使用的是gpu版本,在服务器上安装的
参数:
model :torch模型 pth文件
x:模型的输入 tensor
output_onnx:模型输出位置和文件 如:“resnet.onnx”
export_params:bool,default=True true表示导出trained model。默认即可
注意:在这个函数之前一定先使用model.eval()
2)onnxruntime加载onnx模型测试
2.onnx->nn
ncnn安装之前需要先安装opencv和protocol
1)protocol各版本地址:s://githubhttps://blog.51cto.com/u_/protocolbuffers/protobuf/releases
我安装的3.17.0
3)克隆nn项目
然后,编译一下
在build/tools/onnx/ 目录下就有转换工具onnx2nn文件了
然后去到目录build/tools/onnx/下运行(每次运行新的程序都需要重新执行上面的代码编译onnx)
mobilenetv3.param 和mobilenetv3.bin是我们所需的nn文件
(3)nn->Android
这一步真的是我弄了两天,因为要跑别人的项目,所以在环境配置上有很多的问题,搞得很心烦。
我这一步是在windows上运行的,安装了android studio。
建议大家先跑别人的程序试一下:squeezenet
这个链接里面也有教程,应该怎么使用,很好用。
我在调整android studio时有很多问题,主要是代理的配置有问题:
(1)导入项目在Building gradle project info 时一直卡住
根据自己文件夹中对应的版本下载
(4)根目录下没有 gradle.properties 文件
可以用Android studio新建一个项目,把它的gradle.properties 文件拷贝过来,
然后加上
然后sync project 或者重启工程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/181121.html