2016-12-02 8 views
8
import tensorflow as tf 
with tf.device('/gpu:0'): 
    foo = tf.Variable(1, name='foo') 
    assert foo.name == "foo:0" 
with tf.device('/gpu:1'): 
    bar = tf.Variable(1, name='bar') 
    assert bar.name == "bar:0" 

上記のコードはtrueを返す。ここでは ":0"は特定のデバイスの変数を意味するわけではありません。変数名この例ではfooとbar)?TensorFlowでは、変数名の ":0"の意味は何ですか?

+0

アサートがtrueを返しますか? 'tensorflow.Variable'クラスのドキュメントを読んだことがありますか? –

+0

@ cricket_007はい、trueを返します。[tensorflow doc](https://www.tensorflow.org/versions/master/how_tos/variable_scope/index.html)に類似のコードがありますが、doc ":0"の意味は何も説明しないでください。 – EncodeTS

+0

Gotcha。私はちょうどソースコードを読んでいた。しかし、それを簡単に見つけることはできません。 –

答えて

11

これは、基礎となるAPIのテンソルの表現と関係があります。テンソルは、あるオペレーションの出力に関連する値です。変数の場合は、出力が1つのVariableオペレーションがあります。 opは複数の出力を持つことができるので、これらのテンソルは、を基準に取得<op>:0、例えば<op>:1などあなたがtf.nn.top_kを使用している場合、あなたが見ることができるので、このオペレーションによって作成された2つの値があるとしてTopKV2:0TopKV2:1

a,b=tf.nn.top_k([1], 1) 
print a.name # => 'TopKV2:0' 
print b.name # => 'TopKV2:1' 

How to understand the term `tensor` in TensorFlow?

関連する問題