最近谷歌发布了 seq2seq 算法的新实现:https ://github.com/google/seq2seq/blob/master/docs/nmt.md 。他们改变了代码的整个内部结构。我试图为我的目的修改代码(我创建了新的 InputPipeline 解码器)。当我在不做任何修改的情况下运行代码时,它运行良好:所有任务调用和训练启动都没有任何问题。开始创建实验后,tensorflow 显示有关创建所有钩子的消息:
...
INFO:tensorflow:Creating ParallelTextInputPipeline in mode=train
...
INFO:tensorflow:Creating ParallelTextInputPipeline in mode=eval
...
INFO:tensorflow:Creating PrintModelAnalysisHook in mode=train
...
INFO:tensorflow:Creating RougeMetricSpec in mode=eval
...
这部分工作正常。但在那之后,原代码调用train模式下创建AttentionSeq2Seq、词汇表查找表、BidirectionalRNNEEncoder、AttentionLayerDot、AttentionDecoder、ZeroBridge 任务:
INFO:tensorflow:Creating AttentionSeq2Seq in mode=train
...
INFO:tensorflow:Creating vocabulary lookup table of size 34
INFO:tensorflow:Creating vocabulary lookup table of size 46
INFO:tensorflow:Creating BidirectionalRNNEncoder in mode=train
...
这部分创建 AttentionSeq2Seq、词汇表查找表等任务在我修改后不会启动。您能否解释一下,这些任务是如何在原始版本中启动的?