6.3 填充和步幅

news/2025/2/16 0:49:52/

一.填充

1.作用:

为了防止丢失边缘像素。如240x240的像素图像,经过10层5x5卷积,变成了200x200像素。可以根据输出形状计算公式 (w-k+1) x (h-k+1)计算得出。

2.方法:

最常用的方法是填充0。如下:
在这里插入图片描述

3.公式:计算填充原图像后的输出形状

假设填充p行(上面填充p/2行,下面填充p/2行),p列。输出大小为:

w = (原图片h行 + 填充p行 -k + 1)
h = (原图片w列 + 填充p列 -k + 1)

相当于输出的高度和宽度直接增加p行和p列

4.应用:使输入和输出具有相同的形状

设置

 p_w = k_w - 1p_h = k_h - 1

5.补充:为什么卷积核需要设置成奇数?

如果需要输入输出具有相同形状,那么一般设置卷积核奇数,这样填充的w和h将会是偶数,就可以让顶部和底部填充相同的行,左侧右侧填充相同的列

6.代码

import torch
from torch import nndef comp_conv2d(conv2d,X):# 输入X的shape为(8,8),输出为(1,1,8,8),1,1表示批量大小和通道数X = X.reshape((1,1) + X.shape)Y = conv2d(X)return Y#随机生成一个8*8的X
X = torch.rand(size=(8,8))
# 1,1表示通道数和维度
conv2d = nn.Conv2d(1,1,kernel_size=3,padding=1)
comp_conv2d(conv2d,X).shape

输出结果:torch.Size([1, 1, 8, 8])

二.步幅

1.是什么

卷积窗口每次滑动元素的数量,也叫步长

2.例子

垂直步幅为3,水平步幅为2的卷积运算:

在这里插入图片描述

输出形状计算

w = (原图片行数 + 填充行数 - k + 1 + 水平步幅) / 水平步幅
h = (原图片列数 +填充列数 - k + 1 + 垂直步幅) / 垂直步幅

如上图: 
原图片行数和列数 = (3,3)
填充行数和列数 = (2,2)
k = (2,2)
水平步幅,垂直步幅 = (2,3)
3+2-2+1 +2 / 2 =  4 / 2 = 2
3+2-2+1 +3 / 3 = 7 / 3 = 2.3333取整

http://www.ppmy.cn/news/1009434.html

相关文章

管理类联考——写作——论说文——实战篇——行文篇——通用性强,解释多种现象的经典理论——谈必要

前言 本节内容涉及“社会分工理论”“资源稀缺性”“瓶颈理论”等理论。这些理论一般用在“利大于弊式结构”中“整体有必要”的部分,也可用于“AB二元类”题目“谈好处”的部分。 需要注意的是,“有好处”一般指有它更好;“有必要”一般指没…

rust之String、str、‘static str 与 FastStr使用详解

关注我,学习Rust不迷路!! String: 创建一个空的 String : let empty_string String::new();从字符串字面量创建一个 String : let hello_string String::from("Hello");将一个字符串追加到现有的 Stri…

WebAssembly

WebAssembly(简称Wasm)是一种面向Web的二进制指令格式,用于在现代Web浏览器中运行高性能的可移植代码。它是一种跨平台、低级别的虚拟机技术,允许开发者将不同编程语言的代码编译成Wasm格式,然后在Web浏览器中运行。 …

C++智能指针weak_ptr

文章目录 weak_ptr概述weak_ptr常用操作尺寸问题 weak_ptr概述 weak_ptr概述 weak_ptr辅助shared_ptr进行工作,weak_ptr是弱引用的意思(强引用是shared_ptr), weak_ptr同shared_ptr一样都是类模板和智能指针,weak_ptr对资源的引用是非拥有式的,weak_ptr没有资源的管理权限,不能…

java反射机制原理、获取Class方式和其应用场景

1、反射是什么: 反射是一种动态地获取和操作类信息的行为。类信息包括类的属性、方法、构造函数等。 类信息在Java中通常存储在.class文件中。当我们编写Java代码并进行编译时,编译器(javac)将源代码转换为字节码,并将…

MongoDB SQL

Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>cd C:\MongoDB\Server\3.4\binC:\MongoDB\Server\3.4\bin> C:\MongoDB\Server\3.4\bin> C:\MongoDB\Server\3.4\bin>net start MongoDB 请求的…

第七章:进程间通信(IPC)——构成进程间通信的信道方案

系列文章目录 文章目录 系列文章目录前言进程间通信介绍进程间通信目的进程间通信发展进程间通信分类进程通信的原理 管道什么是管道pipe管道通信特点简单设计 命名管道什么是命名管道mkfifostrcmp/strncasecmpunlinkgetch简单设计 共享内存什么是共享内存shmget/ftokipcsshmct…

程序环境和预处理(含C语言程序的编译+链接)--2

文章前言: 上章我们把 程序的翻译环境 程序的执行环境 C语言程序的编译链接 预定义符号介绍 预处理指令 #define 宏和函数的对比 预处理操作符 #和##的介绍 的相关知识进行了梳理讲解,接下来被把剩余知识 命令定义 …