基于ADE20K数据集的SETR模型训练

基于ADE20K数据集的SETR模型训练

安装

复制代码
conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab
conda install torch==1.12.0+cu116 torchvision==0.13.0+cu116 -f https://download.pytorch.org/whl/torch_stable.html
pip install mmcv-full==1.6.0 -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html
git clone https://github.com/fudan-zvg/SETR.git
cd SETR
pip install -e . 
pip install -r requirements/optional.txt
mkdir data # 将数据集放到该目录下

训练

复制代码
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM}
例如在Cityscapes dataset,使用8 GPUs,SETR-PUP训练
./tools/dist_train.sh configs/SETR/SETR_PUP_768x768_40k_cityscapes_bs_8.py 8
或者其他
./tools/dist_train.sh configs/SETR/SETR_Naive_512x512_160k_ade20k_bs_16.py 1

本次使用:
./tools/dist_train.sh configs/SETR/SETR_MLA_512x512_160k_ade20k_bs_8.py 1

test

复制代码
./tools/dist_test.sh configs/SETR/SETR_MLA_512x512_160k_ade20k_bs_8.py work_dirs/SETR_MLA_512x512_160k_ade20k_bs_8/iter_160000.pth 1 --format-only --eval-options "imgfile_prefix=./SETR_MLA_512x512_160k_ade20k_bs_8_test_results"

修改bug:

复制代码
将mmseg/models/decode_heads/hlg_utils.py中的16行/19行注释掉
#from ..backbones.region_attention import LayerNorm2d
#from mmseg.models.backbones.hlg_share import AttentionShareGlobal, AttentionShareLocal, DWMlp, InnerPatchEmbed

问题解决:

1.报错:

复制代码
	Traceback (most recent call last):
	  File "./tools/train.py", line 12, in <module>
		from mmseg import __version__
	  File "/root/autodl-tmp/SETR/mmseg/__init__.py", line 27, in <module>
		f'MMCV=={mmcv.__version__} is used but incompatible. ' \
	AssertionError: MMCV==1.6.0 is used but incompatible. Please install mmcv>=[1, 1, 2], <=[1, 2, 7].

解决:

复制代码
	将SETR/mmseg/__init__.py中
	第6行
	MMCV_MAX = '1.2.7'
	改为:
	MMCV_MAX = '1.7.0'

2.报错:

复制代码
	ImportError: cannot import name 'container_abcs' from 'torch._six' (/root/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/_six.py)
	ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 39872) of binary: /root/miniconda3/envs/open-mmlab/bin/python

解决:

复制代码
	将SETR/mmseg/models/backbones/vit.py中
	第6行
	from torch._six import container_abcs
	改为:
	import collections.abc as container_abcs

	将SETR/mmseg/models/backbones/vit_mla.py中
	第6行
	from torch._six import container_abcs
	改为:
	import collections.abc as container_abcs

3.报错:

复制代码
	File "/root/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/runner/hooks/logger/text.py", line 234, in log
		self._log_info(log_dict, runner)
	File "/root/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/runner/hooks/logger/text.py", line 153, in _log_info
		log_str += f'time: {log_dict["time"]:.3f}, ' \
	KeyError: 'data_time'
	ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 2283) of binary: /root/miniconda3/envs/open-mmlab/bin/python

解决:

复制代码
	打开报错文件vim /root/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/runner/hooks/logger/text.py
	定位到153-154
	log_str += f'time: {log_dict["time"]:.3f}, ' \
			   f'data_time: {log_dict["data_time"]:.3f}, '
	将 log_dict["data_time"] 改为:
		log_dict.get("data_time", 0.0)

继续训练

复制代码
	./tools/dist_train.sh configs/SETR/SETR_MLA_512x512_160k_ade20k_bs_8.py 1 --resume-from work_dirs/SETR_MLA_512x512_160k_ade20k_bs_8/iter_16000.pth
	
	./tools/dist_train.sh configs/SETR/SETR_MLA_512x512_160k_ade20k_bs_8.py 1 --resume-from work_dirs/SETR_MLA_512x512_160k_ade20k_bs_8/iter_80000.pth
	
	./tools/dist_train.sh configs/SETR/SETR_MLA_512x512_160k_ade20k_bs_8.py 1 --resume-from work_dirs/SETR_MLA_512x512_160k_ade20k_bs_8/latest.pth

数据集目录结构

相关推荐
丰色木夕2 小时前
Ubuntu22.04下源码编译安装USD-Brep
c++·ubuntu·nvidia·usd-brep
殷忆枫3 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
xatu8 小时前
ubuntu容器在redhat系统下使用大模型API问题
linux·运维·ubuntu
Lysander.Jovian10 小时前
CentOS 迁移 Ubuntu 24.04 使用教程
ubuntu
2401_8724187812 小时前
把 Ubuntu 服务器变成 AI Agent 终端:用自然语言或语音管理 Linux,任何命令都先审批(附完整 Python 源码)
linux·服务器·ubuntu·agent
coderSong256812 小时前
【Ubuntu】ctrl+shift+f 繁体中文切换、VScode全集搜索
linux·vscode·ubuntu
Uncertainty!!1 天前
Windows 10 与 Ubuntu 22.04 通过 Samba 共享文件夹
windows·ubuntu·共享文件夹
缘友一世1 天前
GLM5.3 CyberSec w4A16本地部署[2]:并行策略与 PP 切分
ubuntu·vllm·glm5.3 cybersec
QMCY_jason1 天前
ubuntu x86_64架构的编译 aarch64架构的程序
linux·运维·ubuntu