import numpy as np import matplotlib.pyplot as plt #输入数据 X=np.array([[1,3,3],[1,4,3],[1,1,1]]) #标签 Y=np.array([1,1,-1]) #权值初始化,1行3列,取值范围-1到1 W=(np.random.random(3)-0.5)*2 print(W) #学习率 lr=0.11 #计算迭代次数 n=0 #神经网络输出 O=0 def update(): global X,Y,W,n,lr O=np.sign(np.dot(X,W.T)) n=n+1 Wc=lr*(Y-O.T).dot(X)/int(X.shape[0]) W=W+Wc def fun(): for _ in range(100): print(W) update() O=np.sign(np.dot(X,W.T)) if( O==Y.T).all(): print("finished:",n) break k=-W[1]/W[2] b=-W[0]/W[2] x1=[3,4] y1=[3,3] x2=[1] y2=[1] plt.figure() x_data=np.linspace(0,5) plt.plot(x_data,k*x_data+b,'r') plt.plot(x1,y1,'bo') plt.plot(x2,y2,'yo') plt.show() fun()
单层感知器代码
猜你喜欢
转载自blog.csdn.net/qq_40239482/article/details/80309501
今日推荐
周排行