重点参数说明
1 学习率设置
在 PaddleSeg
的配置文件给出的学习率中,除了 "bisenet_optic_disc_512x512_1k.yml"
中为单卡学习率外,其余配置文件中均为 4 卡的学习率,如果采用的是单卡训练,则学习率设置应变成原来的 1/4。
2 yaml 文件参数设置
batch_size: 4 # 设定 batch_size 的值即为迭代一次送入网络的图片数量,一般显卡显存越大,batch_size的值可以越大
iters: 1000 # 模型迭代的次数
train_dataset: # 训练数据设置
type: OpticDiscSeg # 选择数据集格式
dataset_root: data/optic_disc_seg # 选择数据集路径
num_classes: 2 # 指定目标的类别个数(背景也算为一类)
transforms: # 数据预处理/增强的方式
- type: Resize # 送入网络之前需要进行resize
target_size: [512, 512] # 将原图 resize 成 512*512 再送入网络
- type: RandomHorizontalFlip # 采用水平反转的方式进行数据增强
- type: Normalize # 图像进行归一化
mode: train
val_dataset: # 验证数据设置
type: OpticDiscSeg
dataset_root: data/optic_disc_seg
num_classes: 2
transforms:
- type: Resize
target_size: [512, 512]
- type: Normalize
mode: val
optimizer: # 设定优化器的类型
type: sgd # 采用 SGD(Stochastic Gradient Descent)随机梯度下降方法为优化器
momentum: 0.9 # 动量
weight_decay: 4.0e-5 # 权值衰减,使用的目的是防止过拟合
learning_rate: # 设定学习率
value: 0.01 # 初始学习率
decay:
type: poly # 采用 poly 作为学习率衰减方式。
power: 0.9 # 衰减率
end_lr: 0 # 最终学习率
loss: # 设定损失函数的类型
types:
- type: CrossEntropyLoss
coef: [1, 1, 1, 1, 1]
# BiseNetV2 有 4 个辅助 loss,加上主 loss 共五个,1表示权重
# all_loss = coef_1 * loss_1 + .... + coef_n * loss_n
model: # 模型说明
type: BiSeNetV2 # 设定模型类别
pretrained: Null # 设定模型的预训练模型