计算训练中迭代的时期数?
Posted
技术标签:
【中文标题】计算训练中迭代的时期数?【英文标题】:Compute the number of epoch from iteration in training? 【发布时间】:2019-06-20 11:49:31 【问题描述】:我有一个 Caffe prototxt 如下:
stepsize: 20000
iter_size: 4
batch_size: 10
gamma =0.1
其中,数据集有 40.000 张图像。这意味着在 20000 次迭代后,学习率将降低 10 倍。在 pytorch 中,我想计算 epoch 的数量以在 caffe 中具有相同的行为(用于学习率)。我应该使用多少个 epoch 来将学习率降低 10 倍(请注意,我们有 iter_size=4 和 batch_size=10)。谢谢
参考:Epoch vs Iteration when training neural networks
我的回答:示例:如果您有 40000 个训练示例,并且批量大小为 10,那么完成 1 个 epoch 需要 40000/10 =4000 次迭代。因此,在 caffe 中降低学习率的 20000 个迭代将与 pytorch 中的 5 个 epoch 相同。
【问题讨论】:
【参考方案1】:您没有考虑到iter_size: 4
:当批处理太大而无法放入内存时,您可以将其“拆分”为多个迭代。
在您的示例中,实际批量大小为 batch_size
xiter_size
=10 * 4 = 40。因此,一个 epoch 只需要 1,000 次迭代,因此您需要在 20 个 epoch 后降低学习率。
【讨论】:
以上是关于计算训练中迭代的时期数?的主要内容,如果未能解决你的问题,请参考以下文章