当数据巨大时,将数据放入机器学习 keras 模型中



在使用 keras 的机器学习教程中,训练机器学习模型的代码是典型的单行代码。

model.fit(X_train, 
Y_train, 
nb_epoch=5, 
batch_size = 128, 
verbose=1, 
validation_split=0.1)

当训练数据X_trainY_train很小时,这似乎很容易。X_trainY_train是数字数组。在实际情况下,训练数据可以达到千兆字节,这可能太大,甚至无法装入计算机的RAM。

当训练数据太大时,如何将数据发送到model.fit()

在 Keras 中有一个简单的解决方案。您可以简单地使用 python 生成器,其中您的数据是延迟加载的。如果您有图像,您还可以使用图像数据生成器。

def generate_data(x, y, batch_size):    
while True:
batch = []
for b in range(batch_size):
batch.append(myDataSlice)
yield np.array(batch )
model.fit_generator(
generator=generate_data(x, y, batch_size),
steps_per_epoch=num_batches, 
validation_data=list_batch_generator(x_val, y_val, batch_size), 
validation_steps=num_batches_test)

最新更新