Seq2Seq 中的 Helper 作用是什么

Seq2Seq 中的 Helper 作用是什么,可否详细说明?


黎明的星星 2018-4-23 11:43:56

如果你问的是为什么要有 helper 那么
helper class/function 是一个很常见的代码复用方式。一个类的实现可能比较大,比较臃肿,那么把他能复用的部分抽取出来,当作另外一个类,这样代码看起来比较简洁 :slight_smile:

你有什么想法可以和大家一起分享呀。开源软件重构起来也很容易,交一个 pull request 就好了~


舟 3332 于 2018-5-2 18:26

建议参考

https://tensorflow.google.cn/tutorials/seq2seq

简单地说,Helper 是 Decoder 的一部分,决定 Decoder 的输入是什么。
如果是 TrainingHelper(training 时候用的),那么输入是训练集的 input(真实数据),所以这个 Helper 初始化的时候要输入训练集数据(也就是 decoder_emb_inp)。
参考

https://tensorflow.google.cn/api_docs/python/tf/contrib/seq2seq/TrainingHelper

如果是 GreedyEmbeddingHelper(inference 时候用的),就是解码时把上一个 timestep 解码出的词语的 Embedding 作为当前 timestep 的输入,所以初始化的时候不用给训练集数据,但是要给所有词的 Embedding。

参考

https://tensorflow.google.cn/api_docs/python/tf/contrib/seq2seq/GreedyEmbeddingHelper


snowkylin 发表于 2018-5-2 20:34:10