1、卷积的实现
从左到右的矩阵可以看作:一幅图像、过滤器filter(核)、另一幅图像
编程中卷积的实现:支持卷积的深度学习框架都会有一些函数实现这个卷积运算
python:conv_forward函数
TensorFlow:tf.nn.conv2d函数
Keras:Conv2D函数
2、卷积完成垂直边缘检测
经过这样的卷积操作,我们可以得到明暗的交界处
3、正边缘和负边缘的区别:由亮变暗和由暗变量的边缘过度
30:表示由亮变暗;-30表示由暗变亮
4、水平和垂直边缘检测器,如下图
不同的过滤器:
我们可以把过滤器中的数值设置为需要学习的参数,通过反向传播,可以学习到不同的过滤器,实现不同的边缘检测效果
5、填充(Padding)
通用公式
n*n图像使用f*f的过滤器得到(n-f+1)*(n-f+1)的输出
缺点:①每次使用一个卷积操作,图像都会缩小
②图像角落或者边缘的像素只会在输出中被使用一次,丢失了图片上许多边界的信息
解决办法:填充
填充完再卷积的话:输出:(n+2p-f+1)*(n+2p-f+1)
到底要填充多少:
Valid:没有填充;n*n图像使用f*f的过滤器得到(n-f+1)*(n-f+1)的输出
Same:输出大小=输入大小;f几乎永远是奇数
6、卷积步长stride
当不能整除的时候,就向下取整