传递给Keras fit generator函数的每个epoch步骤的值的含义是什么?

13

在调用fit_generator()函数时,当理论上应该是“总样本数/批量大小”时,为什么需要设置steps_per_epoch值呢?

2个回答

20

Keras的生成器是无限的。

因此,Keras本身不知道生成器应该产生多少批次才能完成一个epoch。当您有静态样本数量时,使用 samples//batch_size 是完全合理的,用于一个epoch。但是您可能想要使用执行随机数据增强的生成器。由于随机过程,你永远不会有两个相同的训练epoch,因此没有明确的限制。

因此,在fit_generator中这些参数允许您根据需要控制每个epoch产生的yield,尽管在标准情况下,您可能会保持最明显的选项:samples//batch_size


1
我相信应该是samples // batch_size - DJK
2
这个答案让我脑海中产生了更多的问题 :'|,第一次使用生成器。 - M090009

3
没有数据增强的情况下,样本数量是固定的,正如Daniel所提到的那样。因此,训练样本的数量为步数*批大小。
通过在Keras中使用ImageDataGenerator进行数据增强,我们可以为训练数据生成额外的数据。因此,您可以自己设置训练样本的数量。如果您想要两倍的训练数据,只需将步数设置为(原始样本大小*2)/批量大小。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接