标签:sigmod Python matmul y1 神经网络 BP W2 W1 np
Code:
import numpy as np
"""Sigmod激活函数"""
def sigmod(x):
return 1.0/(1.0 + np.exp(-x))
def BackpropCE(W1,W2,X,D):
alpha = 0.9 #学习率
N=4 #4层网络
for k in range(N):
x = X[k,:].T #对数据每行转置
d = D[k] #每行对应结果(标签)
v1 = np.matmul(W1, x)
y1 = sigmod(v1)
v = np.matmul(W2,y1)
y = sigmod(v)
e = d - y
delta = e*y*(1-y)
e1 = np.matmul(W2.T,delta)
delta1 = y1*(1-y1)*e1
dW1 = (alpha*delta1).reshape(4,1)
W1 += dW1
dW2 = alpha * delta *y1
W2 += dW2
return W1,W2
def TestBackpropCE():
X = np.array([[0,0,1],
[0,1,1],
[1,0,1],
[1,1,1]])
D = np.array([[0],[1],[1],[0]])
W1 = 2*np.random.random((4,3))-1
W2 = 2*np.random.random((1,4))-1
for epoch in range(10000):
W1,W2 = BackpropCE(W1, W2, X, D)
N = 4
for k in range(N):
x = X[k,:].T
v1 = np.matmul(W1,x)
y1 = sigmod(v1)
v = np.matmul(W2,y1)
y = sigmod(v)
print(y)
if __name__ == "__main__":
TestBackpropCE()
标签:sigmod,Python,matmul,y1,神经网络,BP,W2,W1,np 来源: https://blog.csdn.net/gezongbo/article/details/121074037
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。