python3
1 2import tensorflow as tf 3from tensorflow.python.ops import embedding_ops 4 5embedding=[ 6....... 7] 8sess = tf.Session() 9sess.run(tf.global_variables_initializer()) 10init = tf.constant_initializer( embedding ) 11embeddings = tf.get_variable('embeddings', shape=[ len( embedding) , len( embedding[0]) ] , initializer=init , trainable=False ) 12word_vectors = embedding_ops.embedding_lookup(embeddings, X , name='words' ) 13print( sess.run( word_vectors ) ) 14
このようにしてword_vectors の内容を見たいのですが、tf.get_variable の時に
FailedPreconditionError (see above for traceback): Attempting to use uninitialized value embeddings
[[Node: embeddings/read = IdentityT=DT_FLOAT, _class=["loc:@embeddings"], _device="/job:localhost/replica:0/task:0/gpu:0"]]
というエラーになります。
変数の初期化などの問題では無いように思えるのですが、
word_vectors の出力を見るためにはどのようにしたら良いでしょうか?
最短のソースコードを追記します。
X,embeddingなどは動的に作っても同じだと思います
python3
1import tensorflow as tf 2from tensorflow.python.ops import embedding_ops 3X=[ [1, 2, 4 , 0 , 0 ], [ 1,3 ,3 ,4, 0 ] ] 4embedding=[ [ 0, 0 ] , [ 1 , 1 ] , [ 2 , 2 ] , [ 3 , 3 ] , [ 4 , 4 ] , ] 5sess = tf.Session() 6sess.run(tf.global_variables_initializer()) 7init = tf.constant_initializer( embedding ) 8embeddings = tf.get_variable('embeddings', shape=[ len( embedding) , len( embedding[0]) ] , initializer=init , trainable=False ) 9word_vectors = embedding_ops.embedding_lookup(embeddings, X , name='words' ) 10print( sess.run( word_vectors ) )
参考元もしくは実行可能な最小コードを添えていただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー