第一次写问题解决记录,可能没有其他文章那么详细排版好,请见谅,如果有问题会尽快回答,本人也是小白
问题背景
将容器内的项目转移到宿主机上运行,问题最开始,调用不到gpu
这里的原因是nvidia官方提供了arm64架构的torch,普通下载的torch调取不到gpu(可能是我个人问题,本人也是小白,正在学习)
问题解决我放在另一个文章里面,这里解决的是在下载了nvidia官方提供的arm64架构的torch之后,出现的报错
>>> import torchvision /home/nvidia/.local/lib/python3.8/site-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension: '/home/nvidia/.local/lib/python3.8/site-packages/torchvision/image.so: undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKSs'If you don't plan on using image functionality from `torchvision.io`, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have `libjpeg` or `libpng` installed before building `torchvision` from source?
原因就是自己pip下载的torchvision和官方arm64架构的版本不匹配,详细可见我容器内的pip list
torch 2.0.0+nv23.5
torch2trt 0.4.0
torchaudio 2.0.1+3b40834
torchvision 0.15.1a0+42759b1
这几个torch包都是很奇怪的版本,torch在上面的文章解决之后,torchvision也需要自己编译下载才会是这个版本,
git clone -b v0.15.1 https://gitclone.com/github.com/pytorch/vision.git
输入这个指令后就会开始在当前下载vision包
下一步
cd vision
进入vision文件夹
git tag
查看所有版本
git checkout tags/v0.15.1
(这条不要直接复制)
切换到你的torch对应的版本
python3 setup.py install --user
安装到系统目录,等待完成即可
安装结束之后记得退出vision文件夹,然后使用以下命令来查看torchvision版本
python3 -c "import torchvision; print(torchvision.__version__)"
如果显示0.15.1a0+42759b1即为安装正确
这里有一个小插曲,楼主的显示是0.15.1,原因是有多版本的torchvision,直接使用pip uninstall torchvision将pip的删除掉,上面的编译到了系统级,默认就使用那个了