【发布时间】:2018-10-21 07:40:52
【问题描述】:
当我同时使用batch_size 和steps_per_epoch 参数运行model.fit 时,我收到以下错误:
ValueError: If steps_per_epoch is set, the `batch_size` must be None.
所以,从这个错误和下面的文档from keras Model(functional API)
batch_size: 整数或无。每次梯度更新的样本数。如果 未指定,batch_size 将默认为 32。
steps_per_epoch: 整数或无。步骤总数(样本批次) 在宣布一个时代结束并开始下一个时代之前。训练时 对于输入张量(例如 TensorFlow 数据张量),默认的 None 等于数据集中的样本数除以批量大小,如果无法确定,则为 1。
我知道这两个参数在某种程度上是等效的。但是,在我的笔记本电脑上,(使用 GeForce 940M 显卡和 2GB VRAM 并训练 cifar10 数据集)当我运行 model.fit 并将 epochs 参数设置为 256 时,脚本运行良好,并且来自 keras 的反馈是这样的:
4608/50000 [=>............................] - ETA: 1:59 - loss: 0.8167 - acc: 0.7398
更新第一个数字总是增加 256 个单位。但是,当将 steps_per_epoch 作为 number_train//batch_size 传递时,内存不足并且无法运行我的脚本,除非我将 batch_size 作为 1 传递。
那么,model.fit 如何使用这些参数?当我只使用其中一种而不使用另一种时有什么区别?
【问题讨论】:
标签: python machine-learning keras training-data