写一个两层深度学习网络
时间: 2024-04-05 14:08:20 浏览: 6
好的,下面是一个简单的两层深度学习网络的代码示例:
```python
import numpy as np
# 输入数据
X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
# 目标输出
y = np.array([[0, 1, 1, 0]]).T
# 随机初始化权重
np.random.seed(1)
w1 = 2 * np.random.random((3, 4)) - 1
w2 = 2 * np.random.random((4, 1)) - 1
# 训练模型
for i in range(60000):
# 前向传播
layer1 = 1 / (1 + np.exp(-(np.dot(X, w1))))
layer2 = 1 / (1 + np.exp(-(np.dot(layer1, w2))))
# 计算误差
layer2_error = y - layer2
if (i % 10000) == 0:
print("Error:" + str(np.mean(np.abs(layer2_error))))
# 反向传播
layer2_delta = layer2_error * (layer2 * (1 - layer2))
layer1_error = layer2_delta.dot(w2.T)
layer1_delta = layer1_error * (layer1 * (1 - layer1))
# 更新权重
w2 += layer1.T.dot(layer2_delta)
w1 += X.T.dot(layer1_delta)
print("Output after training")
print(layer2)
```
这个网络有两层,一个输入层和一个输出层。其中,输入层有三个节点,输出层有一个节点。这个网络使用了 sigmoid 激活函数并采用了反向传播算法进行训练。