你可以写一个python神经网络算法的例子吗
时间: 2023-04-05 07:01:22 浏览: 65
可以的,以下是一个简单的 Python 神经网络算法的例子:
```
import numpy as np
# 定义 sigmoid 函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义神经网络类
class NeuralNetwork:
def __init__(self, input_size, hidden_size, output_size):
self.input_size = input_size
self.hidden_size = hidden_size
self.output_size = output_size
# 初始化权重矩阵
self.weights1 = np.random.randn(self.input_size, self.hidden_size)
self.weights2 = np.random.randn(self.hidden_size, self.output_size)
def forward(self, X):
# 前向传播
self.z = np.dot(X, self.weights1)
self.z2 = sigmoid(self.z)
self.z3 = np.dot(self.z2, self.weights2)
output = sigmoid(self.z3)
return output
def backward(self, X, y, output):
# 反向传播
self.output_error = y - output
self.output_delta = self.output_error * sigmoid(self.z3, derivative=True)
self.z2_error = self.output_delta.dot(self.weights2.T)
self.z2_delta = self.z2_error * sigmoid(self.z2, derivative=True)
self.weights1 += X.T.dot(self.z2_delta)
self.weights2 += self.z2.T.dot(self.output_delta)
def train(self, X, y):
output = self.forward(X)
self.backward(X, y, output)
# 测试
X = np.array([[0,0,1],[0,1,1],[1,0,1],[1,1,1]])
y = np.array([[0],[1],[1],[0]])
nn = NeuralNetwork(3, 4, 1)
for i in range(10000):
nn.train(X, y)
print(nn.forward(np.array([1,0,0])))
```
这个例子实现了一个简单的神经网络,用于 XOR 逻辑运算。