深度神经网络python代码
时间: 2023-10-12 07:14:46 浏览: 39
以下是一个简单的深度神经网络的 Python 代码示例:
```python
import numpy as np
# 定义 sigmoid 函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义网络结构
class NeuralNetwork:
def __init__(self, input_nodes, hidden_nodes, output_nodes):
self.weights_input_hidden = np.random.normal(0.0, pow(input_nodes, -0.5), (input_nodes, hidden_nodes))
self.weights_hidden_output = np.random.normal(0.0, pow(hidden_nodes, -0.5), (hidden_nodes, output_nodes))
self.activation_function = sigmoid
# 前向传播
def forward(self, inputs):
hidden_inputs = np.dot(inputs, self.weights_input_hidden)
hidden_outputs = self.activation_function(hidden_inputs)
final_inputs = np.dot(hidden_outputs, self.weights_hidden_output)
final_outputs = self.activation_function(final_inputs)
return final_outputs
# 反向传播
def backward(self, inputs, targets, outputs):
output_errors = targets - outputs
hidden_errors = np.dot(output_errors, self.weights_hidden_output.T)
hidden_grad = hidden_outputs * (1 - hidden_outputs)
self.weights_hidden_output += learning_rate * np.dot(hidden_outputs.T, output_errors)
self.weights_input_hidden += learning_rate * np.dot(inputs.T, hidden_errors * hidden_grad)
# 训练
def train(self, inputs_list, targets_list):
inputs = np.array(inputs_list, ndmin=2).T
targets = np.array(targets_list, ndmin=2).T
outputs = self.forward(inputs)
self.backward(inputs, targets, outputs)
```
这个代码实现了一个包含一个输入层、一个隐藏层和一个输出层的深度神经网络。其中,`forward` 方法实现了前向传播,`backward` 方法实现了反向传播,`train` 方法用于训练网络。