这个问题是这个问题的进一步步骤。
我的数据输入是数十个.csv 文件,我已经读取了 csv 输入数据,直到以下格式:
# train_x is data, train_y is label
print(train_x.shape) # (2000000,10,100) 3D array
print(train_y.shape) # (2000000,) labels
我已经可以使用以下方法拟合和评估它们:
model.fit(train_x, train_y, batch_size=32, epochs=10)
model.evaluate(train_x, train_y)
如果数据集小于 RAM 大小,则效果很好。但是如果数据集太大,那么“大数据集不适合内存”。大多数在线建议是使用fit_generator( )而不是fit( ) (也从 keras 网站建议)。
fit_generator(generator, steps_per_epoch=None, epochs=1, verbose=1, callbacks=None, validation_data=None, validation_steps=None, validation_freq=1, class_weight=None, max_queue_size=10, workers=1, use_multiprocessing=False, shuffle=True, initial_epoch=0)
如何编写生成器函数(fit_generator 的第一个参数)?
- 我只知道生成器功能旨在逐批提供数据。
顾名思义,.fit_generator 函数假定有一个底层函数为其生成数据。
- 这个生成器函数应该包括什么?应该退回什么?有没有相关的例子?
Mark:我已经阅读了几个在线示例(例如this和this)。他们以图像为例,这不是我的情况(仅限 csv 数据),而且不容易理解。