簡書不支持數(shù)學公式,前往我的我的csdn觀看更佳
前向傳播
目的:搭建模型,實現(xiàn)推理
一些重要的概念
-
參數(shù)
上圖中的w(權(quán)重)即為參數(shù),一般隨機賦給初值
- 計算
對于這么一個神經(jīng)元,y的值為
$$y = x_1w_1+x_2w_2 $$
事實上用矩陣表達更方便也跟通常一點
$$
y = \begin{bmatrix}x_1&x_2\end{bmatrix} \times \begin{bmatrix}w_1\w_2\end{bmatrix}
$$
tensorflow中提供的一些重要函數(shù)
- 生成變量
w = tf.Varable(tf.random_normal([2,3],stddev = 2,mean=0,seed=1))
# 生成正態(tài)分布 2x3的矩陣 標準差等于2 均值為0 種子為1
# 與之類似的還有
tf.zeros([2,3],int32) #生成全為0的矩陣
tf.ones([2,3],int32) #生成全為1的矩陣
tf.fill([2,3],6) #生成為定值的矩陣
tf.constant([3,2]) #生成給定的常數(shù)矩陣
例子
生產(chǎn)一批零件以體積和重量為特征輸入NN,通過NN后輸出一個值
$$
a_{11} = \begin{bmatrix}x_1&x_2\end{bmatrix} \times \begin{bmatrix}w_{1,1}{(1)}\w_{2,1}{(1)}\end{bmatrix} \tag1
$$
$$
a_{12} = \begin{bmatrix}x_1&x_2\end{bmatrix} \times \begin{bmatrix}w_{1,2}{(1)}\w_{2,2}{(1)}\end{bmatrix}\tag2
$$
$$
a_{13} = \begin{bmatrix}x_1&x_2\end{bmatrix}\times\begin{bmatrix}w_{1,3}{(1)}\w_{2,3}{(1)}\end{bmatrix}\tag3
$$
所以y為
$$
y = \begin{bmatrix}a_{11}&a_{12}&a_{13}\end{bmatrix}\times\begin{bmatrix}w_{11}{(2)}\w_{21}{(2)}\w_{31}^{(2)}\end{bmatrix}\tag4
$$
用tensorflow表達
1 #coding:utf-8
2 import tensorflow as tf
3
4 #定義輸入和參數(shù)
5 #一行兩列的輸入代表重量和體積
6 x = tf.constant([[0.7,0.5]])
7 w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
8 w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))
9
10 #定義向前傳播過程
11 a = tf.matmul(x,w1)
12 y = tf.matmul(a,w2)
13
14 #用會話計算結(jié)果
15
16 with tf.Session() as sess:
17 init_op = tf.global_variables_initializer()
18 sess.run(init_op)
19 print('y in tensorflow2.py is:\n',sess.run(y))