我最近尝试使用Google seq2seq建立小型NMT系统。我设法使一切正常,但我仍然想知道时代数和模型训练步数之间的确切差异。
如果我没有弄错的话,一个时期包含多个训练步骤,并且一旦你的整个训练数据被处理一次就过去了。但是,当我查看Google自己的tutorial on NMT中的文档时,我不明白两者之间的区别。请注意以下代码段的最后一行。
String[] listprice = getResources().getStringArray(R.array.listprice);
String[] mylist = getResources().getStringArray(R.array.mylist);
在我看来,似乎只有一种方法可以定义训练步骤的数量而不是模型的时代数。是否有可能术语重叠,因此没有必要定义一些时代?
答案 0 :(得分:7)
一个时代包括一次完成所有训练样本。并且一步/迭代指的是对单个小批量的训练。因此,如果您有1,000,000个培训样本并使用100个批次,一个时期相当于10,000个步骤,每步100个样本。
高级神经网络框架可以让您设置时期数或训练步骤总数。但你无法设置它们,因为一个人直接决定了另一个的价值。