3 2 向前傳播

2021-09-03 08:49:32 字數 3585 閱讀 4459

引數:權重w,用變數表示,隨機給初值。

w=tf.variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1))
tf.zeros #全0陣列

tf.ones #全1陣列

tf.fill #全定值陣列

tf.constant #直接給值

###例項如下:

tf.zeros([3,2],int32) #生成 [[0,0],[0,0],[0,0]]

tf.ones([3,2],int32) #生成[[1,1],[1,1],[1,1]]

tf.fill([3,2],6) #生成[[6,6],[6,6],[6,6]]

tf.constant([3,2,1]) #生成 [3,2,1]

神經網路實現過程:

1.準備資料集,提取特徵,作為輸入餵給神經網路(nn)

2.搭建nn結構,從輸入到輸出(先搭建計算圖,在用會話執行)

(nn向前傳播演算法----->計算輸出)

3.大量特徵資料餵給nn,迭代優化nn引數

(nn方向傳播演算法------>優化引數訓練模型)

4.使用訓練好的模型**和分類

2 #兩層簡單神經網路(全連線)

3 import tensorflow as tf

4 5 #定義輸入和引數

6 x = tf.constant([[0.7,0.5]])

7 w1 = tf.variable(tf.random_normal([2,3],stddev=1,seed=1)) #2行3列正態分佈隨機數,標準差為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 #用會話計算結果

15 with tf.session() as sess:

16 init_op = tf.global_variables_initializer()

17 sess.run(init_op)

18 print "y in tf3_3.py is:\n",sess.run(y)

19 20 '''

21 y in tf3_3.py is:

22 [[3.0904665]]

23 '''

在敲**的過程中有兩個地方容易出錯:

1.  w1 = tf.variable()中的variable的首字母要大寫,同理w2

2.在會話計算結果中,初始化變數時: init_op = tf.global_variables_initializer()中的variables中的s容易漏掉。

1 #coding:utf-8

2 #兩層簡單神經網路(全連線)

3 4 import tensorflow as tf

5 6 #定義輸入和引數

7 #用placeholder實現輸入定義 (sess.run中喂一組資料)

8 x = tf.placeholder(tf.float32,shape=(1,2))

9 w1 = tf.variable(tf.random_normal([2,3],stddev=1,seed=1))

10 w2 = tf.variable(tf.random_normal([3,1],stddev=1,seed=1))

11 12 #定義前向傳播過程

13 a = tf.matmul(x,w1)

14 y = tf.matmul(a,w2)

15 16 #用會話計算結果

17 with tf.session() as sess:

18 init_op = tf.global_variables_initializer()

19 sess.run(init_op)

20 print "y in tf3_4.py is:\n",sess.run(y,feed_dict=)

21 22 '''

23 y in tf3_3.py is:

24 [[3.0904665]]

利用placeholder向sess.run中餵入多組資料,**如下:

1 #coding:utf-8

2 #兩層簡單神經網路(全連線)

3 4 import tensorflow as tf

5 6 #定義輸入和引數

7 #用placeholder定義輸入(sess.run喂多組資料)

8 x = tf.placeholder(tf.float32,shape=(none,2)) ##因為不確定喂幾組資料,將shape的第乙個引數設定為none,第二個引數為2代表體積和重量這兩個特徵引數

9 w1 = tf.variable(tf.random_normal([2,3],stddev=1,seed=1))

10 w2 = tf.variable(tf.random_normal([3,1],stddev=1,seed=1))

11 12 #定義前向傳播過程

13 a = tf.matmul(x, w1)

14 y = tf.matmul(a, w2)

15 16 #呼叫會話計算結果

17 with tf.session() as sess:

18 init_op = tf.global_variables_initializer()

19 sess.run(init_op)

20 print "the result of tf3_5.py is:\n",sess.run(y,feed_dict=)

21 print "w1:\n",sess.run(w1)

22 print "w2:\n",sess.run(w2)

3 2前向傳播

前向傳播 搭建模型,實現推理 以全連線網路為例 例如 生產一批零件講體積x1,和重量x2為特徵輸入nn,通過nn後輸入乙個數值。神經網路圖 變數初始化,計算圖節點運算都要用會話 with結構 實現 with tf.session as sess sess.run 變數初始化 在sess.run函式中...