1.请编程实现一个3层神经网络,用于解决分类问题:输入层(第0 层)有2 个神经元,第1 个隐藏层(第1 层)有3 个神经元,第2 个隐藏层(第2 层)有8 个神经元,输出层(第3 层)有5 个神经元。权重设置由您来设定。并请给出当输入为10.0和18.0时的输出。
时间: 2024-11-12 13:45:28 浏览: 20
在这个例子中,我们将创建一个基于 Python 的三层神经网络模型,使用 NumPy 库来实现权重矩阵和激活函数。首先,我们需要导入所需的库:
```python
import numpy as np
# 定义激活函数(例如,ReLU 或 Sigmoid)
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 隐藏层激活函数的导数
def sigmoid_derivative(x):
return x * (1 - x)
# 定义神经网络模型
class ThreeLayerNN:
def __init__(self, input_size, hidden_layer1_size, hidden_layer2_size, output_size):
self.weights01 = np.random.randn(input_size, hidden_layer1_size) * 0.1
self.weights12 = np.random.randn(hidden_layer1_size, hidden_layer2_size) * 0.1
self.weights23 = np.random.randn(hidden_layer2_size, output_size) * 0.1
def forward_pass(self, inputs):
self.layer0 = inputs
self.layer1 = sigmoid(np.dot(self.layer0, self.weights01))
self.layer2 = sigmoid(np.dot(self.layer1, self.weights12))
self.layer3 = sigmoid(np.dot(self.layer2, self.weights23))
return self.layer3
# 创建神经网络实例并提供输入
nn = ThreeLayerNN(2, 3, 8, 5)
input_data = np.array([10.0, 18.0])
output = nn.forward_pass(input_data)
print(f"输入 {input_data} 经过神经网络后的输出是:{output}")
```
当你运行这段代码时,它会生成随机权重,并计算给定输入 [10.0, 18.0] 通过网络的输出。注意,由于权重是随机初始化的,所以每次运行都会得到不同的输出。如果需要,可以添加训练循环来优化网络权重。
阅读全文