在理想情况下调用函数fit_generator()时,有什么需要设置steps_per_epoch
值number of total samples/ batch size
?
答案 0 :(得分:13)
Keras的发电机是无限的。
正因为如此,Keras自己无法知道发电机完成一个时期应该产生多少批次。
当您有静态样本数时,将samples//batch_size
用于一个时期是完全合理的。但是,您可能希望使用执行随机数据扩充的生成器。而且由于随机过程,你永远不会有两个相同的训练时期。没有明确的限制。
因此,fit_generator
中的这些参数允许您根据需要控制每个时期的产量,但在标准情况下,您可能会选择最明显的选项:samples//batch_size
。
答案 1 :(得分:0)
如Daniel所述,在不进行数据扩充的情况下,样本数量是静态的。 然后,用于训练的样本数为steps_per_epoch *批次大小。
通过在Keras中使用 ImageDataGenerator ,我们可以为数据扩充制作其他训练数据。因此,可以自己设置训练样本的数量。 如果要两次训练数据,只需将steps_per_epoch设置为(原始样本大小* 2)/ batch_size。