博客
关于我
Padding
阅读量:795 次
发布时间:2023-02-26

本文共 869 字,大约阅读时间需要 2 分钟。

为了构建深度神经网络,我们需要掌握一个基本的卷积操作——Padding(填充)。了解它是如何工作的,能帮助我们更好地设计和应用卷积网络。

当使用一个3×3的过滤器对一个6×6的图像进行卷积操作时,最终会得到一个4×4的输出矩阵。这背后的数学原理是:如果有一个n×n的图像,用f×f的过滤器进行卷积,那么输出的维度将是(n - f + 1)×(n - f + 1)。在本例中,6 - 3 + 1 = 4。

这样会有两个缺点:①每次卷积操作后,图像会缩小。②边缘或角落区域的像素在输出中贡献较少,导致边缘信息丢失。为了解决这些问题,可以在卷积操作之前对图像进行填充。在本例中,可以在图像边缘添加一层像素(如上图中的蓝线)。这样,原本的6×6图像会被填充成一个8×8的图像。然后用3×3的过滤器对这个8×8的图像进行卷积,输出大小将从4×4恢复到6×6。通常,我们使用0填充,也就是在四周填充一层像素(p=1)。根据计算公式,输出大小将是n + 2p - f + 1。在本例中,6 + 2×1 - 3 + 1 = 6。

这种填充方式减弱了边缘信息丢失的问题。另一种选择是填充两个像素点。关于填充的数量p,通常有两种选择:Valid卷积(p=0)和Same卷积(p=1)。在Same卷积中,输出大小与输入大小相同。通过公式n + 2p - f + 1 = n,可以求解p的值,得出p = (f - 1)/2。

在计算机视觉中,过滤器尺寸f通常是奇数。这背后有两个原因:①如果f是偶数,填充必须是非对称的(asymmetric padding)。只有当f是奇数时,Same卷积才能有自然的填充方式。②当f是奇数时,过滤器有一个中心像素点,便于定位。

虽然这些可能不是全部原因,但在文献中,3×3的过滤器最为常见。因此,Andrew建议只使用奇数尺寸的过滤器。

总的来说,Padding是卷积操作中的一个重要概念。通过选择填充类型(如Valid或Same)或指定填充数量p,可以控制输出大小。Same卷积是最常用的选择,因为它确保输出与输入大小一致。

转载地址:http://rcvfk.baihongyu.com/

你可能感兴趣的文章
OpenStack实践系列⑨云硬盘服务Cinder
查看>>
OpenStack架构
查看>>
OpenStack版本升级与故障排查实战
查看>>
OpenStack的基本概念与架构详解
查看>>
Openstack的视频学习
查看>>
openstack虚拟机迁移live-migration中libvirt配置
查看>>
OpenStack项目管理实战
查看>>
OpenStreetMap初探(一)——了解OpenStreetMap
查看>>
openSUSE 13.1 Milestone 2 发布
查看>>
openSUSE推出独立 GUI 包管理工具:YQPkg,简化了整个软件包管理流程
查看>>
OpenVSwtich(OVS)Vlan间路由实战 附实验环境
查看>>
Openwrt LuCI模块练习详细步骤
查看>>
OpenWrt固件编译刷机完全总结
查看>>
Open××× for Linux搭建之二
查看>>
Open×××有线网络时使用正常,无线网络时使用报错的解决方案
查看>>
ORA-00942 表或视图不存在
查看>>
ORA-01795: 列表中的最大表达式数为 1000
查看>>
ora-12541:tns:no listener
查看>>
【docker知识】联合文件系统(unionFS)原理
查看>>
ORACEL学习--理解over()函数
查看>>