Python Keras序列、拟合生成器和每个历元的步长

Python Keras序列、拟合生成器和每个历元的步长,python,keras,Python,Keras,我注意到,使用fit\u generator,通常为steps\u per\u epoch参数指定total\u samples//batch\u size,其中可以创建一个生成器/使用ImageDataGenerator,并将其作为参数传递给fit\u generator 但是,我正在使用Sequence类(keras.utils.Sequence())创建我的生成器,并将steps\u per\u epoch传递一个小于total\u samples//batch\u size的整数 我想知

我注意到,使用
fit\u generator
,通常为
steps\u per\u epoch
参数指定
total\u samples//batch\u size
,其中可以创建一个生成器/使用
ImageDataGenerator
,并将其作为参数传递给
fit\u generator

但是,我正在使用
Sequence
类(
keras.utils.Sequence()
)创建我的生成器,并将
steps\u per\u epoch
传递一个小于
total\u samples//batch\u size
的整数

我想知道的是,一旦每个历元完成,数据的生成是否会在生成器中从头开始


例如,我的训练集中有3200个样本,我使用的批量大小为32。因此,理想情况下,对于一个完整的历元,我应该将每个历元的步数设置为100。但是,如果我将我的
每历元步数设置为50,会发生什么?一旦第一个历元完成,是否会生成数据点编号1601(32*50)或从开始(数据点编号1)?

当使用
序列时,您不需要通过每个历元的
步骤,因为此信息可以从
序列的
len方法推断出来。


如果在使用序列
时通过每个历元
步数
,这将覆盖任何使用
\uuuuuuuuuuuuuu
方法的操作,并且它将有效地只使用序列中的每个历元
步数样本(从0到
每个历元的步数-1
),并在历元结束时重置为零。您可以在中检查此行为。

是否有解决方法?我希望数据无限生成,检查点的模型评估只运行每个
步骤每个\u epoch
@JashShah解决方案到什么?默认情况下,这就是它的工作方式,您只需确保序列生成无限量的数据,使生成器在每个
步骤后不会重置回零每个历元
@JashShah序列索引是一个抽象,您只需在每个历元中返回不同的图像,不需要任何变通办法。@JashShah我无法进一步详细说明,没有类似于上下文的源代码,您只需制作一个生成器或序列,在每个历元返回不同的图像,在一个生成器/序列中,您可以完全控制返回给Keras的内容。