Ubuntu20运行SegNeXt代码提取道路水体(二)——SegNeXt源代码安装到测试环境配置全过程摸索

2023-05-16

首先我们在第一篇里面已经下载了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  

成功开始训练!
请添加图片描述

测试

结果已经预测出来了
在这里插入图片描述

同理 我的语句是
在这里插入图片描述

python tools/test.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/iter_80000.pth --eval mIoU

出来的页面与之前的类似
在这里插入图片描述

其他尝试

还可以尝试一下其他的检查点文件
在这里插入图片描述
比如我尝试了一下 iter_40000.pth
看一下结果
果然没有之前的好
在这里插入图片描述
但是这个语句只会出来一个miou结果
我需要他把预测的图片生成该怎么办呢
在这里插入图片描述
在这里插入图片描述
这个语句就可以输出结果

python tools/test.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k.py work_dirs/pspnet_r50-d8_512x512_80k_ade20k/iter_80000.pth --show-dir work_results/ --eval mIoU

在这里插入图片描述

使用SegNeXt进行训练及预测

首先去他给的网址下载与训练权重
在这里插入图片描述
下载下来后
在这里插入图片描述
用相同的方法进行训练 看看ade数据效果如何
把这个预训练放在这个路径下

base

训练语句如下:
在这里插入图片描述
只不过数据的位置需要更改一下
放在如下图所示的位置
在这里插入图片描述
结果比想象中的好太多了!
在这里插入图片描述
使用最新的检查点文件进行测试

在这里插入图片描述
结果如下:
在这里插入图片描述

large

同样的我尝试了large训练到8000的权重的测试结果为
在这里插入图片描述
在这里插入图片描述
继续训练
第32000次:
在这里插入图片描述
在这里插入图片描述
第36000次:
在这里插入图片描述
在这里插入图片描述
latest:
在这里插入图片描述

在这里插入图片描述

训练自己的数据集

参考博客1
参考博客2(voc格式)
参考博客3(voc格式)
参考博客4(ade格式)
在这里插入图片描述
结合这一句话
我明白了
对数据格式的要求:
1、八位深度的mask
2、类别的顺序就代表了mask上对应类别的像素值!!!所以我需要修改一下我的图片

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20运行SegNeXt代码提取道路水体(二)——SegNeXt源代码安装到测试环境配置全过程摸索 的相关文章

随机推荐