基于numpy创建两层神经网络
时间: 2023-10-05 16:10:17 浏览: 41
可以使用以下代码基于 numpy 创建两层神经网络:
```python
import numpy as np
# 设置输入层、隐藏层、输出层的神经元个数
input_size = 3
hidden_size = 4
output_size = 2
# 初始化权重矩阵和偏差矩阵
W1 = np.random.randn(hidden_size, input_size) * 0.01
b1 = np.zeros((hidden_size, 1))
W2 = np.random.randn(output_size, hidden_size) * 0.01
b2 = np.zeros((output_size, 1))
# 定义激活函数(relu)
def relu(z):
return np.maximum(z, 0)
# 定义前向传播函数
def forward_propagation(X):
Z1 = np.dot(W1, X) + b1
A1 = relu(Z1)
Z2 = np.dot(W2, A1) + b2
A2 = softmax(Z2)
return {
'Z1': Z1,
'A1': A1,
'Z2': Z2,
'A2': A2
}
# 定义 softmax 函数
def softmax(z):
exp_z = np.exp(z)
return exp_z / np.sum(exp_z, axis=0, keepdims=True)
```
这段代码创建了一个两层神经网络,包括一个输入层、一个隐藏层和一个输出层。输入层的大小为3,隐藏层的大小为4,输出层的大小为2。使用 softmax 函数将输出转换为概率分布。在前向传播函数中,通过计算矩阵积和偏差项,以及使用 ReLU 激活函数实现了隐藏层的计算。最后,使用 softmax 激活函数实现了输出层的计算。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)