要看代码的,跑别人代码看代码而不是看README教程绝对是事半功倍,看demo.py代码得知下载的模型是放在根目录下的。
遇到问题:
ImportError: /home/wyy/czh_Project/pytorch-mask-rcnn/nms/_ext/nms/_nms.so: undefined symbol: __cudaRegisterFatBinaryEnd
原因是pytorch中的cuda版本与系统安装的CUDA版本号不一致导致的。先用以下命令查询pytorch的cuda版本号:
python -c "import torch;print(torch.version.cuda)"
用以下命令查询当前环境的CUDA版本号
nvcc --version
如果两个不一致,那就考虑把两者版本调整到一致,使得两者兼容。
pytorch 0.4.1、1.0.0、1.0.1、1.1.0这几个版本对应的CUDA版本都是9.0.176,因此安装这几个中的哪个版本的pytorch都ok。
如果想直接用已安装的CUDA 10.2,可以安装pytorch 1.5.0。pytorch 1.4.0对应的CUDA版本为10.1
我选择重装pytorch 来解决
我这边应该重装pytorch1.4.0
之后装好之后再次运行
python demo.py
报错
ImportError: numpy.core.multiarray failed to import
搜索得到的结果是
需要卸载两次numpy再重新安装numpy
卸载两次的原因可能是之前卸载了pytorch 但是没有卸载掉numpy什么的原因 。
之后,再次报错
ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.
之后搜索得
解决方案
这个教程里面的最后引入同文件夹下的文件,需要在前面加上一个.
然后又报错
ImportError: /home/wyy/czh_Project/pytorch-mask-rcnn/nms/_ext/nms/_nms.so: undefined symbol: THLongTensor_copyCuda
可能是之前卸载pytorch没卸载干净,需要卸载两遍。