【发布时间】:2017-01-08 20:01:58
【问题描述】:
我正在处理一个包含数百 GB 图像的 CNN。我创建了一个训练函数,它会咬掉这些图像的 4Gb 块,并在每个块上调用 fit。我担心我只在最后一块训练,而不是整个数据集。
实际上,我的伪代码如下所示:
DS = lazy_load_400GB_Dataset()
for section in DS:
X_train = section.images
Y_train = section.classes
model.fit(X_train, Y_train, batch_size=16, nb_epoch=30)
我知道 API 和 Keras 论坛说这将在整个数据集上进行训练,但我无法直观地理解为什么网络不会仅在最后一个训练块上重新学习。
非常感谢您对理解这一点的帮助。
最好, 乔
【问题讨论】:
-
创建一个自定义生成器类并将其与 fit_generator 一起使用将避免多次调用 fit 的整个问题。
标签: machine-learning neural-network theano conv-neural-network keras