[英]Tensorflow Variables and Ops vs. Python Equivalents
我是Tensorflow的新手。
tf.constant()
替換int32
, float32
或其他函數? tf.mul()
代替普通的Python乘法*
? tf.Print()
而不是print()
嗎? 因為張量流是建立在計算圖上的。 當您使用python構造圖形時,您只是在建立對計算的描述(實際上並未進行計算)。 要計算任何內容,必須在會話中啟動圖。 因此最好使用tensorflow ops進行計算。
https://www.tensorflow.org/versions/r0.11/get_started/basic_usage.html
如前所述這里 ,
張量是操作輸出之一的符號句柄。 它不保存該操作的輸出值,而是提供一種在TensorFlow會話中計算這些值的方法
因此張量變量與python變量不同。 而是在計算圖中指定運算之間的關系。 用於描述圖形的python變量是為了方便程序員,但將python變量和張量變量考慮為並行名稱空間可能會更容易。 此示例可能會有所幫助:
with tf.Session() as sess:
a = tf.constant([1, 2, 3])
b = tf.Variable([])
b = 2 * a
sess.run(tf.initialize_all_variables())
print(b) # Tensor("mul:0", shape=(3,), dtype=int32)
print(b.eval()) # [2, 4, 6]
b = tf.Print(b, [b]) # [2, 4, 6] (at the command line)
從中您可以看到:
print(b)
返回有關“ b”所引用的操作的信息以及變量的形狀和數據類型,但不返回值。 b.eval()
或sess.run(b)
)返回的值b
作為numpy的陣列,其可以通過一個python被打印print()
tf.Print()
允許您在圖形執行期間查看b
的值。 請注意,對於新手來說, tf.Print()
的語法似乎有些奇怪。 如文檔中描述這里 , tf.Print()
是僅具有打印的命令行的副作用的標識操作。 第一個參數剛剛通過。 第二個參數是打印的張量列表,並且可以與第一個參數不同。 還要注意,為了使tf.Print()
做某事,在隨后的sess.run()
調用中使用的變量需要取決於tf.Print()
輸出的張量,否則圖的這一部分將不被執行。
最后相對於數學OPS如tf.mul()
VS *
許多正常蟒OPS都與等效tensorflow OPS過載,如所描述的在這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.