提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
记录一下今天配置pytorch3d环境踩到的坑
1.OSError
我是在linux创建虚拟环境,python=3.8,因为没有看cuda版本和对应pytorch版本,直接按照官方网站pytorch3d走的,然后踩到了第一个坑
OSError: libtorch_cuda_cpp.so: cannot open shared object file: No such file or directory
这个大概率也是版本不匹配,只要版本匹配就好了,下面第3点安装具体流程写了如何匹配版本
2. 第二个问题 ZNK2at6Tensor7is_cudaEv
ImportError: /路径/python3.8/site-packages/pytorch3d/_C.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZNK2at6Tensor7is_cudaEv
这个的解决是我发现,我cuda版本,pytorch的cuda版本以及pytorch3d中的cuda版本可能不匹配。这个借鉴了这里的经验。
3.pytorch以及pytorch3d安装具体流程
所以我就经过nvcc -V命令找到当前cuda版本,
nvcc -V
然后经过pytorch找到对应cuda的版本。
这里需要注意的是尽量不要使用pip install,而是使用conda install,因为下面pytorch3d是按照conda install。
至于pytorch3d就还是按照官方安装就好了,这里我推荐博主的安装。
主要核心方法如下,还是比较简单的:
首先是安装pytorch3d安装两个核心库
conda install -c fvcore -c iopath -c conda-forge fvcore iopath
其次安装pytorch3d
conda install pytorch3d -c pytorch3d
4.在这里还可能遇见一种情况就是出现 Solving environment: failed
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
我是通过下面两条指令解决的
conda config --add channels conda-forge
conda config --set channel_priority flexible
5.还可能遇到的问题 RuntimeError: CUDA error
RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling `cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc)`
有人推荐
pip uninstall nvidia-cublas-cu11
但似乎对我不太管用
我采取的是
unset LD_LIBRARY_PATH
6.最后一个问题 Unknown encoder ‘libx264’
Unknown encoder 'libx264'
这里我是通过下面两条指令完成的操作
conda uninstall ffmpeg
conda install ffmpeg
总结
这里遇到报错,主要还是因为版本不匹配,需要知道自己的cuda版本,然后找到对应的pytorch版本安装才不会出错