filters:卷积核(就是过滤器)的数目(即输出的维度)
kernel_size:单个整数或由两个整数构成的list/tuple,卷积核(过滤器)的宽度和长度。(kernel n.核心,要点,[计]内核)如为单个整数,则表示在各个空间维度的相同长度。
strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rata均不兼容。
padding:补0策略,为"valid", "same" 。
"valid"不填充,eg:图像28*28,过滤器5*5,步长为5,最后三行三列舍弃,输出大小为:[(28-3-5)/5]+1=5,即输出图像是5*5的,代表只进行有效的卷积,即对边界数据不处理。
"same"填充,当滑动步长大于1时:填充数=K-I%S(K:卷积核边长,I:输入图像边长,S:滑动步长),滑动步长为1时,填充数是卷积核边长减1,eg:5*5的图用3*3的核,步长为1时same填充之后是7*7,代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同,因为卷积核移动时在边缘会出现大小不够的情况。
1. 导入keras
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
2. Conv2D
构建卷积层。用于从输入的高维数组中提取特征。卷积层的每个过滤器就是一个特征映射,用于提取某一个特征,过滤器的数量决定了卷积层输出特征个数,或者输出深度。因此,图片等高维数据每经过一个卷积层,深度都会增加,并且等于过滤器的数量。
Conv2D(filters, kernel_size, strides, padding, activation=‘relu’, input_shape)
filters
: 过滤器数量kernel_size
: 指定(方形)卷积窗口的高和宽的数字strides
: 卷积步长, 默认为 1padding
: 卷积如何处理边