首页 > 解决方案 > 计算训练中迭代的时期数?

问题描述

我有一个 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

我的回答: 示例:如果您有40000个训练示例,并且批量大小为 10,那么完成 1 个 epoch将需要40000/10 =4000次迭代。因此,在 caffe 中降低学习率的20000次迭代将与pytorch中的5 个epoch 相同。

标签: machine-learningneural-networkdeep-learningcaffepytorch

解决方案


您没有考虑到iter_size: 4:当批次太大而无法放入内存时,您可以将其“拆分”为多个迭代。
在您的示例中,实际批量大小为batch_sizex iter_size=10 * 4 = 40。因此,一个时期仅需要 1,000 次迭代,因此您需要在 20 个时期后降低学习率。


推荐阅读