1、 constant(常量)html
constant是TensorFlow的常量節點,經過constant方法建立,其是計算圖(Computational Graph)中的起始節點,是傳入數據。node
建立方式緩存
cons = tf.constant(value=[1,2],dtype=tf.float32,shape=(1,2),name='testconst', verify_shape=False)
參數說明session
value:初始值,必填,必須是一個張量(1或[1,2,3]或[[1,2,3],[2,2,3]]或......)dom
dtype:數據類型,選填,默認爲value的數據類型,傳入參數爲tensorflow下的枚舉值(float32,float64.......)函數
shape:數據形狀,選填,默認爲value的shape,設置時不得比value小,能夠比value階數、維度更高,超過部分按value提供最後一個數字填充,示例代碼以下學習
import tensorflow as tf sess = tf.InteractiveSession() cons1 = tf.constant([1, 2, 3], shape=[2, 3]) print(sess.run(cons1)) # [[1 2 3] # [3 3 3]]
name:常量名,選填,默認值不重複,根據建立順序爲(Const,Const_1,Const_2.......)spa
verify_shape:是否驗證value的shape和指定shape相符,若設爲True則進行驗證,不相符時會拋出異常code
2、placeholder(佔位符)htm
placeholder是TensorFlow的佔位符節點,由placeholder方法建立,其也是一種常量,但是由用戶在調用run方法是傳遞的,也能夠將placeholder理解爲一種形參。即其不像constant那樣直接可使用,須要用戶傳遞常數值。
建立方式
X = tf.placeholder(dtype=tf.float32, shape=[144, 10], name='X')
參數說明
dtype:數據類型,必填,默認爲value的數據類型,傳入參數爲tensorflow下的枚舉值(float32,float64.......)
shape:數據形狀,選填,不填則隨傳入數據的形狀自行變更,能夠在屢次調用中傳入不一樣形狀的數據
name:常量名,選填,默認值不重複,根據建立順序爲(Placeholder,Placeholder_1,Placeholder_2.......)
示例代碼
import tensorflow as tf import numpy.random as random #佔位符shape不設時會按傳入參數自行匹配 node1 = tf.placeholder(tf.float32) # , shape=[4, 5]) node2 = tf.placeholder(tf.float32) # , shape=[4, 5]) op = tf.multiply(node1, node2) session = tf.Session() const1 = tf.constant(random.rand(4, 5)) const2 = tf.constant(random.rand(4, 5)) #能夠傳入初始化後的常量 print(session.run(op, {node1: session.run(const1), node2: session.run(const2)})) #也能夠直接傳入張量,其實同初始化後的常量一致 print(session.run(op, {node1: random.rand(2, 3), node2: random.rand(2, 3)}))
3、Variable(變量)
Vatiable是tensorflow的變量節點,經過Variable(注:V大寫)方法建立,而且須要傳遞初始值。在使用前須要經過tensorflow的初始化方法進行初始化。
建立方式
W = tf.Variable(initial_value=tf.zeros([9, 5]), # 初始值,必填,張量或能夠轉換爲張量的Python對象。初始值必須有指定一個形狀,除非`validate_shape`設置爲False。 trainable=True, # 若是`True`,則默認值也將變量添加到圖形中集合`GraphKeys.TRAINABLE_VARIABLES`。這個集合用做「Optimizer」類使用的默認變量列表 collections=None, # 圖表集合鍵的列表。新的變量被添加到這些集合。默認爲`[GraphKeys.GLOBAL_VARIABLES]`。 validate_shape=True, # 若是`False`,容許變量用初始化未知形狀的值。若是「True」,默認的形狀`initial_value`必須是已知的。 caching_device=None, # 可選設備字符串,描述變量的位置應該被緩存以供閱讀。默認爲變量的設備。若是不是「None」,則緩存在另外一個設備上。典型的用途是緩存在使用變量的Ops所在的設備上進行重複數據刪除複製`Switch`和其餘條件語句。 name='W', # 變量的可選名稱。默認爲「Variable」並獲取自動去重(Variable_1,Variable_2....)。 variable_def=None, # `VariableDef`協議緩衝區。若是不是「無」,則從新建立變量對象及其內容,引用變量的節點在圖中,必須已經存在。圖形沒有改變。`variable_def`和其餘參數是互斥的。 dtype=tf.float32, # 若是設置,initial_value將被轉換爲給定的類型。若是`None',數據類型將被保存(若是`initial_value`是一個張量),或者「convert_to_tensor」來決定。 expected_shape=None, # 張量的Shape。若是設置,initial_value須要符合這個形狀。 import_scope=None) # 可選的字符串。名稱範圍添加到`Variable.`僅在從協議緩衝區初始化時使用。
參數說明Variable函數的所有參數如上方代碼展現,不過目前我在學習中遇到經常使用的的參數只有以下幾個,其餘的參數暫時沒在代碼中遇到
initial_value,dtype,name,建立代碼相似下面這樣
W = tf.Variable(tf.zeros([3, 10]), dtype=tf.float64, name='W')
原創聲明 做者:Vulper 地址:http://www.cnblogs.com/Vulpers/p/7809276.html 本文版權歸做者和博客園共同全部,歡迎轉載,轉載必須註明出處。 |