Pytorch模型部署开发板所遇到的坑.....

工作原因,需要将pytorch模型部署到rk3399。
现一步步记录下这些bug哈(晕)----希望最后能把这项目完成吧

pytorch ----> onnx

Bug 1:

RuntimeError: Failed to export an ONNX attribute, since it’s not constant, 
please try to make things (e.g., kernel size) static if possible

解决方案:
一开始看blog说是pytorch版本问题,于是从 pytorch1.1 降级
conda install pytorch==1.0.1 torchvision==0.2.2 cudatoolkit=9.0 -c pytorch
但是后来还是报错哈。
其实这是网络模型里的一些写法问题,onnx只能识别常量,所以需要将模型里的一些shape[2:]改为常量数值。

Bug 2:

RuntimeError: ONNX export failed: Couldn't export operator aten::avg_pool2d

这个bug看了好久,后来又将环境切换为原来的pytorch1.1的版本,然后就解决了。。。

Bug3:

net.onnx模型执行这步

onnx.checker.check_model(model)

报错

Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

解决方案:
查找原因是因为数组内存溢出。。。真的一脸懵。。。
最后发现是import包顺序不对!
在import torch之前import onnx,二者的前后顺序要注意

==> Passed

Process finished with exit code 0

然后这个bug就解决了(也是很晕哈)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Jetson Nano 是一款基于 NVIDIA Jetson 平台的小型开发板,可以用于部署深度学习模型PyTorch是一种非常流行的深度学习框架,而 ONNX是一种可互操作的深度学习模型格式,可以在不同的框架之间共享模型。 以下是在 Jetson Nano 上部署 PyTorch ONNX 模型的步骤: 1. 安装 PyTorch 和 ONNX 在 Jetson Nano 上安装 PyTorch 和 ONNX,可以使用 pip 命令: ``` pip3 install torch torchvision pip3 install onnx ``` 2. 导出 PyTorch 模型为 ONNX 格式 使用 PyTorch模型导出为 ONNX 格式,可以使用以下代码: ``` import torch import torchvision model = torchvision.models.resnet18(pretrained=True) model.eval() dummy_input = torch.randn(1, 3, 224, 224) input_names = ["input"] output_names = ["output"] torch.onnx.export(model, dummy_input, "resnet18.onnx", verbose=True, input_names=input_names, output_names=output_names) ``` 3. 在 Jetson Nano 上加载 ONNX 模型 使用 ONNX 运行时库在 Jetson Nano 上加载 ONNX 模型。可以使用以下代码: ``` import onnxruntime as ort session = ort.InferenceSession("resnet18.onnx") input_name = session.get_inputs()[0].name output_name = session.get_outputs()[0].name input_data = np.random.randn(1, 3, 224, 224).astype(np.float32) result = session.run([output_name], {input_name: input_data}) print(result) ``` 以上就是在 Jetson Nano 上部署 PyTorch ONNX 模型的步骤。需要注意的是,在 Jetson Nano 上运行深度学习模型需要使用 GPU 加速,因此应该确保已经安装了适当的 NVIDIA GPU 驱动程序和 CUDA 工具包。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值