2016-11-10 10 views
0

畳み込みレイヤのフィルタを調べたいと思っています。これを行うために、セッションの最後のステップで変数を取得しようとしています。ここでセッション内のグラフから変数を取得する方法は?

は私のモデルの簡易版である:

graph = tf.Graph() 
with graph.as_default(): 

    # Placeholders 
    ... 

    # Variables. 
    conv1_w = tf.Variable(..., name='conv1_w') 
    ... 

    optimizer = ... 
    accuracy = ... 

with tf.Session(graph=graph) as session: 
    ... 
    acc, c1 = session.run([accuracy, conv1_w], feed_dict=feed_test) 

私はオペアンプを適用する場合は、私はエラーなし結果のテンソルを取得することができ、次の例外

Fetch argument <tensorflow.python.ops.variables.Variable object at 0x137890710> cannot be interpreted as a Tensor. (Tensor Tensor("conv1_w:0", shape=(5, 5, 1, 16), dtype=float32_ref) is not an element of this graph.) 

を取得します:

c1_op = tf.mul(conv1_w,1.0) 
    optimizer = ... 
    accuracy = ... 

Tensorflowは変数をフェッチできませんか?

+0

はそれがいけませんconv_val = session.run([精度、conv1_w]、feed_dict = feed_test) – Steven

+0

これはタイプミスでした。私は質問を編集しました – znat

答えて

0

変数名と「名前」パラメータが

別にそれは実際にあなたの計算グラフには全く使用されていないようにそれが思われることから、両方conv1_wであることを多少混乱するかもしれません。つまり、データがプッシュされていないか、使用されていないことを意味します。

クイック簡単な例:

import tensorflow as tf 
sess = tf.InteractiveSession() 

conv1 = tf.Variable(1) 

sess.run(tf.initialize_all_variables()) 
sess.run(conv1) 

側の注意点として、1

です

結果:それは代わりにtf.Variable()の()tf.get_variable使用することをお勧めします

+0

こんにちは、私は同じ結果を前に対話的なセッションを使用してみました。取得したテンソルの数と返される変数の数に関して、私の質問にはタイプミスがありました。 – znat

+0

あなたのコードをもっと載せたりリンクしたりできますか?それ以外の場合は、私の簡単な例のように動作するはずです。この場合、SessionはInteractiveSessionと変わりません。 – Steven

関連する問題