循环使用model.fit in Keras是否合乎逻辑?

循环使用model.fit in Keras是否合乎逻辑?,keras,large-data,batching,Keras,Large Data,Batching,为了不耗尽内存,在Keras中执行以下操作是否合乎逻辑 ['xaa'、'xab'、'xac'、'xad'中的路径的: x_列,y_列=准备_数据(路径) model.fit(x_序列、y_序列、批量大小=50、历代数=20、随机数=True) model.save('model') 是的,但更喜欢模型。如果每次迭代都生成一个批次,则对批次进行培训。这消除了fit带来的一些开销 您还可以尝试创建生成器并使用模型。安装生成器(): def数据生成器(路径、批大小): 虽然为True:#keras的生

为了不耗尽内存,在Keras中执行以下操作是否合乎逻辑

['xaa'、'xab'、'xac'、'xad'中的路径的
:
x_列,y_列=准备_数据(路径)
model.fit(x_序列、y_序列、批量大小=50、历代数=20、随机数=True)
model.save('model')

是的,但更喜欢
模型。如果每次迭代都生成一个批次,则对批次进行培训。这消除了
fit
带来的一些开销

您还可以尝试创建生成器并使用
模型。安装生成器()

def数据生成器(路径、批大小): 虽然为True:#keras的生成器必须是无限的 对于路径中的路径: x_列,y_列=准备_数据(路径) totalSamps=x_列车形状[0] 批次=总样本//批次大小 如果totalSamps%批次大小>0: 批次+=1 对于范围内的批次(批次): 截面=切片(批次*批次大小,(批次+1)*批次大小) 产量(x_列[区段]、y_列[区段])
创建和使用:

gen = dataGenerator(['xaa', 'xab', 'xac', 'xad'], 50)
model.fit_generator(gen,
                    steps_per_epoch = expectedTotalNumberOfYieldsForOneEpoch
                    epochs = epochs)

我建议您在Github上看看这个

你确实可以考虑使用<代码>模型.FIT()/<代码>,但是这样做会使训练更加稳定:

用于范围(20)内的历元:
对于['xaa'、'xab'、'xac'、'xad'中的路径:
x_列,y_列=准备_数据(路径)
模型拟合(x序列、y序列、批量大小=50、历元数=历元数+1、初始历元数=历元数、随机数=True)
这样,每个历元对所有数据迭代一次,而不是在切换之前对部分数据迭代20个历元


正如线程中所讨论的,另一个解决方案是开发您自己的数据生成器,并将其与
model.fit_generator()

一起使用。非常感谢您,但您所说的“i”是什么意思?这不是“时代”吗?你说得对,谢谢你发现了我的错误。我更正了我的帖子。谢谢,但是“我”是什么?哈哈。。。与另一个答案中的错误完全相同:)--这是批处理。