zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

数模 04BP神经网络代码

2023-09-11 14:20:23 时间

由于内容过于简单,在学习深度学习时已经会了,matlab代码需要的请评论,下面为之前学过的python代码

BP神经网络结构:

 

w = [0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65]
b=[0.35,0.65]
I=[5,10]  # 输入
import numpy as np
# 激活函数
def sigmoid(z):
    return 1.0/(1 + np.e**(-z))
# 调用激活函数
def f1(w,b,I):
    #FP
    h1 = sigmoid(w[0]*I[0] + w[1]*I[1] + b[0])
    h2=sigmoid(w[2]*I[0]+w[3]*I[1]+b[0])
    h3=sigmoid(w[4]*I[0]+w[5]*I[1]+b[0])
    o1=sigmoid(w[6]*h1+w[8]*h2+w[10]*h3+b[1])
    o2=sigmoid(w[7]*h1+w[9]*h2+w[11]*h3+b[1])
    
    #BP
    t1=-(0.01-o1)*o1*(1-o1)
    t2=-(0.99-o2)*o2*(1-o2)
    
    #更新w
    w[6] = w[6] - 0.5 * (t1 * h1)
    w[8] = w[8] - 0.5 * (t1 * h2)
    w[10] = w[10] - 0.5 * (t1 * h3)
    w[7] = w[7] - 0.5 * (t2 * h1)
    w[9] = w[9] - 0.5 * (t2 * h2)
    w[11] = w[11] - 0.5 * (t2 * h3)
    
    w[0] = w[0] - 0.5 * (t1*w[6] + t2*w[7])*h1*(1-h1)*I[0]
    w[1] = w[1] - 0.5 * (t1*w[6] + t2*w[7])*h1*(1-h1)*I[1]
    w[2] = w[2] - 0.5 * (t1*w[8] + t2*w[9])*h2*(1-h2)*I[0]
    w[3] = w[3] - 0.5 * (t1*w[8] + t2*w[9])*h2*(1-h2)*I[1]
    w[4] = w[4] - 0.5 * (t1*w[10] + t2*w[11])*h3*(1-h3)*I[0]
    w[5] = w[5] - 0.5 * (t1*w[10] + t2*w[11])*h3*(1-h3)*I[1]
    
    print("-"*20)
    print(w)
    print("-"*20)
    return w
for i in range(1000):
    print('第%d个'%i)
    w=f1(w,b,I)

输出结果如图: