如何在Keras中为无限数据集设置批量大小和历元值?

如何在Keras中为无限数据集设置批量大小和历元值?,keras,Keras,我想给Keras CNN提供图像。该程序随机提供从网络下载的图像或随机像素值的图像。如何设置批次大小和历元编号?我的训练数据本质上是无限的。即使数据集是无限的,也必须同时设置批量大小和纪元数 对于批量大小,您可以通过反复试验,使用适合您的GPU/CPU RAM的最大批量大小。例如,您可以尝试两种批量大小(如32、64、128、256)的威力 对于历元数,这是一个必须针对特定问题进行调整的参数。您可以使用验证集进行训练,直到验证损失最大化,或者训练损失几乎恒定(收敛)。确保使用数据集的不同部分来决

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

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

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


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

这是因为实现是矢量化的,以实现更快、更高效的执行。当数据较大时,所有的数据都无法容纳内存&因此我们使用批处理大小来获得一些矢量化。
在我看来,一个人应该使用尽可能大的批量大小。

也许我的问题应该是,为什么批量和历元大小需要大于1。根据我的需要,我可以通过编程抛硬币,或者从网络上加载图像,或者动态生成一个随机像素场。我不明白有必要收集,比如说,64幅图像到内存中,然后将它们输入。我仍然在一次一个地给他们提供信息。@user3825715它可以稳定训练,因为梯度非常嘈杂,每批只有一个示例。@MatiasValdenegro我认为OP的评论问题仍然有效,尽管是关于时代的。如果您有无限的数据,为什么要设置历元数呢?因为数据从不循环。如果有无限的数据,epochs=1不是很好吗?