TensorFlow筆記-03-張量,計算圖,會話
- 搭建你的第一個神經網路,總結搭建八股
- 基於TensorFlow的NN:用張量表示資料,用計算圖搭建神經網路,用會話執行計算圖,優化線上的權重(引數),得到模型
- 張量(tensor):多維陣列(列表)
- 階:表示張量的維數
·· 維 數 ···· 階 ········· 名 字 ········· 例 子 ············
·· 0-D ······ 0 ····· 標量 scalar ···· s=1 2 3
·· 1-D ······ 0 ····· 向量 vector ···· s=[1,2,3]
·· 2-D ······ 0 ····· 矩陣 matrix ···· s=[ [1,2,3], [4,5,6],[7,8,9] ]
·· n-D ······ 0 ····· 標量 tensor ···· s=[[[[[....n個
- 張量可以表示0階到n階的陣列(列表)
- **資料型別:Tensorflow 的資料型別有 tf.float32,tf.int32 等
案例:兩個張量的加法
# 兩個張量的加法
import tensorflow as tf
a = tf.constant([1.0, 2.0])
b = tf.constant([3.0, 4.0])
result = a+b
print(result)
執行結果:
- 結果分析:
計算圖
- 計算圖(Graph):搭建神經網路的計算過程,是承載一個或多個計算機結點的一張圖,只搭建網路,不運算
- 這裡要提到另一個概念:神經元 (不是很好理解,慢慢就懂了)
- 神經網路的基本模型的神經元,神經元的基本模型其實就是數學中的乘加運算
- 我們搭建如下計算圖:
- X1,X2 表示輸入,W1,W2分別是X1到X2的權重
該計算圖表示:y = X1W1 + X2W2
(不能理解就記住,該計算圖表示上面的這種含義)- 程式碼tf03檔案:https://xpwi.github.io/py/TensorFlow/tf03.py
# 兩個張量的加法
import tensorflow as tf
# x 是一個一行兩列的張量
x = tf.constant([[1.0, 2.0]])
# x 是一個兩行一列的張量
w = tf.constant([[3.0], [4.0]])
'''
構建計算圖,但不運算
y = XW
= x1*w1 + x2*w2
'''
# 矩陣相乘
y = tf.matmul(x, w)
print(y)
執行結果
Tensor("MatMul:0", shape=(1, 1), dtype=float32)
會話
- 會話(Session):執行計算圖中的結點運算
我們用 with 結構實現,語法如下:
with tf.Session() as sess :
print(sess.run(y))意思是:將 tf.Session 記為 sess,呼叫 tf.Session 下的 run 方法執行 y,y 也就是上面的計算圖,也就是那個表示式
- 程式碼04檔案:https://xpwi.github.io/py/TensorFlow/tf04.py
# 兩個張量的加法
import tensorflow as tf
# x 是一個一行兩列的張量
x = tf.constant([[1.0, 2.0]])
# x 是一個兩行一列的張量
w = tf.constant([[3.0], [4.0]])
'''
構建計算圖,但不運算
y = XW
= x1*w1 + x2*w2
'''
# 矩陣相乘
y = tf.matmul(x, w)
print(y)
# 會話:執行節點運算
with tf.Session() as sess:
print(sess.run(y))
執行結果
- y = 1.03.0 + 2.04.0 = 11
- 我們可以看到列印出了運算結果
更多文章:Tensorflow 筆記
- 本筆記不允許任何個人和組織轉載