神经网络算法模板python
时间: 2023-09-06 21:08:36 浏览: 137
神经网络算法模板的Python代码如下所示:
```python
import numpy as np
class NeuralNetwork:
def __init__(self, num_inputs, num_hidden, num_outputs):
self.num_inputs = num_inputs
self.num_hidden = num_hidden
self.num_outputs = num_outputs
self.weights1 = np.random.randn(self.num_inputs, self.num_hidden)
self.weights2 = np.random.randn(self.num_hidden, self.num_outputs)
def forward(self, inputs):
self.hidden = np.dot(inputs, self.weights1)
self.hidden_activation = self.sigmoid(self.hidden)
self.output = np.dot(self.hidden_activation, self.weights2)
self.output_activation = self.sigmoid(self.output)
return self.output_activation
def sigmoid(self, x):
return 1 / (1 + np.exp(-x))
def sigmoid_derivative(self, x):
return x * (1 - x)
def backward(self, inputs, targets, learning_rate):
output_error = targets - self.output_activation
output_delta = output_error * self.sigmoid_derivative(self.output_activation)
hidden_error = output_delta.dot(self.weights2.T)
hidden_delta = hidden_error * self.sigmoid_derivative(self.hidden_activation)
self.weights2 += self.hidden_activation.T.dot(output_delta) * learning_rate
self.weights1 += inputs.T.dot(hidden_delta) * learning_rate
def train(self, inputs, targets, num_epochs, learning_rate):
for epoch in range(num_epochs):
output = self.forward(inputs)
self.backward(inputs, targets, learning_rate)
def predict(self, inputs):
return self.forward(inputs)
```
这是一个简单的三层全连接神经网络的代码模板。通过调用`NeuralNetwork`类的方法,可以进行训练和预测。你可以根据自己的需求和数据进行相应的修改和调整。
阅读全文