Keras fit_generator 和 steps_per_epoch

4

我注意到在使用fit_generator时,通常将steps_per_epoch参数赋值为total_samples//batch_size

但是如果我的total_samples是1000,batch_size=32,那么看起来我应该有31.25批次,但我每个epoch只分配了31批次。

这是否意味着我将无法训练不完整的批次?

我假设shuffle选项会解决这个问题,但如果我使用自定义生成器,shuffle选项仍然有效吗?

1个回答

3

是的,在这里你只需要完成31个步骤。你需要做的就是:

numpy.ceil(total_samples//batch_size)

由于该模型可以接受任意数量的输入,因此即使最后一批少于32个,它也可以正常工作。


啊,我以为我的模型崩溃是因为它无法接受少于批量大小的样本批次。我需要重新测试。谢谢。 - Moondra
不,我猜那不是问题。如果你遇到任何错误,请告诉我。 - Bhushan Pant
谢谢。看起来可以工作了。我认为是我的自定义生成器有问题导致了那个错误。 - Moondra
1
total_samples//batch_size 是整数除法。你只需要一个斜杠。 - DollarAkshay
当我们进行洗牌时,如何确保整个训练集被看到和使用? - Basilique

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