使用自定义生成器时 batch_size 参数如何在 Keras .fit() 上工作

How batch_size parameter works on Keras .fit() when using custom generators

鉴于我的数据集太大而无法一次全部加载到内存中,我选择使用批量大小为 32 的自定义生成器,这意味着我的数据将以 32 的批量大小加载。现在如果我明白了当我将此生成器作为参数提供给 Keras 的 .fit() 时,这意味着在一个时期内,模型将以 32 批次的形式看到所有训练数据。所以我的问题是,如果我指定一个 batch_size 到 .fit() 方法,这样我就可以控制何时更新权重,这将如何工作,或者我不应该指定它并且权重将为每批生成器更新?

对于你的情况,我会保持原样。正如 docs 所解释的那样,当您在 model.fit(...) 中定义批量大小时,您定义的是:

[...] Number of samples per gradient update. [...]

但是,如果您继续阅读,它还会说:

Do not specify the batch_size if your data is in the form of datasets, generators, or keras.utils.Sequence instances (since they generate batches).

因此,将生成器的批量大小传递给 model.fit

时应考虑