这次跑通代码废了不小的劲,网上可供参考的资源太少,所以尝试记录一下配置过程
(本博客是在跑通后等训练过程又不想早早去吃饭的情况下写的,鉴于博主是小白且整个配置过程较为漫长,所以可能有遗漏,仅供参考)
环境配置
先放上我使用的机器的信息
![](https://img-blog.csdnimg.cn/img_convert/3814c6c8fded85d4d4af9f59be53fc1c.png)
查了各种版本对应关系,得出结论是教程给的环境在这个机器上是没办法直接套用的。
于是,我建了一个虚拟环境adapter,用的是Python3.8
根据版本的各种问题抉择了一下,最后使用的是
torch1.10.0+cuda102
torchvision0.11.0+cuda102
torchaudio0.10.0+cuda102
(这里插一句我也不太清楚的原理,根据我的多次尝试,torch和torchaudio的第二个数字要是一样的,torchvision要+1)
我当时不能直接用pip下载下来,于是直接上网站用本地电脑下载后传入到服务器上了
网址就是教程里面给的https://download.pytorch.org/whl/torch_stable.html
在里面找到对应的文件就好了,当然要注意的是,cp后面的数字是表示Python的版本,还要注意操作系统的区别。
下载好之后进入下载的目录下,用pip install,例如:
pip install torch-1.10.0+cu102-cp38-cp38-linux_x86_64.whl
这样还不行的话就加上镜像源
pip install torch-1.10.0+cu102-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
好了,恭喜你完成了第一步
接下来是要安装mmcv-full,这个的安装网上教程还是不少,在vit-adapter中要求的版本是在1.3.7-1.5.0之间,.whl文件在网址 https://download.openmmlab.com/mmcv/dist/cu102/torch1.10.0/index.html里面查找,(这里记得要根据cuda和torch的版本调整网址的名称),为了稳妥起见我用了教程给的
mmcv-full==1.4.2
安装方法和上面的那些一样。
接下来跟着教程走就行了
pip install timm==0.4.12
pip install mmdet==2.22.0 # for Mask2Former
pip install mmsegmentation==0.20.2
好,安装到这就差不多了,后面还需要安装scipy,这个版本不重要,我是直接安装的
现在,请进入你要使用的目录下,比如我要用到是segmentation里面的项目,所以进入了
ViT-Adapter-main/segmentation
然后再执行
ln -s ../detection/ops ./
cd ops
sh make.sh
这里注意可能sh make.sh用不了,可以换成下面的命令试试
bash ./make.sh
如果这些都没用问题的话,那环境安装应该就告一段落了。
训练数据
因为后面我要跑的数据之前是按Pascal voc的格式处理的,所以我就直接用Pascal context的配置进行训练了
![](https://img-blog.csdnimg.cn/img_convert/4ab935336126d4cd3c8d8532c07ad610.png)
因为显存大小的限制,我采用了BEIT-B的预训练模型,图片上的第一个。
点击config就能找到相应的配置代码
现在需要下载Pascal context的图片,在segmentation的目录下建了data文件夹,然后将下载好的数据集正常放进去,路径和格式如下图所示,我下载下来的时候SegmentationClassContext命名是SegmentationClass,要更改一下
![](https://img-blog.csdnimg.cn/img_convert/70d05115314679a00d388a6a1f0f9199.png)
好了,现在数据集处理好了,接下来就是训练了
首先下载预训练模型,其实是可以自动下载的,但访问外网实在太慢了,于是我还是自己下载了传上服务器。
这个地方下载预训练模型,需要根据自己选择的模型更改,也可以直接点击config在代码里面找到下载的网址。
![](https://img-blog.csdnimg.cn/img_convert/46d4cbe2e53bfbfbef3090746947873d.png)
下载好后放入ViT-Adapter-main/segmentation/pretrained/目录下
使用如下命令(根据config名字调节,最后的数字是表示你有多少个GPU,根据实际情况自行调整)
bash ./dist_train.sh configs/pascal_context/mask2former_beit_adapter_large_480_40k_pascal_context_59_ss.py 1
大功告成!
可以给大家展示一下我刚训练十分之一的结果
![](https://img-blog.csdnimg.cn/img_convert/cabd8c436c7ddf304d9cffae275ce9b2.png)