TensorFlow:nr.时代与nr.训练步骤

mil*_*anv 1 neural-network machine-translation tensorflow sequence-to-sequence

我最近尝试使用Google的seq2seq来建立一个小型的NMT系统.我设法让一切工作正常,但我仍然想知道时代数和模型训练步数之间的确切差异.

如果我没有弄错的话,一个时期包含多个训练步骤,并且一旦您的整个训练数据被处理一次就过去了.但是,当我查看Google自己的NMT教程中的文档时,我不明白两者之间的区别.请注意以下代码段的最后一行.

export DATA_PATH=

export VOCAB_SOURCE=${DATA_PATH}/vocab.bpe.32000
export VOCAB_TARGET=${DATA_PATH}/vocab.bpe.32000
export TRAIN_SOURCES=${DATA_PATH}/train.tok.clean.bpe.32000.en
export TRAIN_TARGETS=${DATA_PATH}/train.tok.clean.bpe.32000.de
export DEV_SOURCES=${DATA_PATH}/newstest2013.tok.bpe.32000.en
export DEV_TARGETS=${DATA_PATH}/newstest2013.tok.bpe.32000.de

export DEV_TARGETS_REF=${DATA_PATH}/newstest2013.tok.de
export TRAIN_STEPS=1000000
Run Code Online (Sandbox Code Playgroud)

在我看来,似乎只有一种方法来定义训练步骤的数量,而不是模型的时代数量.是否有可能在术语上存在重叠,因此没有必要定义多个时期?

int*_*jay 7

一个时代包括一次完成所有训练样本.并且一步/迭代指的是对单个小批量的训练.因此,如果您有1,000,000个训练样本并且批量大小为100,则一个时期将相当于10,000步,每步100个样本.

高级神经网络框架可以让您设置时期的数量或训练步骤的总数.但是你不能设置它们,因为一个直接决定了另一个的价值.