TensorFlow常量、變數和資料型別
TensorFlow 用張量這種資料結構來表示所有的資料。一個張量有一個靜態型別和動態型別的維數,張量可以在圖中的節點之間流通。
(1)TensorFlow中建立常量的方法:
hello=tf.constant('hello,TensorFlow!',dtype=tf.string)
a=tf.constant(1)
生成初始值為隨機數:
生成0:
(2)TensorFlow中變數的建立方法:
b=tf.Variable(1.0,dtype=tf.float32)
對於TensorFlow中的浮點型資料,需要知道TensorFlow中常用的有兩種: float32和float64,這兩種在作為常量使用時沒什麼問題,當處於變數的建立和修改時會相互影響。編寫之前定義好資料的型別。
除了一般框架中常見的資料常量和資料變數之外,TensorFlow 還存在一種特殊的資料型別——佔位符(placeholder)。因為TensorFlow 特殊的資料計算和處理形式,圖進行計算時,可以從外界傳入數值。而TensorFlow 並不能直接對傳入的資料進行處理,因此使用 placeholder 保留一個數據的位置,之後可以在TensorFlow會話執行的時候進行賦值。
import tensorflow as tf
input1=tf.placeholder(tf.int32)
input2=tf.placeholder(tf.int32)
output=tf.add(input1,input2)
sess=tf.Session()
print(sess.run(output,feed_dict={input1:[1],input2:[2]}))
同理佔位符在平時只是作為一個空的張量在TensorFlow 的圖中構成一個邊,只有當圖完全啟動後,才有真實的資料被填入和計算。上邊程式對佔位符傳遞資料時,使用的是Feening_dict函式。Feeding是TensorFlow的一種機制,它允許你在執行時使用不同的值替換一個或多個tensor的值。 Feed_dict 將tensor 物件對映為 Numpy的陣列,同時在執行step時,這些陣列就是tensor 的值。