- 问题:进行cuda运算的时候出现
RuntimeError: CUDA error: no kernel image is available for execution on the device
- 解决办法:重装pytorch和 cudatoolkit。根据实验,RTX3090支持sm86算力,但是部分torch无法支持这么高,一些torch的版本是纯版本号,一些torch的版本形式是:1.10.0+cu102这类形式,前者需要重装torch,后者需要重装torch+cudatoolkit。
- 问题:所有都装好了之后,出现引入某个包出现
ModuleNotFoundError: No module named
,但是这个包明明存在。
- 解决办法:卸载了重装这个包
- 问题:导入pyg出现
OSError: /opt/conda/lib/python3.7/site-packages/torch_sparse/_version_cpu.so: undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
- 解决办法:这是因为安装的pyscatter版本不匹配,尤其是从pyg的仓库里面下载的时候,大家可能都以为没有问题。实际上,安装的时候会悄悄升高一个小的版本号,导致不匹配报错。
- 问题:导入pyg出现
Segmentation fault (core dumped)
- 解决办法:出现这个错误说明很多地方都有错误,可以先检测pyg的相关包
torch-scatter
、torch-cluster
等的版本,基本上不会是torch版本的问题
- 问题:运行时候出现
RuntimeError: object has no attribute sparse_csr_tensor:
- 解决办法:出现这个错误,经过实践是
torch-sparse
包里面引用了torch.sparse_csr_tensor()
方法,为什么torch没有这个方法,这个版本的torch-sparse
却能使用呢?不太清楚,解决办法就是升级torch
或者降级torch-sparse
。
- 问题:安装
torch-cluster
的时候出现ERROR: Failed building wheel for torch-cluster
- 解决办法:看提示,是因为什么报错,低版本的
torch-cluster
会通过g编译安装,如果没有g则会报错。
- 问题: 运行的时候出现
OSError: libcudart.so.11.0: cannot open shared object file: No such file or directory
- 解决办法:这个应该是最为常见的错误,是
torch_sparse
报的错误。经过实验,是由于torch_sparse
需要调用这个库,但是当前的torch没有这个库,也就是说torch
的版本和这个troch_sparse
不匹配。
- 问题:导入sparse出现问题
OSError: libcusparse.so.11: cannot open shared object file: No such file or directory
- 解决办法:这个问题和上面的问题还不太一样,其实我一开始碰到的就是这个问题,这么一个小小的问题,网上一搜答案,五花八门,完全不管有没有用都在乱说,导致出现了上面这么多问题。后面重新分析,报错显示找不到这个so,直接全局搜索,找到这个包的位置,有的可能用
find
命令根本找不到,需要用正则匹配。找到这个包的位置,一般在conda/lib下面,然后将这个文件夹添加到环境变量export LD_LIBRARY_PATH="opt/conda/lib/"
,即可解决。
我真服了,网上这些乱说的博客,方案几乎都不能通用,只能在他们自己电脑上用,还信誓旦旦说最全解决方案,一定能解决。
评论区