epochs对训练结果的影响

1. batch_size,iteration,epochs对应关系

1.1 darkent中batch和最大迭代次数设置方法

#yolov3.cfg
# Training
batch=128
subdivisions=16

max_batches = 500200

batch = 128 表示没batch个样本更新一次参数 如果显存不够大,可以将batch进行划分成subdivisions份;网络会进行subdivisions前馈过程后,再进行一次后馈过程参数更新

因此,每次iteration能够处理的图片个数为:batch/subdivisions
如果你的图片总数为n,则完全epoch一次所有样本,需要的iteration = n*subdivisions/batch

一般情况下,epoch需要设置为200次以上,网络才会收敛

因此max_batches = epochnsubdivisions/batch

1.2 caffe 中batch设置方法

layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {

    mirror: true
    mean_value:118
    mean_value:95
    mean_value:86
    #scale: 0.00390625
    #mean_file: "data/train_lmdb.binaryproto" 
  }
  data_param {
    source: "data/train_lmdb" 
    batch_size: 32
    backend: LMDB
  }
}


max_iter: 100000 #最大迭代次数,参数意义同darknet的max_batches

1.3 centernet batch设置方法

python main.py ctdet --exp_id coco_dla --batch_size 32 --master_batch 15 --lr 1.25e-4  --num_epochs 200 --gpus 0,1

batch_size 一次参数更新,处理的图片个数
num_epochs 对完整训练数据迭代的次数

master_batch batch_size中,分配给主GPU的的图片个数

2. epochs对训练结果的影响

以实际场景的火灾检测为例,来看下不同epochs次数下,网络的测试验证结果

  • 验证环境是
    pytorch 环境下的centernet算法,数据格式为COCO,训练数据量为大概为两完整
    算法训练结束后,会打印以下COCO检测指标训练结果

  • COCO检测指标


INFO HboxContainer: Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.791
INFO HboxContainer: Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.564
INFO HboxContainer: Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.768
INFO HboxContainer: Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.812

HboxContainer: DONE (t=17.93s).

HboxContainer: Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.766
HboxContainer: Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.954
HboxContainer: Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.607
HboxContainer: Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.379
HboxContainer: Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.726
HboxContainer: Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.422
HboxContainer: Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.664
HboxContainer: Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.829
  • 指标意义
  1. IoU=0.50表示IoU大于0.5被认为是检测到
  2. IoU=0.50:0.95,是一个范围值,表示IoU在0.5到0.95的范围内被认为是检测到
  3. small表示标注的框面积小于32 * 32
  4. medium表示标注的框面积大于small同时小于96 * 96
  5. large表示标注的框面积大于等于96 * 96
  6. all表示表示所以检测到的框,不论面积大小,都显示
  7. maxDets=100表示最大检测目标数为100

基于以上测试指标的理解,我们统计了不同epochs下的,训练结果对比

epochs

如上结果所示,针对我们的测试数据,epochs在400次迭代的时候,训练结果达到基本稳定

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值