簡體   English   中英

Tensorflow變量和Ops與Python等效項

[英]Tensorflow Variables and Ops vs. Python Equivalents

我是Tensorflow的新手。

  • 是否有必要使用tensorflow的函數,例如使用tf.constant()替換int32float32或其他函數?
  • 同樣在計算過程中,使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM