pytorch深度学习实战19

news2024/11/25 23:50:29

第十九课 卷积层的填充和步幅

目录

理论部分

实践部分


理论部分

首先看一下卷积层的填充。

上图所示的情况会有个问题,如果卷积核不变的话(一直是5*5的卷积核),那么我的网络最多也就只能弄到第七层了,如果我想搭建更深的网络的话是不被允许的。

那么填充就是可以解决这个问题。

填充的基本思想是在输入的四周添加0元素,以达到输出比之前更大的目的。

填充的行数和列数的选取是有讲究的,如下图所示,填充完毕后它的输出与填充之前的输出的形状是一样的,区别就是网络的层数会因为输入的填充而变多,卷积效果更好。

下面看一下步幅。

如果输入比较大的话,而且我卷积核很小的话,我需要经过很多层才会得到一个较小的输出。这个很痛苦,因为层数越多计算越复杂!

那么这里的步幅就是解决这个问题的,他可以使输出的大小和层数是指数相关的。

如上图所示,正常来讲的话,当卷积核做好一次卷积运算的话会往右移一个,但是设置了步幅之后,它会往右移两个或往右移多个。

注意这里的步幅还可以设置高度,也就是说每行算完卷积后,我往下移几个。

实践部分

代码:

#填充和步幅
#在所有侧边填充1个像素
import torch
from torch import nn
def comp_conv2d(conv2d, X):
    X = X.reshape((1, 1) + X.shape)#给输入矩阵添加输入和输出通道数这两个信息
    Y = conv2d(X)
    return Y.reshape(Y.shape[2:])
conv2d = nn.Conv2d(1, 1, kernel_size=3, padding=1)#上下左右各填充一行
X = torch.rand(size=(8, 8))
print(comp_conv2d(conv2d, X).shape)#n-k+p+1=8-3+2+1=8
#填充不同的高度和宽度
conv2d = nn.Conv2d(1, 1, kernel_size=(5, 3), padding=(2, 1))#左右添加1列,上下添加2行
print(comp_conv2d(conv2d, X).shape)#输出的行:8-5+4+1;输出的列:8-5+2+1
#将高度和宽度的步幅设置为2
conv2d = nn.Conv2d(1, 1, kernel_size=3, padding=1, stride=2)#stride表示步幅设为2,这是p=k-1的情况
print(comp_conv2d(conv2d, X).shape)#所以(n+step-1)/s=(8+2-1)/2=4.5向下取整=4
torch.Size([4, 4])
#一个稍微复杂的例子
conv2d = nn.Conv2d(1, 1, kernel_size=(3, 5), padding=(0, 1), stride=(3, 4))#这里p不等于k-1
print(comp_conv2d(conv2d, X).shape)#所以【(n-k+p+s)/s】=[(8-3+0+3)/3]=向下取整=2
                                   #同样列数为【(8-5+1+4)/4】=2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/13215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

恒太照明在北交所上市:募资规模缩水三成,第三季度收入下滑

11月17日,江苏恒太照明股份有限公司(下称“恒太照明”,NQ:873339)在北京证券交易所(即“北交所”)上市。本次上市,恒太照明的发行价格为6.28元/股,发行数量为2220万股,募…

Linux|centos7下部署安装alertmanager并实现邮箱和微信告警

