Keras:有没有一种简单的方法可以在不同时期之间将数据输入/输出训练集?

Ast*_*Ben 7 python keras tensorflow

在不争论是否实际执行此操作的利弊的情况下,我很好奇是否有人已经创建或知道在使用 keras 拟合模型期间在不同时期之间改变训练数据的简单方法。

示例:我有 100 个向量和用于训练模型的输出特征。我随机选择其中的 80 个作为训练集,将另外 20 个留作验证,然后运行:

model.fit(train_vectors,train_features,validation_data=(test_vectors,test_features)) 
Run Code Online (Sandbox Code Playgroud)

Keras 拟合允许我们打乱训练数据的顺序,shuffle=True但这只是随机改变训练数据的顺序。从训练集中随机选择 40 个向量,运行一个 epoch,然后随机选择另外 40 个向量,运行另一个 epoch 等可能会很有趣。

sdc*_*cbr 8

https://keras.io/models/model/#fit

model.fit()有一个论点steps_per_epoch。如果您设置shuffle=True并选择steps_per_epoch足够小,您将获得您所描述的行为。

在包含 80 个训练示例的示例中:例如,您可以设置batch_size为 20 和steps_per_epoch4,或设置batch_size为 10 和steps_per_epoch8 等。