首先我们在第一篇里面已经下载了SegNeXt代码
打开源代码
查看readme文件
我们先安装一下里面提到的torchprofile
链接在这
其实只要这个语句就能安装
pip install torchprofile
这一步没什么问题
很顺利
接下来继续按照他的教程走
我们在(一)已经安装了mmsegmentation
接下来去下载一下他的数据
下载数据
数据的描述在这个文件里
我先去下载ade数据试试
ADE20K 的训练集和验证集可以在 这里 下载。
您还可以在 这里 下载验证集。
数据格式如下
mmsegmentation
├── mmseg
├── tools
├── configs
├── data
│ ├── ade
│ │ ├── ADEChallengeData2016
│ │ │ ├── annotations
│ │ │ │ ├── training
│ │ │ │ ├── validation
│ │ │ ├── images
│ │ │ │ ├── training
│ │ │ │ ├── validation
编译配置
然后按照他的语句进行源代码编译
很顺利
没报什么错
打开vscode查看一下train的代码
这里忘记如何配置的vscode的小伙伴可以查看我的这篇文章Ubuntu20搭建pytorch深度学习框架——运行Dlinknet提取道路(一)——前期准备环境配置
我详细介绍了怎么查询自己的虚拟环境
以及如何配置vscode
配置完成后包就不会变红啦
然后打算在vscode中运行
报错
bash: ./tools/dist_train.sh: 权限不够
解决方法
chmod 777 ./tools/dist_train.sh /path/to/config 8
但这里报错
chmod: 无法访问 ‘/path/to/config’: 没有那个文件或目录
chmod: 无法访问 ‘8’: 没有那个文件或目录
训练
查看train的md文件
这个里面写的有个bug
按照我下面的语句运行才可以成功
bash tools/dist_train.sh configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py
然后就会生成这样一些文件
这个一直报错
RuntimeError: NCCL error in: /opt/conda/conda-bld/pytorch_1640811805959/work/torch/csrc/distributed/c10d/ProcessGroupNCCL.cpp:957, invalid usage, NCCL version 21.0.3
ncclInvalidUsage: This usually reflects invalid usage of NCCL library (such as too many async ops, too many collectives at once, mixing streams in a group, etc).
错误解决
这个问题是因为我们执行的语句有问题
在我请教了师兄之后
师兄告诉我
bash 那个是分布式用的,我们就一张卡不需要
救了孩子的命
所以我们的语句换成这样就可以成功啦
单卡的说明在这里
python tools/train.py configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py
成功开始训练!