【问题标题】:How to set batch size and epoch value in Keras for infinite data set?如何在 Keras 中为无限数据集设置批量大小和 epoch 值?
【发布时间】:2018-03-12 04:58:58
【问题描述】:

我想将图像提供给 Keras CNN。该程序随机提供从网络下载的图像或随机像素值的图像。如何设置批量大小和纪元数?我的训练数据基本上是无限的。

【问题讨论】:

    标签: keras


    【解决方案1】:

    这是因为实现是矢量化的,以便更快、更高效地执行。当数据很大时,所有数据都无法适应内存,因此我们使用批量大小来获得一些向量化。 在我看来,应该使用机器可以处理的最大批量。

    【讨论】:

      【解决方案2】:

      即使您的数据集是无限的,您也必须同时设置批量大小和时期数。

      对于批量大小,您可以通过反复试验使用适合您的 GPU/CPU RAM 的最大批量大小。例如,您可以尝试两种批量大小的幂,例如 32、64、128、256。

      对于 epoch 数,这是一个始终必须针对特定问题进行调整的参数。您可以使用验证集进行训练,直到验证损失最大化,或者训练损失几乎恒定(收敛)。确保使用数据集的不同部分来决定何时停止训练。然后,您可以报告另一个不同集(测试集)的最终指标。

      【讨论】:

      • 也许我的问题应该是,为什么批次和纪元大小需要大于 1。为了我的需要,我可以以编程方式翻转硬币并从网络加载图像或生成一个字段动态随机像素。我不明白需要将 64 张图像收集到内存中然后将它们输入内存。我仍然一次给它们喂食。
      • @user3825715 它可以稳定训练,因为梯度非常嘈杂,每批只有一个示例。
      • @MatiasValdenegro 我认为 OP 的评论问题仍然有效,尽管关于时代。如果您有无限的数据,为什么设置时期数会做任何事情,因为数据从不循环。如果您有无限数据,epochs=1 不是很好吗?
      猜你喜欢
      • 2016-05-05
      • 2018-04-24
      • 1970-01-01
      • 2020-05-10
      • 2018-04-22
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      相关资源
      最近更新 更多