用python写一个神经网络
时间: 2024-05-02 10:18:52 浏览: 8
以下是一个简单的神经网络实现示例,使用Python中的numpy库:
``` python
import numpy as np
# 定义激活函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 输入数据
X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
# 输出数据
y = np.array([[0], [1], [1], [0]])
# 定义随机种子,确保每次运行结果相同
np.random.seed(1)
# 初始化权重矩阵,两个输入和一个输出节点
syn0 = 2 * np.random.random((3, 4)) - 1
syn1 = 2 * np.random.random((4, 1)) - 1
# 迭代训练
for j in range(60000):
# 正向传播
l0 = X
l1 = sigmoid(np.dot(l0, syn0))
l2 = sigmoid(np.dot(l1, syn1))
# 计算误差
l2_error = y - l2
# 反向传播
l2_delta = l2_error * sigmoid(l2, derivative=True)
l1_error = l2_delta.dot(syn1.T)
l1_delta = l1_error * sigmoid(l1, derivative=True)
# 更新权重
syn1 += l1.T.dot(l2_delta)
syn0 += l0.T.dot(l1_delta)
print("输出结果:")
print(l2)
```
这个神经网络有一个输入层、一个隐藏层和一个输出层。输入数据在输入层中传递,然后通过隐藏层到达输出层。在正向传播过程中,将输入数据乘以权重矩阵并通过激活函数进行处理。在反向传播过程中,将误差通过权重矩阵反向传播并更新权重。最终,使用训练后的权重进行预测。