HRNet语义分割模型在Pascal Context数据集上的训练配置解析
2025-07-10 01:56:11作者:晏闻田Solitary
概述
本文将详细解析HRNet语义分割项目中针对Pascal Context数据集的训练配置文件seg_hrnet_w48_cls59_520x520_sgd_lr1e-3_wd1e-4_bs_16_epoch200_paddle.yaml
。该配置文件定义了使用HRNet-W48网络在Pascal Context数据集上进行语义分割训练的各项参数设置。
硬件与基础配置
CUDNN:
BENCHMARK: true
DETERMINISTIC: false
ENABLED: true
GPUS: (0,1,2,3)
OUTPUT_DIR: 'output'
LOG_DIR: 'log'
WORKERS: 4
PRINT_FREQ: 10
- CUDNN配置:启用了cuDNN加速,并设置了基准测试模式,但不使用确定性算法以保证最佳性能
- GPU设置:使用4块GPU进行训练(0-3号GPU)
- 工作目录:训练输出保存在
output
目录,日志保存在log
目录 - 数据加载:使用4个工作进程(workers)加载数据
- 日志频率:每10个批次打印一次训练信息
数据集配置
DATASET:
DATASET: pascal_ctx
ROOT: '../../../../dataset/pascal_context/'
TEST_SET: 'val.lst'
TRAIN_SET: 'train.lst'
NUM_CLASSES: 59
- 数据集:使用Pascal Context数据集,包含59个语义类别
- 路径设置:数据集根目录和训练/验证集列表文件路径
- 类别数:59类语义分割任务
模型架构
MODEL:
NAME: seg_hrnet
ALIGN_CORNERS: False
NUM_OUTPUTS: 1
PRETRAINED: '../../../../dataset/pretrained_models/HRNet_W48_C_ssld_pretrained.pth'
EXTRA:
# 详细的网络结构配置
- 模型类型:使用HRNet语义分割版本(seg_hrnet)
- 预训练权重:加载在ImageNet上预训练的HRNet-W48权重
- 对齐角点:设置为False以避免特征图大小调整时的坐标对齐问题
网络结构细节
HRNet采用多分辨率并行连接的结构,配置文件详细定义了四个阶段的网络架构:
- Stage1:单分支结构,使用Bottleneck块,输出通道64
- Stage2:双分支结构,通道数分别为48和96
- Stage3:三分支结构,通道数分别为48、96和192
- Stage4:四分支结构,通道数分别为48、96、192和384
每个阶段都使用SUM方法进行特征融合,这种设计保持了高分辨率表示,同时融合了多尺度特征,非常适合语义分割任务。
损失函数
LOSS:
USE_OHEM: false
OHEMTHRES: 0.9
OHEMKEEP: 131072
- OHEM:未使用在线难例挖掘(OHEM)
- 若启用OHEM,将保留损失值大于0.9的前131072个样本
训练策略
TRAIN:
IMAGE_SIZE: [520, 520]
BASE_SIZE: 520
BATCH_SIZE_PER_GPU: 4
NONBACKBONE_KEYWORDS: ['last_layer']
NONBACKBONE_MULT: 10
SHUFFLE: true
BEGIN_EPOCH: 0
END_EPOCH: 200
RESUME: true
OPTIMIZER: sgd
LR: 0.001
WD: 0.0001
MOMENTUM: 0.9
NESTEROV: false
FLIP: true
MULTI_SCALE: true
DOWNSAMPLERATE: 1
IGNORE_LABEL: -1
SCALE_FACTOR: 16
- 输入尺寸:520×520分辨率
- 批量大小:每GPU 4个样本,4GPU总batch size为16
- 优化器:使用SGD优化器,学习率0.001,权重衰减0.0001,动量0.9
- 训练周期:共200个epoch
- 数据增强:
- 随机水平翻转(FLIP: true)
- 多尺度训练(MULTI_SCALE: true)
- 学习策略:
- 对非骨干网络部分(如最后的分类层)使用10倍学习率
- 可恢复训练(RESUME: true)
- 其他:
- 忽略标签值为-1的像素
- 下采样率为1(保持原分辨率)
- 缩放因子16用于某些特定操作
测试配置
TEST:
IMAGE_SIZE: [520, 520]
BASE_SIZE: 520
BATCH_SIZE_PER_GPU: 16
FLIP_TEST: false
MULTI_SCALE: false
- 测试尺寸:固定520×520分辨率
- 批量大小:每GPU 16个样本
- 测试增强:不进行多尺度和翻转测试
总结
这份配置文件定义了一个完整的HRNet-W48语义分割训练方案,针对Pascal Context数据集进行了优化。关键特点包括:
- 使用多分辨率并行的HRNet架构,保持高分辨率特征
- 采用适中的520×520输入分辨率平衡精度和效率
- 使用SGD优化器配合适当的学习率和权重衰减
- 包含多种数据增强策略提升模型泛化能力
- 200个epoch的训练周期确保充分收敛
这种配置在语义分割任务中表现出色,特别是在需要精细分割边界的场景中,HRNet的多分辨率特性能够很好地保持空间细节信息。