当前位置: 首页 > news >正文

卷积操作尺寸计算公式

卷积操作尺寸计算公式

  • 卷积操作尺寸计算公式
    • 通用公式
    • 通用公式(含Dilation)
      • 关键说明

卷积操作尺寸计算公式

在深度学习和图像处理中,卷积操作会改变输入图像的尺寸。计算卷积后图像尺寸的通用公式取决于以下几个参数:

  • 输入图像尺寸:通常表示为高度 HinH_{\text{in}}Hin 和宽度 WinW_{\text{in}}Win(单位:像素)。
  • 卷积核大小:通常表示为高度 KhK_hKh 和宽度 KwK_wKw(单位:像素)。如果卷积核是正方形的(常见情况),则 Kh=Kw=KK_h = K_w = KKh=Kw=K
  • 步幅(stride):卷积核在图像上移动的步长,通常表示为高度方向步幅 ShS_hSh 和宽度方向步幅 SwS_wSw。如果步幅相同,则 Sh=Sw=SS_h = S_w = SSh=Sw=S
  • 填充(padding):在图像边缘添加的像素数,通常表示为高度方向填充 PhP_hPh 和宽度方向填充 PwP_wPw。如果填充对称,则 Ph=Pw=PP_h = P_w = PPh=Pw=P。填充可以是零填充(常见)或其他方式。

通用公式

卷积后输出图像的高度 HoutH_{\text{out}}Hout 和宽度 WoutW_{\text{out}}Wout 的计算公式如下:

Hout=⌊Hin+2Ph−KhSh⌋+1H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2P_h - K_h}{S_h} \right\rfloor + 1 Hout=ShHin+2PhKh+1

Wout=⌊Win+2Pw−KwSw⌋+1W_{\text{out}} = \left\lfloor \frac{W_{\text{in}} + 2P_w - K_w}{S_w} \right\rfloor + 1 Wout=SwWin+2PwKw+1

其中:

  • ⌊⋅⌋\left\lfloor \cdot \right\rfloor 表示向下取整(floor 函数),确保结果为整数。
  • 公式假设卷积操作是标准的(无膨胀或其他修改)。

通用公式(含Dilation)

当卷积操作包含膨胀率(dilation rate)时,卷积核的感受野会扩大,导致输出尺寸进一步变化。

设:

  • 输入图像尺寸:高度 HinH_{\text{in}}Hin,宽度 WinW_{\text{in}}Win
  • 卷积核尺寸:高度 KhK_hKh,宽度 KwK_wKw
  • 膨胀率:高度方向 DhD_hDh,宽度方向 DwD_wDw(通常 Dh=Dw=DD_h = D_w = DDh=Dw=D
  • 步幅:高度方向 ShS_hSh,宽度方向 SwS_wSw
  • 填充:高度方向 PhP_hPh,宽度方向 PwP_wPw

输出尺寸计算公式为:
Hout=⌊Hin+2Ph−[(Kh−1)×Dh+1]Sh⌋+1Wout=⌊Win+2Pw−[(Kw−1)×Dw+1]Sw⌋+1\boxed{ \begin{aligned} H_{\text{out}} &= \left\lfloor \frac{H_{\text{in}} + 2P_h - [\ (K_h - 1) \times D_h + 1\ ]}{S_h} \right\rfloor + 1 \\ W_{\text{out}} &= \left\lfloor \frac{W_{\text{in}} + 2P_w - [\ (K_w - 1) \times D_w + 1\ ]}{S_w} \right\rfloor + 1 \end{aligned} } HoutWout=ShHin+2Ph[ (Kh1)×Dh+1 ]+1=SwWin+2Pw[ (Kw1)×Dw+1 ]+1

关键说明

  1. 膨胀后的卷积核有效尺寸

    • 膨胀操作通过在卷积核元素间插入 D−1D-1D1 个空格来扩大感受野。
    • 膨胀后的有效高度Kh′=(Kh−1)×Dh+1K_h' = (K_h - 1) \times D_h + 1Kh=(Kh1)×Dh+1
    • 膨胀后的有效宽度Kw′=(Kw−1)×Dw+1K_w' = (K_w - 1) \times D_w + 1Kw=(Kw1)×Dw+1
    • 公式中的 [(Kh−1)×Dh+1][\ (K_h - 1) \times D_h + 1\ ][ (Kh1)×Dh+1 ][(Kw−1)×Dw+1][\ (K_w - 1) \times D_w + 1\ ][ (Kw1)×Dw+1 ] 即膨胀后的有效核尺寸。
  2. 公式逻辑

    • 分子部分:
      Hin+2Ph−Kh′H_{\text{in}} + 2P_h - K_h'Hin+2PhKh(宽度同理)
      表示输入尺寸加填充后,减去膨胀后的有效核尺寸。
    • 分母部分:除以步幅 ShS_hSh(或 SwS_wSw)。
    • 取整操作 ⌊⋅⌋\left\lfloor \cdot \right\rfloor:确保输出为整数像素位置。
    • +1:包含卷积核起始位置对应的输出。
  3. 当膨胀率 D=1D=1D=1
    公式退化为标准卷积(无膨胀),因为:
    Kh′=(Kh−1)×1+1=KhK_h' = (K_h - 1) \times 1 + 1 = K_hKh=(Kh1)×1+1=Kh

http://www.lryc.cn/news/596321.html

相关文章:

  • @DateTimeFormat、@JsonFormat、@JSONField区别及用法
  • Linux_基础IO详解
  • 聊聊DevOps,开发与运维如何分工协作?
  • 什么是检索增强生成(RAG)?
  • 引擎动画系统设计
  • 【PTA数据结构 | C语言版】不相交集基本操作
  • Visual Studio Code 远端云服务器开发使用指南
  • 服务器连接Hugging Face
  • 【机器学习深度学习】微调量化与模型导出量化:区分与应用
  • HttpSecurity详解
  • 生存分析机器学习问题
  • Oracle定时清理归档日志
  • 通过 Docker 部署测试 CODESYS PLC示例
  • Linux_Ext系列文件系统基本认识(一)
  • 【实战】Dify从0到100进阶--文档解读(11)其他节点
  • 使用空间数据训练机器学习模型的实用工作流程
  • 时序数据库IoTDB好不好?
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第二十二讲)
  • 【LINUX】CentOS Stream 9 手动配置网络
  • CentOS 8文件描述符耗尽检测与处理实战指南
  • JMeter 实现 Protobuf 加密解密
  • vue2.0 + elementui + i18n:实现多语言功能
  • SpringBoot集成PDFBox实现PDF导出(表格导出、分页页码、电子签章与数字签名)
  • Excel file format cannot be determined, you must specify an engine manually.
  • SparkSQL 聚合函数 COUNT 对 NULL 值的处理
  • MDC(Mapped Diagnostic Context) 的核心介绍与使用教程
  • CMake项目中的main函数重复定义错误
  • 拆分、合并PDF
  • 实现分布式锁
  • 数据库表介绍