前言: 一个成熟的符合一般人预想的资源监控平台应该是能够多维度的展示各种各样的数据,比如,服务器的内存使用率,磁盘io状态,磁盘使用率,CPU的负载状态,某个服务的状态(比如&#x…

Pandas数据分析33——数据多条件筛选(点估计和区间估计评价指标)

本次是写论文代码区间估计评价指标有感..... 数据框有两列的时候,我们想筛选A列大于B列的样本出来时,只需要用布尔值索引就行: df[df[A]>df[B]] 可是多条件的筛选的时候怎么办,比如我需要A大于B列,还有A小于C列。…

软件测试“摆烂”已经成为常态化,我们应该怎样冲出重围?

网络日新月异发展的今天,每隔一段时间就会出现一些新的网络热词,最近“摆烂”成功突出重围,成为大家热议的中心。什么是“摆烂”?“摆烂”就是事情无法向好发展的时候直接选择妥协,不采取任何措施加以改变,…

兼容 信创鲲鹏/M1 arm64架构的kafka镜像

当前热度比较高的kafka镜像是wurstmeister/kafka,在dockerhub上有很多的使用次数。我起初很开心最新版支持arm64架构,然后拉到本地用Mac M1跑也很完美 但是!我放到信创鲲鹏的生产环境,导入镜像没问题,但一用docker-com…

IPWorks Zip Delphi 流式压缩组件

IPWorks Zip Delphi 流式压缩组件 IPWorks Zip允许开发人员使用Zip、Tar、Gzip、7-Zip、Bzip2、ZCompress或Jar压缩标准轻松地将压缩和解压缩集成到应用程序中。IPWorks Zip组件是从头开始构建的,将卓越的速度与出色的数据压缩比相结合。 IPWorks Zip功能 文件压…

Allegro如何给铜皮导弧操作详解

Allegro如何给铜皮导弧操作详解 当需要给如下铜皮导弧的,是一件比较麻烦的事情,但是可以用以下两个方法来实现 方法一 具体操作如下 shape-decompose shape Find选择shapes Options选择层面,比如top层,选择delete shape after decompose 框选铜皮 得到下图效果,然后…

SNMP 协议解析(一)

♥️作者:小刘在C站 ♥️每天分享课堂笔记,一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放。 一.SNMP是什么 是基于TCP/IP协议族的网络管理标准,它的前身是简单网关监控协议(SGMP)&#xf…

HOST前后端分离小操作

“本地测试项目配置域名小操作” ​ 相关文章【欢迎关注该公众号“一路向东”】(CORS处理跨域问题): CORS跨域问题配置白名单CORS_ORIGIN_WHITELIST HOSTS 本地测试域名必然少不了修改:C:/Windows/System32/driver/etc/host文件&…

MVVM的构建(javakotlin)

概念性的描述就不写了,直接上代码 MVVM框架,主要是构建基类,实现ViewModel绑定,ViewBinding的绑定,在构建好基类后,后续开发中新建activity或fragment的viewModel和viewBinding就会在基类的方法中实现绑定…

Python virtualenv工具设置虚拟环境和VS code调试Python

Python virtualenv工具设置虚拟环境和VS code调试Python1. Window环境下采用VS code调试Python和虚拟环境1.1 安装Python1.2 安装虚拟环境工具virtualenv1.3 Windows上使用虚拟环境的基本操作1.4 Windows上VS code使用虚拟环境2. Linux环境下采用VS code调试Python和虚拟环境2.…

SAP 一次性读取工单的所有状态(工单抬头、工序、子工序、检验特性等等)

1. 前言 支持读取状态列表 2. 实现 代码 DATA: ls_objects TYPE tca11,ls_t490_imp TYPE t490. DATA: lt_ord_pre_imp TYPE TABLE OF ord_pre. FIELD-SYMBOLS: <fs_jest> TYPE any.DATA: lt_jest TYPE TABLE OF jest."fill var ls_objects VALUE #( flg_alt X…

[搞点好玩的] JETSONNANO 受苦记 -- 001 (布置环境,未完待续)

最开始是打算从0开始自己调试适配yahboom的IO板子&#xff0c;但是后来各种版本失配翻墙困难&#xff0c;前期先是用人家的包烧录进去。(所以叫未完待续) 直接粘贴我的debug记录了哈&#xff0c;凑合看吧&#xff1a; 记录 本项目是开源的实现基于jetbot的图像处理流程项目&a…

分享购商城模式详情特点和优势解析

随着互联网的不断发展&#xff0c;市面上出现了很多新怡的商业模式&#xff0c;就以分享购这个模式举例说来&#xff0c;直接解决了消费者自买省、好省、分享赚的逻辑玩法&#xff0c;之前有一个平台一个月直接引入70万的会员&#xff0c;引爆了网络上又一波话题&#xff0c;热…

【物理应用】大气辐射和透射率模型及太阳和月亮模型(Matlab代码实现)

&#x1f496;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f947;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为…

基于分时电价策略的家庭能量系统优化附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

《计算机导论》课程学习笔记

目录 第一章认识计算机 1.1计算思维概述 1.2冯诺依曼体系结构 1.3计算机硬件组成 1.4计算机软件 1.5计算机操作系统 第一章认识计算机 1.1计算思维概述 1.计算思维能力概念 计算思维能力的核心是问题求解能力。 发现问题寻求解决问题的思路分析比较不同的方案验证方案…

47、Docker 安装 ElasticSearch、Kibana、IK分词器

1、docker hub查看pull命令 2、Docker 安装 ElasticSearch docker run -d \ --name es \ -e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ -e "discovery.typesingle-node" \ -v es-data:/usr/share/elasticsearch/data \ -v es-plugins:/usr/share/elasticsearch/p…

微信小程序云开发入门详细教程

微信小程序云开发 介绍&#xff1a; 微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务。 开发者可以使用云开发快速开发小程序、小游戏、公众号网页等&#xff0c;并且原生打通微信开放能力。 开发者无需搭建服务器&#xff0c;可免鉴权直接使用平台提供的 API 进行…

ly-tab插件报错

根据三方文档进行配置后一直报错&#xff0c;搞不懂因为啥&#xff0c;也查不到原因&#xff0c;头都大了&#xff0c;后来开始怀疑是版本问题&#xff0c;进行检查后发现安装的是最新版而三方文档是2.0版本&#xff08;果然是版本差异问题&#xff09; 解决办法一 将package.…