我以前在tensorflow中使用Estimator API,并使用了“ max_steps”,即培训期间看到的批次数。 我的数据集是完全合成的并且是无限的,每次都在运行中生成一批全新的图像。 新的Keras API使用“历元”的概念,它对应于整个数据集的传递。如何在keras的“适合”函数中设置“ steps_per_epoch”,“ initial_Epoch”和“ epochs”,以使其对我而言有意义?
谢谢!
答案 0 :(得分:0)
在steps_per_epoch
函数中还有一个确切名称为model.fit()
的参数,该参数可让您定义所需的步数,该步数等于一个历元。假设当批量大小为steps_per_epoch=4
时,您希望4x8 = 32
的含义是8
。 32表示此处该模型现在将从数据集中看到32个样本。
还有一个initial_epoch
参数,其作用与名称中所说的完全一样。
epochs
也存在于.fit()
中,将占用您想要的历元总数。因此,假设您要训练10个纪元,那么对于每个纪元,模型将看到32个图像样本,而在第10个纪元后,它将10x32= 320
这些所有功能都定义为here。
答案 1 :(得分:-1)
以下是为了正确使用Keras而必须了解和理解的常见定义:
回答您的其他评论:
keras模型不关心样本长度。例如,模型可以接收相似(无,w,h,c)形状的输入张量。 0轴无是您关心的#samples问题,但您无需关心。
因此无需在keras中指定输入张量的样本大小。
此外,样本数据收集过程可以是动态的,但用于分析的样本始终是固定的。您需要划分开发集和测试集。新收集的样本应在一定的时间段(例如一周或一个月)内添加到开发集和测试集中,并且需要确保收集的样本满足相同的分布。
了解def Input可能会对您有所帮助。