用python写一个神经网络
时间: 2023-07-18 13:36:11 浏览: 86
好的,以下是一个简单的三层神经网络的Python代码示例:
```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]])
# 定义sigmoid函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 初始化权重
theta1 = 2 * np.random.random((3,4)) - 1
theta2 = 2 * np.random.random((4,1)) - 1
# 训练模型
for i in range(60000):
# 前向传播
a1 = X
z2 = np.dot(a1, theta1)
a2 = sigmoid(z2)
z3 = np.dot(a2, theta2)
y_pred = sigmoid(z3)
# 计算误差
error = y - y_pred
# 反向传播
delta3 = error * sigmoid(z3) * (1 - sigmoid(z3))
delta2 = delta3.dot(theta2.T) * sigmoid(z2) * (1 - sigmoid(z2))
# 更新权重
theta2 += a2.T.dot(delta3)
theta1 += a1.T.dot(delta2)
# 测试模型
a1 = X
z2 = np.dot(a1, theta1)
a2 = sigmoid(z2)
z3 = np.dot(a2, theta2)
y_pred = sigmoid(z3)
print(y_pred)
```
这段代码实现了一个三层神经网络,其中包含一个输入层、一个隐藏层和一个输出层,使用sigmoid函数作为激活函数。我们通过随机初始化权重,然后使用反向传播算法来更新权重,从而训练模型。最后,我们使用训练好的模型来预测输出。
阅读全文