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回答

正十七

2021-01-07

因为对于eval_dataset,逻辑是在每次训练的epoch结尾时,进行一次eval,此时eval需要遍历数据集一遍,也就是epoch=1的概念。然后在每个epoch结束的时候,eval_dataset会被重置,所以下次又可以使用了。

0
1
weixin_慕勒7004644
明白啦,太谢谢老师的解答啦,喜欢您的课程!
2021-01-07
共1条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程