torch_ points_ Kernels encountered modulenotfounderror: no module named ‘torch_ points_ kernels. points_ cpu’
在Debug RandLA-Net Pytorch版本代码时,按照Readme.md配置环境时,发现torch_ points_ Kernels encountered modulenotfounderror: no module named 'torch_ points_ kernels. points_ cpu’和torch_ points_ Kernels encountered modulenotfounderror: no module named 'torch_ points_ kernels. points_ cuda’两个问题
import torch
import torch.nn as nn
try:
from torch_points import knn
#from torch_points_kernels import knn
except (ModuleNotFoundError, ImportError):
from torch_points_kernels import knn
错误提示:
ModuleNotFoundError: No module named 'torch_points_kernels.points_cpu'
ModuleNotFoundError: No module named 'torch_points_kernels.points_cuda'
环境配置:RTX 3090,CUDA 11.1,cudnn 8.0.5, Ubuntu 20.04, Pytorch 1.10.2,Python 3.6
重复安装多个版本的torch-points-kernels库,总是会报出以上两个错误中的一种,于是找到torch-points-kernels源码库解决问题
方法:
- 进入RandLA-Net-Pytorch文件夹克隆torch-points-kernels项目: git clone https://github.com/torch-points3d/torch-points-kernels
- 安装torch-points-kernels库,记得切换进torch-points-kernels项目(反正再安装一遍吧,都到这一步,死马当活马医,这都是torch-points-kernels项目中Readme.md的步骤)
pip install torch-points-kernels -i https://pypi.tuna.tsinghua.edu.cn/simple #采用临时镜像源会安装快一点
- 在torch-points-kernels项目中按照以下代码编译,
python setup.py build_ext --inplace
python -m unittest
- 这里我就把它放在RandLA-Net-Pytorch中没动了,因为之前我就clone进这个文件中了,试以下代码,如果没问题,基本就行了
import torch
import torch_points_kernels.points_cuda
我个人猜测应该是cuda和cudnn与pytorch版本不匹配导致的,因为在公司别人Windows电脑上又能pip下来,我为这个问题搞了好久,还重新装了CUDA和cudnn,最后没办法就把这个库下载下来编译了一遍,结果就好了,之前怎么试怎么不行,而且还能找到对应torch_points_kernels库,不知道怎么识别不到。