machine-learning - 计算训练中迭代的时期数?
问题描述
我有一个 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 相同。
解决方案
您没有考虑到iter_size: 4
:当批次太大而无法放入内存时,您可以将其“拆分”为多个迭代。
在您的示例中,实际批量大小为batch_size
x iter_size
=10 * 4 = 40。因此,一个时期仅需要 1,000 次迭代,因此您需要在 20 个时期后降低学习率。
推荐阅读
- automated-tests - 带有嵌入式测试的 GitLab CI/runner
- jsp - 使用 JSP 程序连接到 oracle 数据库时出现异常
- android - 创建一个队列以从 Android 向 PHP 服务器发送数据
- java - 单独的 jhipster 单体应用程序前端和后端,即单独的应用程序和 Web 服务器
- spring-boot - NoscuchMethodError 我们试图在 SpringBootIntegrationTest 中使用 @SpyBean 或 @MockBean
- c++ - SFINAE 自动检查函数体是否在没有显式约束的情况下编译
- c# - 在 wpf C# 中在运行时更改标签文本
- makefile - Make:前置请求是如何自动创建的?
- ios - 在锁定屏幕上检测播放结束 - AVPlayer
- javascript - 如何在javascript中嵌入php图像路径