TensorFlow基礎知識彙總

2021-09-10 21:29:40 字數 4009 閱讀 4758

一、 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提供最後乙個數字填充,示例**如下

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.......)

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.......)

示例**

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, ))

三、variable(變數)

vatiable是tensorflow的變數節點,通過variable(注:v大寫)方法建立,並且需要傳遞初始值。在使用前需要通過tensorflow的初始化方法進行初始化。通過變數 (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.`僅在從協議緩衝區初始化時使用。

引數說明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...