原
训练时的Iteration、batchsize、epoch和loss的关系
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
batchsize:批处理大小。一次训练所选取的样本数。 它的大小影响模型的优化程度和速度。
Iteration:迭代次数。一次Iteration就是batchsize个训练数据前向传播和反向传播后更新参数的过程。
epoch:所有训练数据前向传播和反向传播后更新参数的过程。也就是我们认为的所有数据集跑了一遍。
如果训练集大小是100000。batchsize为100,那么一个epoch需要1000次Iteration。
即:1 epoch = 训练集大小(100000) / batchsize(100) = 1000次Iteration
- 1
loss:在训练过程中,训练日志中会输出loss值。这个loss值是每一个Iteration得到的loss值,也就是一个batchsize个训练数据前向传播和反向传播后更新参数的过程之后得到的loss值。
其实每次迭代都会得到一个loss值,只是我们在solver.prototxt中设置了display超参数,隔多少次显示一次。
更简单直接的理解就是, Iteration 0, loss = 0.693502,代表的是没有迭代时的loss, Iteration 1, loss =~~代表的是第一次迭代时的loss,也就是第一个batchsize个训练数据的loss,同理,第50次代表50个batchsize个训练数据的loss。
作者:GL3_24
来源:CSDN
著作权归作者所有。转载请联系作者获得授权。
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
</div>
</article>