

PythonのprintとTensorflowのチュートリアルについて

Tensor flowのチュートリアルの一番初めのMNISTをやっています。  
その中でx,yや重みやバイアスであるb,Wの中身を見てみたいです。

そのために

[code]

    >>>print x,y,b,W
    
[/code]

を実行しても

[code]

    Tensor("Placeholder:0", shape=TensorShape([Dimension(None), Dimension(784)]), dtype=float32)
    Tensor("Softmax:0", shape=TensorShape([Dimension(None), Dimension(10)]), dtype=float32)
    <tensorflow.python.ops.variables.Variable object at 0x1006b0b90>
    <tensorflow.python.ops.variables.Variable object at 0x101b76410>
    
[/code]

と表示されます。  
重みやバイアスには実際の値が入ってますよね？  
それらを表示させる方法はないですか？

教えてください、宜しくお願いします。


CC BY-SA 3.0
2016-06-03T07:39:26.767
25412
2017-07-10T13:36:50.873
2016-06-03T07:43:05.010
15745
question
python tensorflow
TensorFlowについて


tensorflowの変数は， いわゆる変数ではなく`tensorflow`のセッション中の操作を指し示すものです．
まず`x`は`sess.run(train_step, feed_dict={x: batch_xs, y_:
batch_ys})`のようにtensorflowのセッションにわたされた入力(この場合`batch_xs`)が代入される変数を表わしているので，セッッション外では値はありません．また`y`は`x`，`W`，`b`にたいする操作なので値はきまりません．`b`と`W`セッション内で`b`や`W`の値をわたす操作を表わしているため，セッションにこの操作を評価させれば以下のように表示できます．

[code]

    print sess.run(W)
    print sess.run(b)
    
[/code]


CC BY-SA 3.0
2016-06-03T23:52:31.863
25429
2016-06-03T23:52:31.863
14418
25412
answer


ipythonなどの対話型シェルでは、tf.InteractiveSessionを使うと良いです。

[tensorflowのドキュメント](https://www.tensorflow.org/api_docs/python/tf/InteractiveSession\])にある例を手元で実行した結果が以下です。

[code]

    In [1]: import tensorflow as tf
    
    In [2]: sess = tf.InteractiveSession()
    
    In [3]: a = tf.constant(5.0)
    
    In [4]: b = tf.constant(6.0)
    
    In [5]: c = a * b
    
    In [6]: print(c.eval())
    30.0
    
    In [7]: sess.close()
    
[/code]

a.eval()やb.eval()としても変数の値を見ることが出来ます。


CC BY-SA 3.0
2017-07-10T13:36:50.873
36250
2017-07-10T13:36:50.873
808
25412
answer