python深度神经网络代码
时间: 2023-10-12 11:14:58 浏览: 91
以下是一个简单的python深度神经网络的代码示例:
```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.weights1 = np.random.randn(input_size, hidden_size)
self.weights2 = np.random.randn(hidden_size, output_size)
# 定义前向传播函数
def forward(self, inputs):
self.hidden = sigmoid(np.dot(inputs, self.weights1))
self.output = sigmoid(np.dot(self.hidden, self.weights2))
return self.output
# 定义反向传播函数
def backward(self, inputs, targets, learning_rate):
# 计算输出误差
output_error = targets - self.output
output_delta = output_error * sigmoid(self.output) * (1 - sigmoid(self.output))
# 计算隐藏层误差
hidden_error = np.dot(output_delta, self.weights2.T)
hidden_delta = hidden_error * sigmoid(self.hidden) * (1 - sigmoid(self.hidden))
# 更新权重矩阵
self.weights1 += learning_rate * np.dot(inputs.T, hidden_delta)
self.weights2 += learning_rate * np.dot(self.hidden.T, output_delta)
# 定义训练函数
def train(self, inputs, targets, learning_rate, epochs):
for i in range(epochs):
self.forward(inputs)
self.backward(inputs, targets, learning_rate)
# 测试神经网络
inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
targets = np.array([[0], [1], [1], [0]])
network = NeuralNetwork(2, 4, 1)
network.train(inputs, targets, 0.1, 10000)
print(network.forward(inputs))
```
以上代码示例中实现了一个简单的2层神经网络,包含一个输入层、一个隐藏层和一个输出层。其中,sigmoid函数作为激活函数,使用随机初始化的权重矩阵进行训练。在训练过程中,采用反向传播算法进行权重的更新。最终,输出网络在给定输入下的预测结果。
阅读全文
相关推荐













