batch、batch size、subdivisions、epoch、iteration之间的关系
参考https://www.jianshu.com/p/e5076a56946c https://blog.csdn.net/qq_18668137/article/details/80883350?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
https://blog.csdn.net/xiaohuihui1994/article/details/80624593?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
batch size
深度学习中需要将训练集数据分批次送入模型进行训练,那么batchsize就是自己设置的每次送入模型训练的数据量,一般取16、32等,一个batchsize训练后得到一个梯度,相同情况下batch越大,训练越快,精度可能越低。
subdivisions
由于设备原因,这一个batch的量电脑无法处理,那么就需要设置subdivisions,将这组batch再次细分为minibatch,minibatch=batchsize/subdivisions,但是一个batchsize还是一个梯度。
batch、iteration
1个iteration等于使用batchsize个样本训练一次,权重参数更新一次,batch=iteration。
epoch
一个epoch是指将所有的数据送入网络中完成一次前向计算及反向传播的过程。
假设有一组数据集,训练集数量为10000,训练次数为30000,设置batchsize=20,subdivisions=10
那么
minibatch=20/10=2
iteration=batch=10000/20=500
epoch=30000/500=60
特此记录防止遗忘,若有不对还请指出。