2016-09-19 16 views
1

モデルを使用してtensorflowで実装されている変換コードを使用しています。私はseq2seq modelについてtensorflowチュートリアルに従っています。Seq2Seqモデルの出力投影Tensorflow

output projectionという概念を説明する部分がseq2seq_model.pyコードに実装されています。私はコードを理解しています。しかし、これは何であるか分かりません出力投影部分をしています。

この出力投影物の後ろで何が起こっているのか誰かが私に説明することができれば素晴らしいだろう。

ありがとうございました!

答えて

2

内部的には、ニューラルネットワークは、いくつかのサイズ、しばしば256,512、または1024の浮動小数点数の密度の高いベクトルで動作します(ここでは512としましょう)。しかし、最終的には、語彙から、しばしば例えば40000ワードほど大きい単語を予測する必要がある。出力投影は、内部表現からより大きなものに(プロジェクト)変換する最終線形レイヤーです。したがって、たとえば、512 x 40000のパラメータ行列とバイアスベクトルの40000パラメータから構成できます。 seq2seqコード内で別個に保持される理由は、いくつかの損失関数(例えば、サンプリングされたソフトマックス損失)は、最終512サイズのベクトルおよび出力射影行列に直接アクセスする必要があるからである。希望が助けてくれる!

+0

ループが出力投影のバケット数を超えているのはなぜですか?私は 'x inrange(len(バケット))のためのものです: self.outputs [b] = [tf.matmul(output、output_projection [0])+ self.outputsの出力のためのoutput_projection [1] ]] ' –

関連する問題