首页
/ HRNet语义分割模型在Pascal Context数据集上的训练配置解析

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采用多分辨率并行连接的结构,配置文件详细定义了四个阶段的网络架构:

  1. Stage1:单分支结构,使用Bottleneck块,输出通道64
  2. Stage2:双分支结构,通道数分别为48和96
  3. Stage3:三分支结构,通道数分别为48、96和192
  4. 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数据集进行了优化。关键特点包括:

  1. 使用多分辨率并行的HRNet架构,保持高分辨率特征
  2. 采用适中的520×520输入分辨率平衡精度和效率
  3. 使用SGD优化器配合适当的学习率和权重衰减
  4. 包含多种数据增强策略提升模型泛化能力
  5. 200个epoch的训练周期确保充分收敛

这种配置在语义分割任务中表现出色,特别是在需要精细分割边界的场景中,HRNet的多分辨率特性能够很好地保持空间细节信息。