2016-07-21 9 views

答えて

0

私はどのような構文ネットであるかはわかりませんが、ここで私のシーケンス内の単語埋め込みをシーケンスモデルに使用しています。

ここでは、埋め込みを格納する変数を宣言します。これは、語彙(NWORDS)内の語の数に等しい行を有する行列であり、各列は、その語(WORD_VEC_SIZE)の語ベクトルのサイズである。ランダムに初期化され、モデルの学習可能なパラメータです。

word_embedding = tf.get_variable('word_embedding', shape = (NWORDS, WORD_VEC_SIZE), initializer = tf.truncated_normal_initializer(0.0, 1,0)) 

私のモデルへの入力は、埋め込みの単語のインデックスを表す整数のリストです。 BATCH_SIZE x TIMESTEPSのディメンションです。

埋め込みと入力を使用して、単語の整数表現をベクトルに変換するルックアップを実行できます。

y = tf.nn.embedding_lookup([word_embedding], source_input) 

今Y形状(BATCH_SIZE、TIME_STEPS、WORD_VEC_SIZE)を有し、更なる処理のためにモデルに供給することができます。

+0

あなたの答えをありがとうが、それは私の質問に正確には解決していません。 syntaxtreeに事前に組み込んだ単語埋め込みをロードすると、以下のエラーリストが表示されます。raise type(e)(node_def、op、message) tensorflow.python.framework.errors.InvalidArgumentError:Assignには両方のテンソルの形が一致する必要があります。 [embed_matrix_0/init = Assign [T = DT_FLOAT、_class = ["loc:@ embedding_matrix_0"]、use_locking = true、validate_shape = trueの場合はlhs shape = [5,8] rhs shape = [31157,128] [ _device = "/ job:localhost/replica:0/task:0/cpu:0"](embedding_matrix_0、embedding_matrix_0/init/WordEmbeddingInitializer)]] –

関連する問題