【发布时间】:2019-02-07 14:35:42
【问题描述】:
我正在研究使用 Keras+TensorFlow 训练 CNN 模型期间的性能和 GPU 使用情况。与this question 类似,我很难理解Keras model.fit 的steps_per_epoch 和TensorFlow 的Dataset API 的.batch() 的组合使用:我在输入管道dataset = dataset.batch(batch_size) 和后来我用
fit = model.fit(dataset, epochs=num_epochs, steps_per_epoch=training_set_size//batch_size)
但我发现实际上可以在每个 epoch 设置任意数量的步数,甚至比 training_set_size//batch_size 还要多。从文档中我了解到,在 Keras 上,一个时代不一定像往常一样通过整个训练集,但无论如何我有点困惑,现在我不完全确定我是否正确使用它。
dataset.batch(batch_size) + steps_per_epoch=training_set_size//batch_size 是否定义了一个小批量 SGD,它通过小批量 batch_size 样本在整个训练集上运行?如果 steps_per_epoch 设置为大于 training_set_size//batch_size,则训练集的 epoch 是否大于 1 次?
【问题讨论】:
标签: tensorflow keras tensorflow-datasets