【发布时间】:2019-06-04 15:56:13
【问题描述】:
我对 Keras 如何拟合模型有点困惑。通常,只需使用 model.fit(...) 即可拟合 Keras 模型,如下所示:
model.fit(X_train, y_train, epochs=300, batch_size=64, validation_data=(X_test, y_test))
我的问题是:因为我通过参数validation_data=(X_test, y_test) 陈述了测试数据,是否意味着每个时期都是独立的?换句话说,我知道在每个 epoch,Keras 使用训练数据训练模型(在被洗牌之后),然后使用提供的 validation_data 测试训练的模型。如果是这样的话,那么无论我选择多少个epoch,我都只取最后一个epoch的结果!!
如果这种情况是正确的,那么我们是否需要多个 epoch?除非这些 epoch 是相互依赖的,否则每个 epoch 使用与前一个 epoch 相同的 NN 权重,对吗?
谢谢
【问题讨论】:
-
"(洗牌后)" -> 请注意通过设置
shuffle=False禁用洗牌的可能性。 根据文档:“shuffle: Boolean(是否在每个 epoch 之前对训练数据进行洗牌)或 str(用于 'batch')。'batch' 是处理 HDF5 数据限制的特殊选项;它在批量大小的块。当 steps_per_epoch 不是 None 时无效。".
标签: keras neural-network data-science