解决PyTorch环境下No module named '_ext’报错办法
这是深度学习运行时的保存,我出现报错是在运行我的Faster RCNN网络时,出现此报错的主要原因是/src/lib/models/networks/DCNv2目录中DCNv2需要重新编译,因为不同设备配置的环境不一样,解决此问题只需配置CenterNet。
1 确保自己python和pytorch安装环境正确
1.1检查自己的pytorch版本
在命令行窗口激活pytorch运行环境——python
——import torch
——torch.__version__
即可查看版本。
C:\Users\1234>activate PyTorch
(PyTorch) C:\1234\clarity>python
Python 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.1.0'
1.2pytorch1.0以上版本要禁用cudnn的批量正则化
手动修改手动修改 torch/nn/functional.py 文件内容,如果你是anaconda环境(文件地址:~/anaconda3/envs/PyTorch/lib/site-packages/torch/nn/functional.py)
找到torch.batch_norm
中的torch.backends.cudnn.enabled
替换为False
(大概在1697行)
return torch.batch_norm(
input, weight, bias, running_mean, running_var,
training, momentum, eps, False #torch.backends.cudnn.enabled 改为False
)
2 安装vs2017
确保安装VC++模块包,不然在编译过程中会报错
3 克隆CenterNet项目
git clone https://github.com/xingyizhou/CenterNet
cd CenterNet
pip install -r requirements.txt #安装所依赖的包
4 编译NMS
进入到CenterNetr\src\lib\external文件夹打开setup.py
注释掉下面这句话:
# extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]
然后命令行窗口cd
到external文件下运行python setup.py build_ext --inplace
cd CenterNetr\src\lib\external
python setup.py build_ext --inplace
5 编译 DCNv2
git clone https://github.com/CharlesShang/DCNv2
下载新的DCNv2替换覆盖掉现在的DCNv2文件
cd 到DCNv2文件,命令行运行python setup.py build develop
就开始编译了
cd src\lib\models\networks\DCNv2
python setup.py build develop
编译成功后就可以运行demo.py
了
参考链接:
https://github.com/xingyizhou/pytorch-pose-hg-3d/issues/16
https://github.com/xingyizhou/CenterNet/blob/master/readme/INSTALL.md