计算张量流中基于句子的语言模型的序列丢失

时间:2016-11-18 10:56:30

标签: tensorflow

我试图编写一个动态的rnn,它将可变长度的句子作为输入。我对如何计算交叉熵损失感到有些困惑。

像sequence_loss_by_example和sparse_softmax_cross_entropy_with_logits这样的Tensorflow方法似乎有两个参数,即网络的输出logits和目标标签。

我对这些目标标签的形状感到困惑。似乎这两件事的尺寸应该匹配。在我当前的实现中,我的输入将是,例如,[word1,word2,word3,end-of-sentence-token]。在这种情况下,我似乎无法弄清楚我的目标标签会是什么样子。看起来它们是完全相同的,但在这种情况下,看起来我只是在预测我作为输入的词。所以这感觉不对。我有什么明显的遗漏?

还有一个问题:对于词汇外单词,我有一个未知的标记。在计算损失时,像处理任何其他单词一样处理此令牌是一个问题吗?或者我应该以某种方式增加预测未知单词的成本?

1 个答案:

答案 0 :(得分:0)

设置更大尺寸的模板,并用零或任何特殊字符填充剩余空格,以后可以将权重设置为0

Ex:[word1,word2,word3,end-of-sentence-token,PAD_word,PAD_word,PAD_word,PAD_word,....,PAD_word]