config.md 8.3 KB
Newer Older
W
wuzewu 已提交
1 2
# PaddleSeg 分割库配置说明

3 4 5 6 7 8
PaddleSeg提供了统一的配置用于 训练/评估/可视化/导出模型。一共存在三套配置方案:
* 命令行窗口传递的参数。
* configs目录下的yaml文件。
* 默认参数,位于pdseg/utils/config.py。

三者的优先级顺序为 命令行窗口 > yaml > 默认配置。
W
wuzewu 已提交
9 10 11

配置包含以下Group:

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245
|OPTIONS|用途|支持脚本|
|-|-|-|
|[BASIC](./configs/basic_group.md)|通用配置|ALL|
|[DATASET](./configs/dataset_group.md)|数据集相关|train/eval/vis|
|[MODEL](./configs/model_group.md)|模型相关|ALL|
|[TRAIN](./configs/train_group.md)|训练相关|train|
|[SOLVER](./configs/solver_group.md)|训练优化相关|train|
|[TEST](./configs/test_group.md)|测试模型相关|eval/vis/export_model|
|[AUG](./data_aug.md)|数据增强|ALL|
[FREEZE](./configs/freeze_group.md)|模型导出相关|export_model|
|[DATALOADER](./configs/dataloader_group.md)|数据加载相关|ALL|

在进行自定义的分割任务之前,您需要准备一份yaml文件,建议参照[configs目录下的示例yaml](../configs)进行修改。

以下是PaddleSeg的默认配置,供查询使用。

