具有较少target_vocab_size数量的TensorFlow seq2seq模型

时间:2016-06-15 10:11:28

标签: machine-learning tensorflow

我正在尝试使用tensorflow seq2seq_model.py模型。 我的目标词汇大小约为200。

documentation说:

  

对于小于512的词汇表,最好只使用标准的softmax损失。

源代码也有支票:

if num_samples > 0 and num_samples < self.target_vocab_size:

仅使用200个目标输出词汇表运行模型不会调用if语句。

我是否需要编写“标准”so​​ftmax丢失功能以确保良好的训练,或者我可以让模型在运行时运行?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我正在做同样的事情。为了让我的手指在训练数据中使用不同类型的结构,我正在一个人工测试世界工作,在(源和)目标词汇表中只有117个单词。

我问自己同样的问题,并决定不经历那个麻烦。我的模型训练得很好,即使我没有触及损失,因此仍然使用samples_softmax_loss。

这些小词汇量的进一步经验: - batchsize 32在我的情况下是最好的(较小的那些使它真的不稳定,我很快就遇到了问题) - 我使用AdaGrad作为优化器,它就像魔法一样 - 我正在使用model_with_buckets(通过translate.py寻址)并且使用num_layers 2的大小512会在许多情况下产生所需的结果。