模型steps_per_epoch fit() 函数的参数是否覆盖了序列的 __len__() 的值



根据tl .keras.utils. sequence官方文档,设置__len__()函数返回值的一般约定为training size / batch size

这确保了对于单个epoch,您的模型在所有训练数据上进行一次训练。

问题-当我们在model.fit()函数中传递steps_per_epoch的值时,它是否覆盖了__len__()函数返回的值?

假设参数steps_per_epoch的值为x。我显式地在model.fit()函数中传递此参数。那么不管__len__()函数返回什么值,对于单个历元,模型是否会在x*batch_size个样本上进行训练?

是,如果您设置了batch_size和stepps_per_epoch,那么在epoch结束之前只有这些数据点将被使用。这可以用于例如在tensorflow数据集迭代器上,它没有结束,因为它被设置为使用.repeat()的inf循环。在这里,没有尽头,时代将永远继续下去。要改变这一点,您可以设置每个epoch的步骤。通常,在进行验证步骤之前,应该在整个数据集上训练epoch,所以除非必须,否则最好不要手动设置epoch。

最新更新