唉,我们实验课的作业,感觉写的挺不错的,供大家相互学习吧
这里把三种门电路集中在一个类里了
# 门电路感知机
class Perceptron():
def __init__(self, type = "与门"):
"""
感知机同时包括三种门电路
w, b分别为与门,或门,与非门的权重和偏置
由type控制门电路的种类
"""
self.type = type
self.w1 = np.array([1, 1])
self.w2 = np.array([1, 1])
self.w3 = np.array([-1, -1])
self.b1 = -1
self.b2 = 0
self.b3 = 2
def f(self, x):
if x>0:
return 1
else:
return 0
# 与门
def call_1(self, Input):
return self.f(self.w1 @ Input.T + self.b1)
# 非门
def call_2(self, Input):
return self.f(self.w2 @ Input.T + self.b2)
# 与非门
def call_3(self, Input):
return self.f(self.w3 @ Input.T + self.b3)
def Men(self, Input):
if self.type == "与门":
return self.call_1(Input)
elif self.type == "或门":
return self.call_2(Input)
elif self.type == "与非门":
return self.call_3(Input)
else:
return "错误"