import numpy as np
import matplotlib.pyplot as plt
# 定义输入数据
X = np.array([[1,3,3],[1,4,3],[1,1,1],[1,2,1]])# 定义标签
T = np.array([[1],[1],[-1],[-1]])# 权值初始化
W = np.random.random([3,1])# 学习率设置
lr =0.1# 神经网络输出
Y =0
# 更新权值函数deftrain():global X,Y,W,lr,T
# 同时计算4个数据的预测值,Y(4,1)
Y = np.sign(np.dot(X,W))# T-Y得到4个标签值与预测值的误差E(4,1)
E = T - Y
# 计算权值的变化
delta_W = lr *(X.T.dot(E))/ X.shape[0]# 更新权值
W = W +delta_W
# 训练模型for i inrange(100):# 更新权值
train()# 打印当前训练次数print('epoch:',i+1)# 当前的权值print('weights:',W)# 计算当前输出
Y = np.sign(np.dot(X,W))# all()表示Y中的所有值跟T中的所有值都对应相等,才为真if(Y == T).all():print('Finished')# 跳出循环break