TensorFlow を使用して音声認識用の RNN を構築する方法を学ぼうとしています。手始めに、TensorFlow ページTF-RNNに掲載されているいくつかのサンプル モデルを試してみたかった
アドバイスに従って、基本バージョンの word2vec モデル コードを使用して、単語 ID が密な表現 (ベクトル表現) にどのように埋め込まれているかを理解するのに時間がかかりました。TF-RNN のtf.nn.embedding_lookup
2 次元配列で使用されている同じ関数に実際に遭遇するまで、実際に何が行われているかを理解していましたが、それが意味をなさなくなったときです。 ptb_word_lm.py
私がするtf.nn.embedding_lookup
こと:
2 次元 arrayparams
および 1 次元 arrayを指定するids
と、関数は、 でtf.nn.embedding_lookup
指定されたインデックスに対応する params から行をフェッチしますids
。これは、返される出力の次元を保持します。
私が混乱していること:
同じパラメーターと 2-d array を試してみると、2-dids
ではtf.nn.embedding_lookup
なく 3-d 配列が返されますが、その理由はわかりません。
Embedding Lookupのマニュアルを調べましたが、パーティション分割の仕組みと返される結果を理解するのはまだ難しいと思います。最近、いくつかの簡単な例を試してみましtf.nn.embedding_lookup
たが、毎回異なる値を返すようです。この動作は、パーティショニングに伴うランダム性によるものですか?
tf.nn.embedding_lookup
がどのように機能するか、なぜ が両方word2vec_basic.py
で使用されるのか、ptb_word_lm.py
つまり、それらを使用する目的は何なのかを理解するのを手伝ってください。