【动手学深度学习】6.3 填充与步幅(个人向笔记)

  • 卷积的输出形状取决于输入形状和卷积核的形状
  • 在应用连续的卷积后,我们最终得到的输出大小远小于输入大小,这是由于卷积核的宽度和高度通常大于1导致的
  • 比如,一个 240 × 240 240×240 240×240像素的图像,经过10层 5 × 5 5×5 5×5的卷积后,将减少到 200 × 200 200×200 200×200像素。如此一来,原始图像的边界丢失了许多有用信息。而填充是解决此问题最有效的方法
  • 有时,我们可能希望大幅降低图像的宽度和高度。例如,如果我们发现原始的输入分辨率十分冗余。步幅则可以在这类情况下提供帮助。

1. 填充

  • 上面提到我们在应用多层卷积的时候常常丢失边缘像素
  • 解决此问题的简单方法就是填充:在输入图像的边界填充元素(通常是0)
  • 下图就是一个填充的例子
  • 通常,如果我们添加 p h p_h ph 行填充,大约一半在顶部一半在底部,和 p w p_w pw 列填充,大约一半在左边一半在右边,那么输出的形状就会变为如下所示
  • 这就意味着输出的高度和宽度分别增加 p h p_h ph 和 p w p_w pw
  • 在许多情况下我们会设置 p h = k h − 1 p_h=k_h-1 ph=kh−1 和 p w = k w − 1 p_w=k_w-1 pw=kw−1,使输入和输出具有相同的高度和宽度。这样可以在构建网络时更容易预每个图层的输出形状。
  • 如果 k h k_h kh 为奇数,那么我们将在高度的两侧填充 p h / 2 p_h/2 ph/2 行。而如果 k h k_h kh 是偶数,则另一种可能性就是在顶部输入填充 p h / 2 p_h/2 ph/2 上取整,而对底部下取整。宽度同理
  • 而卷积神经网络中卷积核的高度和宽度通常为奇数。选择计数的好处是保持空间维度的同时可以在顶部和底部填充数量相同的行,在左侧和右侧填充相同适量的列
  • 对于任何二维张量 x,当满足:① 卷积核的大小是奇数 ② 所有边的填充行数和列数相同 ③ 输出与输入具有相同的宽度和高度。那么我们就可以说输出 V[i,j] 是通过以输入 X[i,j] 为中心,与卷积核进行互相关计算得到的
  • 在下面给出上面所述情形的一个例子
  • 当卷积核的高度和宽度不同时,我们可以填充不同的高度和宽度,如下图所示

2. 步幅

  • 有时为了高效计算或缩减采样次数,卷积窗口可以跳过中间位置,每次滑动多个元素
  • 我们将每次滑动元素的数量称为步幅,目前为止我们只使用过高度或者宽度为1的步幅
  • 下图是垂直步幅为 3,水平步幅为 2 的互相关运算。着色部分是输出元素以及用于输出计算的输入和内核张量元素
  • 通常,当垂直步幅为 s h s_h sh,水平步幅为 s w s_w sw 时,输出形状为:
  • 如果我们设置了 p h = k h − 1 p_h=k_h-1 ph=kh−1 和 p w = k w − 1 p_w=k_w-1 pw=kw−1,那么输出形状将简化为如下
  • 如果更进一步,输入和输出的高度和宽度可以被垂直和水平步整除的话,输出形状可以被进一步简化为
  • 下面我们将高度和宽度的步幅都设置为2,从而将输入的高度和宽度都减半
  • 下面是一个稍微复杂的例子
  • 然而在实践中我们很少用不一致的步幅和填充
相关推荐
DjangoJason6 分钟前
计算机网络 : Socket编程
linux·服务器·开发语言·笔记·计算机网络
张哈大1 小时前
【 Redis | 实战篇 秒杀优化 】
java·数据库·redis·笔记·缓存
满怀10151 小时前
【生成式AI文本生成实战】从GPT原理到企业级应用开发
人工智能·gpt
微刻时光1 小时前
影刀处理 Excel:智能工具带来的高效变革
人工智能·python·低代码·自动化·excel·rpa·影刀rpa
笑鸿的学习笔记2 小时前
虚幻引擎5-Unreal Engine笔记之`GameMode`、`关卡(Level)` 和 `关卡蓝图(Level Blueprint)`的关系
笔记·ue5·虚幻
聚客AI3 小时前
ChatGPT到Claude全适配:跨模型Prompt高级设计规范与迁移技巧
人工智能·机器学习·语言模型·自然语言处理·langchain·transformer·llama
小羊Linux客栈3 小时前
自动化:批量文件重命名
运维·人工智能·python·自动化·游戏程序
Mr数据杨8 小时前
【Dv3Admin】插件 dv3admin_chatgpt 集成大语言模型智能模块
人工智能·语言模型·chatgpt
zm-v-159304339868 小时前
AI 赋能 Copula 建模:大语言模型驱动的相关性分析革新
人工智能·语言模型·自然语言处理
向上的车轮9 小时前
MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
笔记·学习·matlab