【发布时间】:2017-09-05 07:02:04
【问题描述】:
我最近尝试使用 Google 的 seq2seq 建立一个小型 NMT 系统。我设法让一切正常工作,但我仍然想知道模型的 epoch 数和训练步骤数之间的确切差异。
如果我没记错的话,一个 epoch 由多个训练步骤组成,并且一旦您的整个训练数据被处理一次,就已经过去了。但是,当我查看 Google 自己的 tutorial on NMT 中的文档时,我不明白两者之间的区别。请注意以下 sn-p 的最后一行。
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
在我看来,似乎只有一种方法可以定义训练步骤的数量,而不是模型的 epoch 数量。是否可能存在术语重叠,因此没有必要定义多个时期?
【问题讨论】:
-
您回答了自己的问题。链接教程中的哪些内容与您所说的相矛盾?我们不会阅读所有内容。
-
它只允许你导出某个nr。训练步骤,所以我想知道是否仍然需要指定一个 nr。时代也是如此。
-
一个时期是固定数量的步骤,因此定义一个定义另一个。
-
所以,为了确定我明白了:如果您的训练数据包含 200.000 个句子,并且您设置了 1.000.000 个训练步骤,那么您最终将获得相当于 5 个 epoch 的结果?
标签: tensorflow neural-network machine-translation sequence-to-sequence