步骤和num_epochs之间的区别

时间:2018-08-01 20:24:18

标签: python-3.x tensorflow machine-learning gradient tensorflow-gradient

我不理解在任何一种ML代码中都需要使用stepsnum_epochs的需求。

某些程序同时包含两个变量。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

据我所了解和理解,

在机器学习(ML)模型的训练阶段,您的目标通常是最小化成本函数。在监督学习中,您将数据输入模型,并将输出结果与标签进行比较。然后,您朝着成本函数的最小值迈出了“一步”。也就是说,您可以计算某种形式的渐变并相应地调整模型的权重。

现在,可以用不同的方式完成此过程。例如,当涉及到梯度下降时,您可以执行“批量梯度下降”,“随机梯度下降”或“小批量梯度下降”。进行批次梯度下降时,您将提供所有示例,计算梯度,然后采取步骤,重复此过程step次。但是,在随机梯度下降中,您将仅提供一个示例,计算梯度,采取步骤,重复该过程step次,然后再次开始“ n_epochs”次(在每个时期之前对数据进行混排)。

因此,step是指您执行的步骤数,而n_epoch是指您浏览数据的次数。某些算法会多次遍历数据(或部分数据),这就是为什么您需要两个变量:stepn_epochs的原因。

答案 1 :(得分:1)

比方说,您得到的数据大小为1000,num_epoch为10,步长为200。在每个时期,程序将处理每个步骤。 因此,第1个-> 200..400..600..800..1000,第2个-> 200..400..600..800..1000,依此类推。