神经网络,单层感知器的训练

 1 # 神经网络,单层感知器
 2 # 参考《人工神经网络教程》韩力群
 3 # 2018-3-28
 4 
 5 import numpy
 6 
 7 # 定义一个符号函数
 8 
 9 
10 class Perceptron(object):
11 
12     def __init__(self, eta=0.01, iter_num=20):
13         self.eta = eta
14         self.iter_num = iter_num
15         self.x = numpy.array([[0, 0, 1, 1], [0, 1, 0, 1]])
16         self.x = numpy.array([[-1, -1, -1, -1], [0, 0, 1, 1], [0, 1, 0, 1]])
17         self.y_output = numpy.array([0, 0, 0, 1])
18         # self.b = numpy.zeros(1)
19         self.w = numpy.array([0.5, 0, 0])  # 权重w和偏置b初始化为0,0.5
20 
21     def Train(self):
22         for index in range(4):
23             print('第%s列'%index)
24             m = self.x[:, index]
25 
26             for i in range(self.iter_num):
27                 y = numpy.dot(self.w, m)
28 
29                 y = numpy.sign(y)
30                 dy = self.y_output[index] - y
31                 self.w = self.w + self.eta*dy*m.T
32                 print(self.w)
33         return self.w
34 
35 
36 p1 = Perceptron()
37 p1.Train()
原文地址:https://www.cnblogs.com/yangmingustb/p/8672168.html