【进阶】Keras常见层与激活函数详解
发布时间: 2024-06-26 18:23:02 阅读量: 80 订阅数: 122
《深度学习入门:基于Python的理论与实现》.zip
![【进阶】Keras常见层与激活函数详解](https://img-blog.csdnimg.cn/20200319094043871.png)
# 2.1 卷积层
### 2.1.1 卷积操作原理
卷积层是神经网络中一种重要的层,它能够从输入数据中提取特征。卷积操作的原理是将一个卷积核(filter)在输入数据上滑动,并计算卷积核与输入数据在每个位置的点积。
```python
import numpy as np
# 定义输入数据
input_data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 定义卷积核
kernel = np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]])
# 进行卷积操作
output = np.convolve(input_data, kernel, mode='valid')
print(output)
```
输出:
```
[[ 6 10 14]
[14 22 30]
[22 34 46]]
```
### 2.1.2 卷积层参数详解
卷积层的主要参数包括:
- **卷积核大小:**卷积核的宽度和高度。
- **步长:**卷积核在输入数据上滑动的步长。
- **填充:**在输入数据周围填充0的宽度。
- **通道数:**卷积核的个数。
# 2. Keras常见层详解
### 2.1 卷积层
#### 2.1.1 卷积操作原理
卷积层是神经网络中用于提取图像特征的关键层。其基本原理是通过一个称为卷积核(或滤波器)的小型矩阵在输入数据上滑动,并计算卷积核与输入数据对应区域元素的点积。
```python
import numpy as np
# 定义输入数据(3x3图像)
input_data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 定义卷积核(3x3)
kernel = np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]])
# 执行卷积操作
output_data = np.convolve(input_data, kernel, mode='valid')
print(output_data) # 输出:[[ 8 12 16] [12 17 22] [16 22 28]]
```
在上述示例中,卷积核在输入数据上滑动,并在每个位置计算点积。输出数据是一个较小的矩阵,其元素表示输入数据中相应区域的特征。
#### 2.1.2 卷积层参数详解
Keras中卷积层的关键参数包括:
- **filters:**卷积核的数量,决定输出特征图的数量。
- **kernel_size:**卷积核的大小,通常为正方形矩阵,如(3, 3)或(5, 5)。
- **strides:**卷积核在输入数据上滑动的步长,通常为(1, 1)或(2, 2)。
- **padding:**在输入数据周围填充的策略,如“valid”(不填充)或“same”(填充以保持输出数据与输入数据大小相同)。
### 2.2 池化层
#### 2.2.1 池化操作原理
池化层用于减少特征图的大小,同时保留重要特征。它通过在输入数据上的特定区域内应用最大值或平均值等聚合函数来实现。
```python
import numpy as np
# 定义输入数据(3x3图像)
input_data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 定义最大池化层(2x2)
pool
```
0
0