我正在浏览tensorflow
使用seq2seq
模型实施的翻译代码。我正在关注seq2seq
model的tensorflow
教程。
在该教程中,有一部分解释了一个名为output projection的概念,它们已在seq2seq_model.py代码中实现。我理解代码。但我不明白这个输出预测部分正在做什么。
如果有人可以向我解释这个输出投影背后的情况,那会很棒。?
谢谢!!
答案 0 :(得分:4)
在内部,神经网络在一些大小的密集向量上运行,通常是256,512或1024个浮点数(这里假设为512)。但最后它需要从词汇表中预测一个通常要大得多的单词,例如40000个单词。输出投影是最终的线性层,它将(项目)从内部表示转换为较大的表示。因此,例如,它可以包含512 x 40000参数矩阵和偏置矢量的40000参数。它在seq2seq代码中保持分离的原因是一些损失函数(例如,采样的softmax损失)需要直接访问最终的512大小的向量和输出投影矩阵。希望有所帮助!