我正在跑步:
D.fit(X_train, y_train, nb_epoch=12,validation_data=(X_train,y_train))
但我得到的输出如下:
Train on 61936 samples, validate on 61936 samples
Epoch 1/12
61936/61936 [==============================] - 10s 166us/step - loss: 0.0021 - val_loss: 1.5650e-04
Epoch 2/12
61936/61936 [==============================] - 10s 165us/step - loss: 0.0014 - val_loss: 6.6482e-04
...
Epoch 10/12
61936/61936 [==============================] - 11s 170us/step - loss: 0.0104 - val_loss: 9.6666e-05
答案 0 :(得分:4)
已知问题
https://github.com/keras-team/keras/issues/605
结果不同的另一个原因是因为模型 正在计算“损失”时正在训练,而模型 在计算“val_loss”时固定。由于模型是 训练,“损失”通常会大于真实 在时代结束时训练集损失。即“损失”是平均值 在这个时代的损失,而“val_loss”是之后的平均损失 时代的结束。由于模型在时代期间发生变化,所以损失惨重 变化。
答案 1 :(得分:3)
这些永远不会匹配。验证损失一次在整个数据集上计算(权重固定),培训损失是批次损失的平均值(每批次后权重变化)。如果您想要训练集上的实际损失,您应该运行model.evaluate(X_train)