神经网络或的运算

详情查看:https://blog.csdn.net/u013733326/article/details/78654974

import numpy as np
'''
神经网络或的运算
'''

a=0.5
b=0
x=np.array([
[0,1,1],
[0,1,0],
[0,0,0],
[0,0,1],
])
#期望的输出
d=np.array([1,1,0,1])
#权重
weigth=np.array([b,0,0])
'''
激活函数
'''
def sgn(v):
if v>0:
return 1
else:
return 0
#将传入的值进行矩阵乘法,然后传给激活函数
def comp(current_weigth,my_x):
#np.dot是矩阵乘法
#weigth.T为转置
return sgn(np.dot(current_weigth.T,my_x))
#更新权重
def update_weight(old_weigth,my_d,my_x,a):
return old_weigth+a*(my_d-comp(old_weigth,my_x))*my_x
#开始训练

print('开始训练:',weigth)
i=0
for xn in x:
weigth=update_weight(weigth,d[i],xn,a)
i+=1
print("这是第",i,"次训练后的权重",weigth)

#训练好完毕开始验证
for xn in x:
print("当前的xn=",xn,", ",xn[1],"与",xn[2],"当前逻辑或计算的结果为",comp(weigth,xn))

结果显示截图:



猜你喜欢

转载自www.cnblogs.com/cyh1989/p/9101952.html