import numpy as np
import random
import math
x=np.array([[1],
[2],
[3]])
t8=2
t9=3
def sig(x):
sigmoid=1/(1+math.e**(-x))
return sigmoid
eps = 1e-4
e0 = 0.01
e1 = 0.01
e2 = 0.01
b=0.01
for i in range(10):
while e0>=eps or e1>=eps or e2>=eps:
w=np.zeros((10,8))
w1=np.zeros((8,3))
net4=w1[4,:]*x
net5=w1[5,:]*x
net6=w1[6,:]*x
net7=w1[7,:]*x
a4=sig(net4)
a5=sig(net5)
a6=sig(net6)
a7=sig(net7)
a=np.array([[0],
[0],
[0],
[0],
[a4],
[a5],
[a6],
[a7]])
net8=w[8,:]*a
net9=w[9,:]*a
y8=sig(net8)
y9=sig(net9)
r8=2*(y8-t8)*y8*(1-y8)
r9=2*(y9-t9)*y9*(1-y9)
e41 = (r8*w[8,4]+r9*w[9,4])*a4*(1-a4)*x[0][0]
e42 = (r8*w[8,4]+r9*w[9,4])*a4*(1-a4)*x[1][0]
e43 = (r8*w[8,4]+r9*w[9,4])*a4*(1-a4)*x[2][0]
e51 = (r8*w[8,5]+r9*w[9,5])*a5*(1-a5)*x[0][0]
e52 = (r8*w[8,5]+r9*w[9,5])*a5*(1-a5)*x[1][0]
e53 = (r8*w[8,5]+r9*w[9,5])*a5*(1-a5)*x[2][0]
e61 = (r8*w[8,6]+r9*w[9,6])*a6*(1-a6)*x[0][0]
e62 = (r8*w[8,6]+r9*w[9,6])*a6*(1-a6)*x[1][0]
e63 = (r8*w[8,6]+r9*w[9,6])*a6*(1-a6)*x[2][0]
e71 = (r8*w[8,7]+r9*w[9,7])*a7*(1-a7)*x[0][0]
e72 = (r8*w[8,7]+r9*w[9,7])*a7*(1-a7)*x[1][0]
e73 = (r8*w[8,7]+r9*w[9,7])*a7*(1-a7)*x[2][0]
e84 = r8*a4
e85 = r8*a5
e86 = r8*a6
e87 = r8*a7
e94 = r9*a4
e95 = r9*a5
e96 = r9*a6
e97 = r9*a7
else:
w1[4,1]=w1[4,1]-b*e41
w1[4,2]=w1[4,2]-b*e42
w1[4,3]=w1[4,3]-b*e43
w1[5,1]=w1[5,1]-b*e51
w1[5,2]=w1[5,2]-b*e52
w1[5,3]=w1[5,3]-b*e53
w1[6,1]=w1[6,1]-b*e61
w1[6,2]=w1[6,2]-b*e62
w1[6,3]=w1[6,3]-b*e63
w1[7,1]=w1[7,1]-b*e71
w1[7,2]=w1[7,2]-b*e72
w1[7,3]=w1[7,3]-b*e73
w[8,4] = w[8,4]-b*e84
w[8,5] = w[8,5]-b*e85
w[8,6] = w[8,6]-b*e86
w[8,7] = w[8,7]-b*e87
w[9,4] = w[9,4]-b*e94
w[9,5] = w[9,5]-b*e95
w[9,6] = w[9,6]-b*e96
w[9,7] = w[9,7]-b*e97
print(w1[4,1],w1[4,2],w1[4,3])
print(w1[5,1],w1[5,2],w1[5,3])
print(w1[6,1],w1[6,2],w1[6,3])
print(w1[7,1],w1[7,2],w1[7,3])
print(w[8,4],w[8,5],w[8,6],w[8,7])
print(w[9,4],w[9,5],w[9,6],w[9,7])
全连接神经网络
最新推荐文章于 2024-09-26 21:40:09 发布