简单的分类神经网络代码
时间: 2023-03-28 13:01:50 浏览: 83
以下是一个简单的分类神经网络的代码示例:
```python
import numpy as np
# 定义激活函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义神经网络类
class NeuralNetwork:
def __init__(self, input_size, hidden_size, output_size):
self.weights1 = np.random.randn(input_size, hidden_size)
self.weights2 = np.random.randn(hidden_size, 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
# 创建神经网络对象
nn = NeuralNetwork(2, 3, 1)
# 输入数据
X = np.array([[, ], [, 1], [1, ], [1, 1]])
# 目标输出
y = np.array([[], [1], [1], []])
# 训练神经网络
for i in range(10000):
output = nn.forward(X)
error = y - output
delta = error * sigmoid(output)
nn.weights2 += np.dot(nn.z2.T, delta)
delta2 = np.dot(delta, nn.weights2.T) * sigmoid(nn.z2)
nn.weights1 += np.dot(X.T, delta2)
# 测试神经网络
test_input = np.array([[, ], [, 1], [1, ], [1, 1]])
print(nn.forward(test_input))
```
这是一个简单的两层神经网络,用于解决二分类问题。其中,sigmoid 函数作为激活函数,用于将神经元的输出映射到 到 1 之间。神经网络的训练过程使用反向传播算法,通过不断调整权重,使得神经网络的输出尽可能接近目标输出。最后,我们可以使用训练好的神经网络对新的数据进行分类。