いくつかの場所では、変数が名前で初期化されている構文を見ました。例:変数var
"counter"
に名前を付ける点はなぜTensorflowで変数名を付けますか?
# With name
var = tf.Variable(0, name="counter")
# Without
one = tf.constant(1)
は何ですか?
いくつかの場所では、変数が名前で初期化されている構文を見ました。例:変数var
"counter"
に名前を付ける点はなぜTensorflowで変数名を付けますか?
# With name
var = tf.Variable(0, name="counter")
# Without
one = tf.constant(1)
は何ですか?
name
パラメータはオプションです(変数と定数を作成してもしなくても作成できます)。プログラムで使用する変数は依存しません。名前はいくつかの場所で役立ちます:(計算後はsave them to a binary file)を保存または復元したい場合は、
を入力してください。 docsから:
By default, it uses the value of the Variable.name property for each variable
matrix_1 = tf.Variable([[1, 2], [2, 3]], name="v1")
matrix_2 = tf.Variable([[3, 4], [5, 6]], name="v2")
init = tf.initialize_all_variables()
saver = tf.train.Saver()
sess = tf.Session()
sess.run(init)
save_path = saver.save(sess, "/model.ckpt")
sess.close()
それでもあなたは、変数matrix_1
、matrix_2
を持っている彼らは、ファイルにv1
、v2
として保存しています。
また、TensorBoardでは、エッジの名前をうまく表示するために名前が使用されています。。あなたもgroup them by using the same scopeことができます。
import tensorflow as tf
with tf.name_scope('hidden') as scope:
a = tf.constant(5, name='alpha')
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0), name='weights')
b = tf.Variable(tf.zeros([1]), name='biases')
次の2人の平行宇宙とPythonの名前空間とTensorFlow名前空間を想像することができます。 TensorFlow空間の名前は、実際にはTensorFlow変数に属する「実際の」属性です。Python空間の名前は、このスクリプトの実行中にTensorFlow変数を指す一時的なポインタに過ぎません。そのため、スクリプトの終了後にPython名前空間が存在しなくなり、保存されたファイルにTensorflow名前空間が残っているため、変数を保存して復元するときにTensorFlow名のみが使用される理由があります。
別のユースケースは次のようになります。
[0.10108799]
NameErrorトレースバック(最新の呼び出しの最後) :
は、次のコードとその出力
def f():
a = tf.Variable(np.random.normal(), dtype = tf.float32, name = 'test123')
def run123():
f()
init = tf.global_variables_initializer()
with tf.Session() as sess123:
sess123.run(init)
print(sess123.run(fetches = ['test123:0']))
print(sess123.run(fetches = [a]))
run123()
出力を考えますin() 10 print(sess123.run(フェッチ= [a])) ---> 12 run123()run123で
() 8 sess123.run(INIT) 9プリント(sess123.run(フェッチが= [ 'test123:0'])) ---> 10名前 '' Fの範囲で定義されるように、ある
定義されない:プリント 11 12 run123()
NameError(sess123.runは、(= [A])を取り込みます) ()ではなく、run123()では使用できませんが、デフォルトのグラフでは何かを参照する必要があるため、必要に応じてデフォルトのグラフをさまざまなスコープで参照することができます。私は便利です。