又跟着小伙伴们参加比赛了,这回晾了许久,生疏不少。新的比赛就意味着要搭建新的环境,这回要安装mmdetection的环境。我自己的机子是很老的显卡,1080ti,11G的显存,之前已经装了CUDA10.2和cudnn。
电脑安装的是miniconda,摆脱了anaconda的累赘,改为常用命令行安装;结合vscode,就是我大概的装备了。撸起袖子,按照比赛给的安装baseline开始配置环境。
也记录一下坑。
先给设立一个隔离环境提示1:最好打开的是anaconda powershell prompt来做下面的 *** 作
conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab
比赛文档中要求的python版本很重要,一定要听。另外,记住环境名 “open-mmlab”
安装合适的pytorch因为1080ti的关系,没有安培架构,只能装10.2的CUDA(已经极限),所以pytorch官网已经没有办法提供相应的torch版本,说至少11.2起跳。所以只能试试顺着安装文档的来。
提示2:需要确保 CUDA 的编译版本和运行版本匹配。可以在 PyTorch 官网查看预编译包所支持的 CUDA 版本。我这里是10.2的CUDA,故。
conda install pytorch cudatoolkit=10.2 torchvision -c pytorch
这里就有一个坑:如果不注意CUDA版本,或者CUDA没有提前装好的话,这里的pytorch就会默认装的cpu版的,在后续就很麻烦。解决办法就是安装完这一步之后,输入conda list看看,旁边会标有:
pytorch 1.6.0 py3.7_cuda102_cudnn7_0 pytorch
如果显示如上,这步安全。然后做个py文档测试一下是否能用,double check:
import torch
print(torch.__version__)
print(torch.has_cuda)
安装mmdetection(一步到位 | 舒适法)
所谓舒适法,就是很安逸地装完。
pip install openmim
mim install mmdet
装完之后就可以测试一下,mmcv是否安装成功,还是一样,在测试py文档中输入:
from mmcv.ops import RoIPool
直接运行,不报错就可以。不幸的是,我的报错了,说找不到DLL文件。查了很多文献,说是mmcv的包不太行,得走自己编译的稳妥,好么,就有了下面的版本。
安装mmdetection(手动 | 稍折腾法) 1. 先安装mmcv-full安装 mmcv-full,官方建议是使用预构建包来安装:
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html
提示3:要注意cuda版本10.2,torch版本1.6.0,在上述链接里都得改好,不然也都是错误。
提示4:注意conda list,看看有没有重复安装mmcv,如果“mmcv”和“mmcv-full”在反复安装中,二者都存在的话,将来也要报错。
pip install mmdet
MMDetection 和 MMCV 版本兼容性如下所示,需要安装正确的 MMCV 版本以避免安装出现问题。我在自我编译mmcv的时候,屡次不可控制的安装成了1.5.0版本,所以还是改回现在这个方法来了。
| MMDetection 版本 | MMCV 版本 |
|:--------------:|:-------------------------:|
| master | mmcv-full>=1.3.17, <1.5.0 |
| 2.23.0 | mmcv-full>=1.3.17, <1.5.0 |
| 2.22.0 | mmcv-full>=1.3.17, <1.5.0 |
3. 检测是否安装成功
from mmcv.ops import RoIPool
只要不报错,就好。可惜,紧接着就遇到一个新坑:
报错:“from . import _imaging as core”
一查,需要更新一下Pillow,回去powershell prompt:
pip install -U Pillow
再运行就不报错了。
总结- cuda版本号和torch版本决定一切,注意看看要修改哪里,别装了个不搭的,尤其是torch给装成cpu版了那就白瞎了氪金狗卡了。
- mmdet和mmcv-full的版本也要匹配,匹配上则内部自动装的numpy、pandas、matplotlib、scipy等等包都是匹配的。
- 注意opencv-python,这个包有可能会安装两次,注意uninstall一个长名称的就可以。
- 搭环境是第一步,真考验人。
最后看到这张demo图眼泪流了下来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)