目录
1、安装torch
2、安装torchvision
3、验证是否安装成功
4、 错误记录
5、torch和torchvision网盘链接
首先,torch和torchvision都不能直接pip安装,
以下的演示是torch1.10.0 + torchvision v1.11.1
torch要去英伟达官网上找。链接如下(科学上网)https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048,(百度网盘里也有,后边在写)
根据你的cuda版本(查询cuda版本,命令用nvcc -v),我是cuda10.2,按如下对应关系,
下载torch版本,挑一个下载就行,下载完的文件像这样,这三个文件的百度网盘链接在最后
下载完后用u盘转到jetson nx 板子上,主目录下新建个文件夹放好(位置没有要求,这样做就是为了删除的时候好找)
在板子上,进入放torch的文件夹,打开终端,进入你的conda虚机环境(如果你有的话)
运行
pip3 install torch-1.10.0-cp36-cp36m-linux_aarch64.whl
注意torch文件名换成自己的,安装完成后,会提示successful install torch1.10.0,就安装成功了
网上大部分的arrch.whl文件不可用,也有用
git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision 方法的,
下完zip文件,解压,自己编译是最保险的,以下网址科学上网
https://github.com/pytorch/vision (GitHub的官方网站)
mirrors / pytorch / vision · GitCode(一位成功的大哥给的网址,我用的这个网址下的)
(这两个网址下载下来的version文件,相同版本的大小是一样的,其中GitHub官网下载的版本号没有v,大哥的网址有v,我是没发现有什么不同)
下载下来文件 长这样,挑一个版本下载就行,这6个文件的百度网盘链接在最后
下载完成后,把zip压缩文件转到jetson nx 板子上,和上边torch.whl放同一个文件夹下,
1、进入文件夹,打开终端,先安装依赖项
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
2、用 unzip vision-v0.11.1.zip 解压文件,
3、cd vision-v0.11.1 进入文件夹,进入你的conda虚拟环境,
4、输入 gedit ~/.bashrc #修改bashrc文件
弹出一个TXT,把下边这一行添加到最后,右上角保存,关闭
export BUILD_VERSION=0.11.1
#版本号是0.11.1就写0.11.1,是0.10.0就写0.10.0
source ~/.bashrc # 刷新bashrc文件 (sudo vi ~/.bashrc不好用,会出现wap已存在)
5、 终端继续输入 python3 setup.py install --user ,开始编译,
如果显示找不到torch,是因为那安装torch的环境和安装torchvision的环境不一是一个
编译的时间很长,耐心等待,会有警告,
包括但不限于cc1plus: warning: command line option ‘-Wstrict-prototypes’ is
valid for C/ObjC but not for C++
有博客说过解决办法,我试了没啥效果,有兴趣可以试试,解决办法在下边博客的第三步
NVIDIA JETSON XAVIER NX (四)安装Pytorch和torchvision_小可同学呀的博客-CSDN博客_jetson nx安装pytorch
警告没事,不用管
6、等跑完,会提示 Finished processing dependencies for torchvision==0.11.0a0
编译完成
pycharm新建一个py文件,输入如下代码,切换解释器为安装torch和torchvision的虚拟环境,运行
import torch
import torchvision
print('1')
print(torch.__version__) # 查看torch版本
print('2')
print(torchvision.__version__) # 查看torchvision版本
print('3')
print(torch.cuda.is_available()) # 查看torch下cuda是否可用
print('4')
print(torch.cuda.device_count()) # 查看#GPU驱动数量
print('5')
print(torch.cuda.get_device_name()) # 查看#GPU驱动动名称
没有报错的话,我的输出是这样,基本上就成功了
1
1.10.0 # torch版本
2
0.11.0a0 # torchvision版本
3
True # cuda是否可用,若为flase,继续往下看
4
1 # GPU驱动数量
5
Xavier # # GPU驱动名称
1、如果import torch
print(torch.cuda.is_available())
输出是false,那在正确配置了cuda环境变量的情况下,应该就是你下载成了CPU版本的torch,比如这两个,就是CPU版本的
2、 运行yolov5的detect.py,报错
RuntimeError: Couldn't load custom C++ ops
原因torch和torchvision版本不匹配,可能你看输出的版本确实是匹配的,但依然报这个错误,最好的办法是,把torch和torchvision删干净,在确保两者版本匹配的签一下,
重新安装torch,torchvision,就可以了,这个地方我卡了好久,就是装上试一试,报错,删干净,重新装或者换一组重新装
3、运行yolov5的detect.py,报错
cv2.error: OpenCV(4.5.0) ../modules/highgui/src/window.cpp:651: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
原因:opencv-python需要配套扩展库opencv-contrib-python使用
解决办法
pip install --upgrade pip #升级pip,不升级也行
pip install opencv-contrib-python
链接:https://pan.baidu.com/s/1C5tXlk-RG6akGaCDgbmcVw
提取码:0gac