e关于Train和eval的epoch为什么不同
来源:5-4 keras_to_estimator

weixin_慕勒7004644
2021-01-06
train_dataset的epoch=100,也就是repeat了100次,计算了100次的loss,为什么eval_dataset的epoch=1,最后也计算了了100次的loss呢?
train_dataset = make_dataset(train_df, y_train, epochs = 100)
eval_dataset = make_dataset(eval_df, y_eval, epochs = 1, shuffle = False)
history = model.fit(train_dataset,
validation_data = eval_dataset,
steps_per_epoch = 19,
validation_steps = 8,
epochs = 100)
Epoch 100/100
19/19 [==============================] - 0s 6ms/step - loss: 0.4574 - accuracy: 0.8076 - val_loss: 0.4831 - val_accuracy: 0.7617
写回答
1回答
-
因为对于eval_dataset,逻辑是在每次训练的epoch结尾时,进行一次eval,此时eval需要遍历数据集一遍,也就是epoch=1的概念。然后在每个epoch结束的时候,eval_dataset会被重置,所以下次又可以使用了。
012021-01-07
相似问题