成功解决Couldn‘t load custom C++ ops. This can happen if your PyTorch and torchvision versions不匹配问题

问题描述:

设备MIIVII APEX AD10,aarrch64,Ubuntu20.04,jetpack5.0.2
由于工作需要须在该设备上配置深度学习PyTorch环境,根据米文动力相关论坛不建议更换Jetpack版本,由此只能安装Python3.8,并按说明对应Torch与Torchvision的版本。

参考链接:PyTorch for Jetson
Jetpack与P有Torch版本对应
torch与torchvision版本对应
后续,根据这些要求配置Torch环境出现如下错误

RuntimeError: Couldn't load custom C++ ops. This can happen if your PyTorch and torchvision versions are incompatible,** or if you had errors while compiling torchvision from source. For further information on the compatible versions, check https://github.com/pytorch/vision#installation for the compatibility matrix. Please check your PyTorch version with torch.__version__ and your torchvision version with torchvision.__version__ and verify if they are compatible, and if not please reinstall torchvision so that it matches your PyTorch install.

报错原因:

Torch与Torchvision版本不匹配,第三方包安装的包不适配我的设备

问题排查与解决过程:

  1. 尝试1.11、1.12、1.13三个版本的Torch,对应安装Torchvision均未能解决问题。
  2. 最后选择使用人数最多的Torch1.12.0,且该版本能够适配本机,并能正确调用GPU,测试代码如下
import torch
#import torchvision
print(torch.__version__)
#print(torchvision.__version__)

print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))

a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))

print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))

因此,就选择torch1.12死磕Torchvision版本问题,期间尝试从各种地方安装Torchvision包均为解决,最后发现一种从源码自行构建包进行编译的方式。

具体解决过程

  • git代码
git clone --branch  v0.13.0 https://github.com/pytorch/vision torchvision

git失败,采用链接,方法4的第一行并链接自己手机热点解决Git问题。Git问题解决

  • Torchvision编译
cd torchvision
export BUILD_VERSION=0.13.0
python3 setup.py install --install-lib=/home/nvidia/.local/lib/python3.8/site-packages

期间报错,找不到torch,但本机已安装,就修改CMakeList.txt文件中的find(Torch REQUIRED)行,修改如下,path为自己Torch的安装路径,install时我也是安装在我对应需要的地方

在这里插入图片描述
查找Torch安装路径,然后会得到Torch的详细安装路径

pip show torch

参考Torchvision编译网址
(部分地方有区别,没法直接用)

安装完成,按之前的代码测试,无任何警告信息。
测试YoloX模型,运行成功,无报错,无任何警告信息。
在这里插入图片描述
在这里插入图片描述
PS:整整调试了2天,终于解决了,调试过程太痛苦了,终于解决的时候好爽,太有成就感了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值