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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

BP神经网络 python实现

發布時間:2023/12/3 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 BP神经网络 python实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原理部分

BP神經網絡(算法整體思路及原理+手寫公式推導)_禿頭小蘇的博客-CSDN博客_bp神經網絡算法流程圖

非常感謝這位博主

import timeimport numpy as np
from BPNETpredata import traindata
from BPNETpredata import labledata
# BPNNdef sigmoid(x):return 1.0 / (1.0 + np.exp(-x))def input(traindata):for i in traindata:return len(i)def var(y1, y2, rate):  # y1:out y2:static outreturn -rate * (y2 - y1) * y1 * (1 - y1)rate = 0.6
w1 = -1 + 2 * np.random.rand(9, 3)
w2 = -1 + 2 * np.random.rand(3, 1)
b1 = -1 + 2 * np.random.rand(1, 3)
b2 = -1 + 2 * np.random.rand(1, 1)
epoch = 9999999999999# forward 3hidden 9input  1.1bias 1 out 3level
# INTALIZING
def bpnntrain(w1, w2, b1, b2, a, c, epoch, rate):for epoch in range(epoch):# step foward 1hidden = np.dot(a, w1)hidden = hidden - b1shidden = []for j in hidden:shidden.append(sigmoid(j))out = sigmoid(np.dot(shidden, w2)[0] - b2[0][0])# work out errorloss = 0.5 * pow((c[0] - out[0]), 2)  # loss functionaccurate = (out[0] - c[0]) / c[0]if pow(pow(accurate, 2), 0.5) < 0.01:print(epoch, out[0], c[0], accurate)break# update b2varb2 = var(out[0], c[0], rate)b2[0][0] = b2[0][0] + varb2# update w2for i in range(len(shidden[0])):w2[i][0] = w2[i][0] - var(out[0], c[0], rate) * shidden[0][i]# update b1for i in range(len(shidden[0])):b1[0][i] = b1[0][i] + var(out[0], c[0], rate) * w2[i][0] * shidden[0][i] * (1 - shidden[0][i])# update w1for i in range(len(w1)):for j in range(len(shidden[0])):w1[i][j] = w1[i][j] + var(out[0], c[0], rate) * w2[j][0] * shidden[0][j] * (1 - shidden[0][j]) * a[i]return [w1, w2, b1, b2]
#train
for i in traindata:for j in labledata:a=ic=[j]qaq=bpnntrain(w1, w2, b1, b2, a, c, epoch, rate)
#predict
def bpnnpredict(w1,w2,b1,b2,a,c):hidden = np.dot(a, w1)hidden = hidden - b1shidden = []for j in hidden:shidden.append(sigmoid(j))out = sigmoid(np.dot(shidden, w2)[0] - b2[0][0])# work out errorloss = 0.5 * pow((c[0] - out[0]), 2)  # loss functionaccurate = (out[0] - c[0]) / c[0]print(out[0],c[0],accurate)
list1=[0.123,0.124,0.125,0.124,0.1256,0.111,0.12312,0.1285,0.1231245]
list2=[1]bpnnpredict(qaq[0],qaq[1],qaq[2],qaq[3],list1,list2)

總結

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

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