日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

神经网络-前向传播

發布時間:2024/7/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 神经网络-前向传播 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前向傳播神經網絡搭建

1.tensorflow庫搭建神經網絡

  • 參數:線上的權重W,用變量表示,隨機給初值。

? ? ? ? ?

  • 相關介紹
    • tf.truncated_normal():去掉過大偏離點的正太分布
    • tf.random_normal()正太分布
    • tf.random_uniform():平均分布
    • tf.zeros:全零數組,tf.zeros([3,2],int32)
    • tf.ones:全一數組,tf.ones([3,2],int32)
    • tf.fill:全定值數組,tf.ones([3,2],6)
    • tf.constant:直接給值,tf.constant([3,2,1])
  • ? ?Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1)),參數介紹:?random_normal:生成正態分布隨機數,2*3矩陣,標準差為2,均值為0,隨機種子1;隨機種子如果去掉,每次生成的隨機數將不一致
  • 變量初始化,計算圖結點運算需要用會話(with結構)實現;

2.神經網絡的實現過程:

?

  • 準備數據集,提取特征,最為輸入喂給神經網絡(Neural Network,NN)
  • 搭建NN結構,從輸入到輸出(先搭建計算圖,在用會話執行),NN 前向傳播算法----->計算輸出。
  • 大量特征數據喂給NN,迭代優化NN參數,NN反向傳播算法----->優化參數訓練模型
  • 使用訓練好的模型預測和分類。

3.前向傳播----->搭建模型,實現推理(以全連接網絡為例)

  • eg.生產一批零件將體積x1,重量x2為特征輸入NN,通過NN后輸出一個值.
    • 運算結果:
    • 中間結點值a:XW1
    • 第二層權重W2:
    • 第一層權重W1:
    • 輸入體積X:
  • 實現 #實例:兩層簡單全連接神經網絡 import tensorflow as tf#定義輸入和參數: x=tf.constant([[0.7,0.8]])#一行兩列的張量存儲體積和重量 w1=tf.Variable(tf.random.normal([2,3],stddev=1,seed=1)) w2=tf.Variable(tf.random.normal([3,1],stddev=1,seed=1)) print(w1) print(w2) #定義前向傳播 a=tf.matmul(x,w1) y=tf.matmul(a,w2)#用會話計算結果 with tf.compat.v1.Session() as sess:#tf.Session()#因版本不同,tf.Session使用tf.compat.v1.Session()代替init_op=tf.compat.v1.global_variables_initializer()#tf.global_variables_initializer()用tf.compat.v1.global_variables_initializer()sess.run(init_op)print("result is \n",sess.run(y))#實例:兩層簡單全連接神經網絡 import tensorflow as tf#定義輸入和參數: #x=tf.placeholder(tf.float32,shape=(1,2)) x=tf.compat.v1.placeholder(tf.float32,shape=(1,2))#通過placeholder實行定義輸入(sess.run喂入一組數據) w1=tf.Variable(tf.random.normal([2,3],stddev=1,seed=1)) w2=tf.Variable(tf.random.normal([3,1],stddev=1,seed=1)) print(w1) print(w2) #定義前向傳播 a=tf.matmul(x,w1) y=tf.matmul(a,w2)#用會話計算結果 with tf.compat.v1.Session() as sess:#tf.Session()#init_op=tf.global_variables_initializer()init_op=tf.compat.v1.global_variables_initializer()#tf.global_Variables_initializer()sess.run(init_op)print("result is \n",sess.run(y,feed_dict={x:[[0.7,0.5]]}))#x的一組特征喂入神經網絡。#實例:兩層簡單全連接神經網絡 import tensorflow as tf#定義輸入和參數: #x=tf.placeholder(tf.float32,shape=(1,2)) x=tf.compat.v1.placeholder(tf.float32,shape=(None,2))#通過placeholder實行定義輸入(sess.run喂入多組數據),不知道維度可以None w1=tf.Variable(tf.random.normal([2,3],stddev=1,seed=1)) w2=tf.Variable(tf.random.normal([3,1],stddev=1,seed=1)) print(w1) print(w2) #定義前向傳播 a=tf.matmul(x,w1) y=tf.matmul(a,w2)#用會話計算結果 with tf.compat.v1.Session() as sess:#tf.Session()#init_op=tf.global_variables_initializer()init_op=tf.compat.v1.global_variables_initializer()#tf.global_Variables_initializer()sess.run(init_op)print("result is \n",sess.run(y,feed_dict={x:[[0.7,0.5],[0.2,0.3],[0.3,0.4],[0.4,0.5]]}))#x的一組特征喂入神經網絡。print("w1\n",sess.run(w1))print("w2\n",sess.run(w2))

    ?運算結果:

  • ?

總結

以上是生活随笔為你收集整理的神经网络-前向传播的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。