一、 constant(常量)
constant是tensorflow的常量節點,通過constant方法建立,其是計算圖(computational graph)中的起始節點,是傳入資料。
建立方式
cons = tf.constant(value=[1,2],dtype=tf.float32,shape=(1,2),name='testconst', verify_shape=false)
引數說明
value:初始值,必填,必須是乙個張量(1或[1,2,3]或[[1,2,3],[2,2,3]]或......)
dtype:資料型別,選填,預設為value的資料型別,傳入引數為tensorflow下的列舉值(float32,float64.......)
shape:資料形狀,選填,預設為value的shape,設定時不得比value小,可以比value階數、維度更高,超過部分按value提供最後乙個數字填充,示例**如下
name:常量名,選填,預設值不重複,根據建立順序為(const,const_1,const_2.......)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]]
verify_shape:是否驗證value的shape和指定shape相符,若設為true則進行驗證,不相符時會丟擲異常
二、placeholder(佔位符)
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.......)
示例**
三、variable(變數)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, ))
#也可以直接傳入張量,其實同初始化後的常量一致
print(session.run(op, ))
vatiable是tensorflow的變數節點,通過variable(注:v大寫)方法建立,並且需要傳遞初始值。在使用前需要通過tensorflow的初始化方法進行初始化。通過變數 (variable) 維護狀態。
建立方式
引數說明variable函式的全部引數如上方**展示,不過目前我在學習中遇到常用的的引數只有如下幾個,其他的引數暫時沒在**中遇到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.`僅在從協議緩衝區初始化時使用。
initial_value,dtype,name,建立**類似下面這樣
w = tf.variable(tf.zeros([3, 10]), dtype=tf.float64, name='w')
四、圖graph
使用圖 (graph) 來表示計算任務。tensorflow中,演算法都會被表示成計算題(computational graphs),也稱資料流圖。可以把計算圖看成一種有向圖,張量就是通過各種操作在有向圖中流動的。
五、會話session
在被稱之為 會話 (session) 的上下文 (context) 中執行圖。
六、張量tensor
使用 tensor 表示資料。
七、節點node
節點(node)在圖中表示數學操作。如加減乘除等。
八、常用名詞
scalar 標量
vector 向量
axis 軸,x-axis:x軸,y-axis:y軸
dim(dimension) 維度
tensorflow 基礎知識
變數不執行,只列印行列引數,sess.run a 列印出變數實際內容 y int x0 x1 1 for x0,x1 in x 這樣能夠判斷x生成的資料兩個數的和小於1,那麼y就是1,否則是0 rng np.random.randomstate seed x rng.rand 32,2 生成32行2...
TensorFlow基礎知識
從helloword開始 mkdir mooc 新建乙個mooc資料夾 cd mooc mkdir 1.helloworld 新建乙個helloworld資料夾 cd 1.helloworld touch helloworld.py coding utf 8 引入 tensorflow 庫 impo...
TensorFlow基礎知識
title tensorflow基礎知識 date 2018 03 31 14 13 12 categories tensorflow是乙個採用資料流圖 data flow graphs 用於數值計算的開源軟體庫。下圖就是乙個資料流圖。資料流圖是乙個用來描述數學計算的由 結點 nodes 和 線 e...