2017-05-24 22 views
6

TensorflowのTensorVariableの違いは何ですか?私はTensorを使用することができますどこ我々はVariableを使用することができ、this stackoverflow answerに気づきました。しかし、私はVariablesession.run()を行うに失敗しました:TensorflowのTensorとVariableの違い

A = tf.zeros([10]) # A is a Tensor 
B = tf.Variable([111, 11, 11]) # B is a Variable 
sess.run(A) # OK. Will return the values in A 
sess.run(B) # Error. 

答えて

6

Variable基本的にrunに複数の呼び出し間で状態を維持し、私はグラフの保存と復元を持ついくつかのものが容易になり考えるTensorのラッパーです。変数は、実行する前に初期化する必要があります。変数を定義する際には初期値を指定しますが、実際にセッションでこの値を代入してから変数を使用するには、初期化関数を呼び出す必要があります。これを行う一般的な方法はtf.global_variables_initalizer()です。

例えば:あなたは変数の代わりに、テンソルを使用する理由については

import tensorflow as tf 
test_var = tf.Variable([111, 11, 1]) 
sess = tf.Session() 
sess.run(test_var) 

# Error! 

sess.run(tf.global_variables_initializer()) # initialize variables 
sess.run(test_var) 
# array([111, 11, 1], dtype=int32) 

、基本的には変数は追加機能やユーティリティとテンソルです。 Variableをtrainable(実際はデフォルト)として指定することができます。これは、オプティマイザが費用関数を最小限に抑えるように調整することを意味します。変数が分散システム上にある場所を指定できます。変数とグラフを簡単に保存および復元できます。変数の使用方法に関する詳細は、hereを参照してください。

+1

ありがとう!それははるかに理にかなっています。実際、私は変数を初期化しませんでした。 –

関連する問題