```yaml
########################## 基本配置 ###########################################
# 批处理大小
BATCH_SIZE: 1
# 验证时图像裁剪尺寸(宽,高)
EVAL_CROP_SIZE: tuple()
# 训练时图像裁剪尺寸(宽,高)
TRAIN_CROP_SIZE: tuple()

########################## 数据集配置 #########################################
DATASET:
    # 数据主目录目录
    DATA_DIR: './dataset/cityscapes/'
    # 训练集列表
    TRAIN_FILE_LIST: './dataset/cityscapes/train.list'
    # 验证集列表
    VAL_FILE_LIST: './dataset/cityscapes/val.list'
    # 测试数据列表
    TEST_FILE_LIST: './dataset/cityscapes/test.list'
    # Tensorboard 可视化的数据集
    VIS_FILE_LIST: None
    # 类别数(需包括背景类)
    NUM_CLASSES: 19
    # 输入图像类型, 支持三通道'rgb',四通道'rgba',单通道灰度图'gray'
    IMAGE_TYPE: 'rgb'
    # 输入图片的通道数
    DATA_DIM: 3
    # 数据列表分割符, 默认为空格
    SEPARATOR: ' '
    # 忽略的像素标签值, 默认为255,一般无需改动
    IGNORE_INDEX: 255

########################## 模型通用配置 #######################################
MODEL:
    # 模型名称, 已支持deeplabv3p, unet, icnet,pspnet,hrnet
    MODEL_NAME: ''
    # BatchNorm类型: bn、gn(group_norm)
    DEFAULT_NORM_TYPE: 'bn'
    # 多路损失加权值
    MULTI_LOSS_WEIGHT: [1.0]
    # DEFAULT_NORM_TYPE为gn时group数
    DEFAULT_GROUP_NUMBER: 32
    # 极小值, 防止分母除0溢出,一般无需改动
    DEFAULT_EPSILON: 1e-5
    # BatchNorm动量, 一般无需改动
    BN_MOMENTUM: 0.99
    # 是否使用FP16训练
    FP16: False

    ########################## DeepLab模型配置 ####################################
    DEEPLAB:
        # DeepLab backbone 配置, 可选项xception_65, mobilenetv2
        BACKBONE: "xception_65"
        # DeepLab output stride
        OUTPUT_STRIDE: 16
        # MobileNet v2 backbone scale 设置
        DEPTH_MULTIPLIER: 1.0
        # MobileNet v2 backbone scale 设置
        ENCODER_WITH_ASPP: True
        # MobileNet v2 backbone scale 设置
        ENABLE_DECODER: True
        # ASPP是否使用可分离卷积
        ASPP_WITH_SEP_CONV: True
        # 解码器是否使用可分离卷积
        DECODER_USE_SEP_CONV: True

    ########################## UNET模型配置 #######################################
    UNET:
        # 上采样方式, 默认为双线性插值
        UPSAMPLE_MODE: 'bilinear'

    ########################## ICNET模型配置 ######################################
    ICNET:
        # RESNET backbone scale 设置
        DEPTH_MULTIPLIER: 0.5
        # RESNET 层数 设置
        LAYERS: 50

    ########################## PSPNET模型配置 ######################################
    PSPNET:
        # RESNET backbone scale 设置
        DEPTH_MULTIPLIER: 1
        # RESNET backbone 层数 设置
        LAYERS: 50

    ########################## HRNET模型配置 ######################################
    HRNET:
        # HRNET STAGE2 设置
        STAGE2:
            NUM_MODULES: 1
            NUM_CHANNELS: [40, 80]
        # HRNET STAGE3 设置
        STAGE3:
            NUM_MODULES: 4
            NUM_CHANNELS: [40, 80, 160]
        # HRNET STAGE4 设置
        STAGE4:
            NUM_MODULES: 3
            NUM_CHANNELS: [40, 80, 160, 320]

########################### 训练配置 ##########################################
TRAIN:
    # 模型保存路径
    MODEL_SAVE_DIR: ''
    # 预训练模型路径
    PRETRAINED_MODEL_DIR: ''
    # 是否resume,继续训练
    RESUME_MODEL_DIR: ''
    # 是否使用多卡间同步BatchNorm均值和方差
    SYNC_BATCH_NORM: False
    # 模型参数保存的epoch间隔数,可用来继续训练中断的模型
    SNAPSHOT_EPOCH: 10

########################### 模型优化相关配置 ##################################
SOLVER:
    # 初始学习率
    LR: 0.1
    # 学习率下降方法, 支持poly piecewise cosine 三种
    LR_POLICY: "poly"
    # 优化算法, 支持SGD和Adam两种算法
    OPTIMIZER: "sgd"
    # 动量参数
    MOMENTUM: 0.9
    # 二阶矩估计的指数衰减率
    MOMENTUM2: 0.999
    # 学习率Poly下降指数
    POWER: 0.9
    # step下降指数
    GAMMA: 0.1
    # step下降间隔
    DECAY_EPOCH: [10, 20]
    # 学习率权重衰减,0-1
    WEIGHT_DECAY: 0.00004
    # 训练开始epoch数,默认为1
    BEGIN_EPOCH: 1
    # 训练epoch数,正整数
    NUM_EPOCHS: 30
    # loss的选择,支持softmax_loss, bce_loss, dice_loss
    LOSS: ["softmax_loss"]
    # 是否开启warmup学习策略 
    LR_WARMUP: False 
    # warmup的迭代次数
    LR_WARMUP_STEPS: 2000 

########################## 测试配置 ###########################################
TEST:
    # 测试模型路径
    TEST_MODEL: ''

########################### 数据增强配置 ######################################
AUG:
    # 图像resize的方式有三种:
    # unpadding(固定尺寸),stepscaling(按比例resize),rangescaling(长边对齐)
    AUG_METHOD: 'unpadding'
    
    # 图像resize的固定尺寸(宽,高),非负
    FIX_RESIZE_SIZE: (500, 500)
    
    # 图像resize方式为stepscaling,resize最小尺度,非负
    MIN_SCALE_FACTOR: 0.5
    # 图像resize方式为stepscaling,resize最大尺度,不小于MIN_SCALE_FACTOR
    MAX_SCALE_FACTOR: 2.0
    # 图像resize方式为stepscaling,resize尺度范围间隔,非负
    SCALE_STEP_SIZE: 0.25
    
    # 图像resize方式为rangescaling,训练时长边resize的范围最小值,非负
    MIN_RESIZE_VALUE: 400
    # 图像resize方式为rangescaling,训练时长边resize的范围最大值,
    # 不小于MIN_RESIZE_VALUE
    MAX_RESIZE_VALUE: 600
    # 图像resize方式为rangescaling, 测试验证可视化模式下长边resize的长度,
    # 在MIN_RESIZE_VALUE到MAX_RESIZE_VALUE范围内
    INF_RESIZE_VALUE: 500
    
    # 图像镜像左右翻转
    MIRROR: True
    # 图像上下翻转开关,True/False
    FLIP: False
    # 图像启动上下翻转的概率,0-1
    FLIP_RATIO: 0.5

    RICH_CROP:
        # RichCrop数据增广开关,用于提升模型鲁棒性
        ENABLE: False
        # 图像旋转最大角度,0-90
        MAX_ROTATION: 15
        # 裁取图像与原始图像面积比,0-1
        MIN_AREA_RATIO: 0.5
        # 裁取图像宽高比范围,非负
        ASPECT_RATIO: 0.33
        # 亮度调节范围,0-1
        BRIGHTNESS_JITTER_RATIO: 0.5
        # 饱和度调节范围,0-1
        SATURATION_JITTER_RATIO: 0.5
        # 对比度调节范围,0-1
        CONTRAST_JITTER_RATIO: 0.5
        # 图像模糊开关,True/False
        BLUR: False
        # 图像启动模糊百分比,0-1
        BLUR_RATIO: 0.1

########################## 预测部署模型配置 ###################################
FREEZE:
    # 预测保存的模型名称
    MODEL_FILENAME: '__model__'
    # 预测保存的参数名称
    PARAMS_FILENAME: '__params__'
    # 预测模型参数保存的路径
    SAVE_DIR: 'freeze_model'

########################## 数据载入配置 #######################################
DATALOADER:
    # 数据载入时的并发数, 建议值8
    NUM_WORKERS: 8
    # 数据载入时缓存队列大小, 建议值256
    BUF_SIZE: 256
```