我最近尝试使用 Google 的seq2seq来建立一个小型 NMT 系统。我设法让一切正常,但我仍然想知道模型的时期数和训练步骤数之间的确切差异。
如果我没记错的话,一个 epoch 由多个训练步骤组成,并且一旦你的整个训练数据被处理一次,就已经过去了。但是,当我查看 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
在我看来,好像只有一种方法可以定义训练步骤的数量,而不是模型的时期数。术语是否可能存在重叠,因此没有必要定义多个时代?