admin 管理员组文章数量: 887021
目录
0. 背景
1. 随便写一个pytroch模型并转为onnx模型
1.1 随便写一个pytorch图像分类模型
1.2 转为onnx模型,并检查输入(没有进行训练)
2. onnx2pdinference
3. pdinference2android
4. 打开paddle的安卓部署工程文件
5. 连接手机或模拟器
6. 修改安卓工程文件,并运行
7. 参考链接
0. 背景
百度官方给我们提供了很好的安卓端部署demo,但现阶段很多模型都是pytorch实现的,想要自己复现可能需要花些时间,因此我们可以从pytorch转到onnx再到paddle实现安卓端的部署。
简单起见,我们采用最简单的图像分类模型做演示。
1. 随便写一个pytroch模型转为onnx模型
1.1 随便写一个pytorch图像分类模型
import numpy as np
import torch
import torch.nn as nn
import onnxruntime
class simple_model(nn.Module):
def __init__(self, in_dim, n_class):
super(simple_model, self).__init__()
self.conv = nn.Sequential(
nn.Conv2d(in_dim, 16, 3, stride=1, padding=0),
nn.ReLU(True),
nn.MaxPool2d(2, 2),
nn.Conv2d(16, 32, 3, stride=1, padding=0),
nn.ReLU(True),
nn.MaxPool2d(2, 2),
nn.Conv2d(32, 64, 3, stride=1, padding=0),
nn.MaxPool2d(2, 2)
)
self.fc = nn.Sequential(
nn.Linear(43264, n_class),
# nn.Dropout()
)
def forward(self, x):
out = self.conv(x)
out = out.view(out.size(0), -1)
out = self.fc(out)
return out
1.2 转为onnx模型,并检查输入(没有进行训练)
这一步生成onnx模型,并对比其预测结果与pytoch模型的预测结果
if __name__ == '__main__':
x = torch.randn(1, 3, 224, 224, requires_grad=True)
model = simple_model(3, 2)
out = model(x)
# Export the model
torch.onnx.export(model,
本文标签: 最简单 深度 模型 教程 pytorch2onnx2pdinfer2android
版权声明:本文标题:超最简单的安卓端深度学习模型部署教程——pytorch2onnx2pdinfer2android 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726386426h950224.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论