【问题标题】:Fit data into machine learning keras model when data is huge当数据量很大时,将数据拟合到机器学习 keras 模型中
【发布时间】:2019-01-24 10:48:44
【问题描述】:

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

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

当训练数据 X_train 和 Y_train 很小时,这似乎很容易。 X_train 和 Y_train 是 numpy ndarray。在实际情况下,训练数据可能会达到千兆字节,这可能太大而无法放入计算机的 RAM 中。

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

【问题讨论】:

  • 考虑使用 fit_generator,并在生成器中逐批从磁盘加载数据。

标签: python-3.x numpy machine-learning keras numpy-ndarray


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 2018-06-03
    • 2020-06-19
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2020-03-11
    • 2016-09-19
    • 2019-12-20
    相关资源
    最近更新 更多