传递给keras拟合发生器函数的每个历元的步数值

时间:2017-12-21 15:46:54

标签: keras classification generator

在理想情况下调用函数fit_generator()时,有什么需要设置steps_per_epochnumber of total samples/ batch size

2 个答案:

答案 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。