1. 程式人生 > >TensorFlow常量、變數和資料型別

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 的值。