深度学习32:卷积神经网络:卷积层(卷积运算,填充,步幅)

目录标题

一、卷积运算

卷积层对数据进行卷积运算,卷积运算相当于图像处理中得滤波器运算

对于输入数据,卷积运算以一定间隔滑动卷积核的窗口并应用。将各个位置上卷积核的元素和输入的对应元素相乘,然后再求和(也称为乘积累加运算、矩阵的内积)。

CNN中,卷积核得参数对应之前得权重。并且CNN中也存在偏置

二、填充

在进行卷积层的处理之前,有时要向输入数据的周围填入固定的数据(比如0),这称为填充(padding)。例如,对形状为 4×4 的数据进行幅度为 1 的填充,即用幅度为 1、值为 0 的数据填充周围:

可以看到,4×4 的数据进行幅度为 1 的填充后形状变为 6×6,再经过卷积后数据的形状为 4×4。使用填充主要目的是为了调整输出数据的形状大小,避免多次卷积后数据形状大小过小导致无法继续进行卷积运算。运用填充可以令数据形状在经过卷积运算后保持不变。

三、步幅

应用卷积核的位置间隔称之为步幅(stride)。没有强调方向,所有横向和纵向是一样的,如果步幅是2,那横纵移动都是2

之前的例子中步幅都为 1,下面我们进行步幅为 3 的卷积运算:

可移动格子(长度): w+2p-fw 但是有步幅s,所以可移动次数就是 w + 2p - fw / s 本身未移动之前就是一次计算

可以看到填充和步幅都会影响输出数据的形状大小。增大填充,输出数据形状大小会变大;增大步幅,输出数据形状大小会变小。让我们分析一下给定填充和步幅如何计算输出数据的形状大小。

假设输入数据形状为 ( H , W ) (H, W) (H,W),卷积核大小为 ( F H , F W ) (FH, FW) (FH,FW),填充为 P P P,步幅为 S S S,输出数据形状为 ( O H , O W ) (OH, OW) (OH,OW),可得:

O H = H + 2 P − F H S + 1 OH = \frac{H + 2P - FH}{S} + 1 OH=SH+2P−FH+1

O W = W + 2 P − F W S + 1 OW = \frac{W + 2P - FW}{S} + 1 OW=SW+2P−FW+1

例如,对于形状为 ( 4 , 4 ) (4,4) (4,4) 的输入数据应用幅度为 1 1 1 的填充,并应用步幅为 3 3 3,卷积核大小为 ( 3 , 3 ) (3,3) (3,3) 的卷积运算:

O H = O W = 4 + 2 − 3 3 + 1 = 2 OH = OW = \frac{4 + 2 - 3}{3} + 1 = 2 OH=OW=34+2−3+1=2

得到形状为 ( 2 , 2 ) (2,2) (2,2) 的输出数据。

当输出大小无法除尽时,PyTorch 卷积层会自动向下取整,输出整数尺寸,舍弃无法覆盖完整卷积核的输入部分。

相关推荐
weixin_307779132 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
Sinokap2 小时前
OpenAI 披露 AI 安全实验:智能体如何突破隔离边界?
人工智能·安全
云和数据.ChenGuang2 小时前
深入解析 Python 的 dir():从用法到 CPython 源码实现
开发语言·人工智能·python·langchain
重生之我在番茄自学网安拯救世界3 小时前
AI 开发者日报 第1期(本周精选)| 插件市场投毒、智能体搞出“官僚饥荒村”,十年前的 CNN 打赢大模型
人工智能·网络安全·大模型·ai编程·智能体
涛声依旧-底层原理研究所3 小时前
拆解 Cordis 底座:Agent 是如何被「组合」出来的
人工智能·架构
秦先生在广东3 小时前
记忆不再是黑盒
人工智能
秦先生在广东3 小时前
49个AI智能体接管你的游戏开发
人工智能
骑着蜗牛撵大象3274 小时前
2026 后端 AI 工程化:Spring AI 管调用、MCP 管工具、Agent 内嵌管自治
java·人工智能·后端·spring·ai·可观测性·mcp