用单层感知机组成多层感知机来实现 异或门 函数定义python
时间: 2024-05-22 07:15:50 浏览: 95
import numpy as np
# 定义激活函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义多层感知机
class MLP:
def __init__(self):
self.w1 = np.array([[20, 20], [-20, -20]]) # 第一层权重
self.b1 = np.array([-10, 30]) # 第一层偏置
self.w2 = np.array([[20], [20]]) # 第二层权重
self.b2 = np.array([-30]) # 第二层偏置
def forward(self, x):
# 第一层
a1 = np.dot(x, self.w1) + self.b1
z1 = sigmoid(a1)
# 第二层
a2 = np.dot(z1, self.w2) + self.b2
z2 = sigmoid(a2)
return z2
# 测试异或门函数
mlp = MLP()
print("0 xor 0 = ", mlp.forward(np.array([0, 0])))
print("0 xor 1 = ", mlp.forward(np.array([0, 1])))
print("1 xor 0 = ", mlp.forward(np.array([1, 0])))
print("1 xor 1 = ", mlp.forward(np.array([1, 1])))
阅读全文