1x1 卷积:解释器

news2024/9/25 23:15:20

一、说明

        在这篇博客中,我们将尝试深入探讨 1x1 卷积操作的概念,该概念出现在 Lin等人 (2013) 的论文“网络中的网络”和 Szegedy 等人 (2014) 的论文“Go Deep with Convolutions” 中,该论文提出了 GoogLeNet 架构。

来源:链接

        深度卷积网络(如VGG,AlexNet)的缺点之一是特征图的数量通常随着网络的深度而增加。当使用较大的过滤器尺寸(如 5x5 和 7x7)时,此问题可能会导致参数数量和计算复杂性显著增加。为了解决这个问题,可以使用 1x1 卷积层来提供通道级池化,通常称为特征池化或投影层。这种简单的技术可以通过减少通道数量同时引入非线性来用于“降维”。

二、用途1:降维 

        顾名思义,1x1 卷积是一种简单的操作,涉及使用大小为 1x1 的过滤器卷积输入图像。现在,让我们尝试通过一个例子来理解这一点。假设卷积层的输出形状为 — N, F, H, W,其中 N 是批量大小,F 是 #convolution 层,H,W 是输出维度。在将其卷积为带有G滤波器的1x1 conv层的输入后,输出的形状为N,G,H,W。 以数值为例,如果大小为64x64x3的输入通过单个1x1x3滤波器,则输出将具有与输入相同的高度和宽度,但只有一个通道64x64x1。现在,考虑具有大量通道的输入(HxWx192),例如192。为了降低维数,可以应用带有 1 个过滤器的 1x32 卷积。生成的输出特征图将具有相同的空间维度 (HxW),但通道数减少 (32)。在每个空间位置,1x1 卷积将独立地将 32 个过滤器集应用于输入通道。每个滤波器将执行192个输入通道的线性组合,生成单个输出值。

示例:减少 #channels

三、用途2:计算效率

        接下来,让我们看一个示例来演示降维如何导致计算负载的减少。假设,一个 28x28x128 的输入特征图需要在 32 个 7x7 滤波器上进行卷积。这将导致约236.1亿次操作。现在,如果我们通过在 1x7 层之前添加一个 7x21 卷积层来执行相同的操作,则操作数量(约 11 万次操作)将减少 ~<> 倍。这种效率特别有利于降低深度神经网络的计算成本,从而实现更快的训练和推理。

四、网络设计

        1x1卷积通常用于网络架构中,用于控制通道数并调整模型的复杂性。它们通常与较大的卷积一起使用,以创建在不同层具有不同数量通道的网络,从而使模型能够捕获不同比例的特征。

五、结论

        总体而言,1x1 卷积为深度学习模型中的通道级特征转换和降维提供了强大的工具。它们可实现高效灵活的网络设计,同时在特征图中捕获通道之间的基本关系。

引用:

  1. https://hanlab.mit.edu/files/course/slides/MIT-TinyML-Lec07-NAS-I.pdf
  2. https://medium.com/analytics-vidhya/talented-mr-1x1-comprehensive-look-at-1x1-convolution-in-deep-learning-f6b355825578
  3. #016 CNN Network in Network - 1x1 Convolutions - Master Data Science

陶塞夫·艾哈迈德

·

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

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

相关文章

MYSQL基本命令和操作

&#x1f58a;作者 : D. Star. &#x1f4d8;专栏 : JAVA &#x1f606;今日提问 : 你好&#xff0c;我的朋友&#xff0c;在你的人生途中&#xff0c;会面临很多选择&#xff0c;不管选什么样的结果&#xff0c;我们都多少会有些后悔。如果是你&#xff0c;你会选择爱你的&…

win10系统docker创建ubuntu容器解决开发环境问题

一、win10系统使用docker的原因 最近啊&#xff0c;在学习人工智能-深度学习&#xff0c;用的win10系统进行开发&#xff0c;老是出现一些莫名其妙的问题&#xff0c;无法解决&#xff0c;每天都在为环境问题搞得伤透了脑筋。 说到底还是要使用Linux系统进行开发比较合适。 …

无涯教程-Perl - time函数

描述 此函数返回自纪元以来的秒数(对于大多数系统,是1970年1月1日UTC,00:00:00&#xff1b;对于Mac OS,是1904年1月1日,00:00:00)。适用于gmtime和本地时间。 语法 以下是此函数的简单语法- time返回值 此函数返回自纪元后数秒的整数。 例 以下是显示其基本用法的示例代…

软件项目验收测试:验证软件功能与性能的有效手段

软件验收测试是软件产品周期中的最后一个测试活动&#xff0c;因此也叫交付测试。目的是确保软件准备就绪&#xff0c;并且可以让最终用户将其用于执行软件的既定功能和任务。 一、软件项目验收测试的重要性 1、软件项目验收测试是确保软件交付前质量的重要环节。在软件项目开…

小程序-基于vant的Picker组件实现省市区选择

一、原因 因vant/area-data部分的市/区数据跟后台使用的高德/腾讯省市区有所出入&#xff0c;故须保持跟后台用同一份数据&#xff0c;所以考虑以下几个组件 1、Area 2、Cascader 3、Picker 因为使用的是高德地图的省市区json文件&#xff0c;用area的话修改结构代价太大&…

netstat -ano|findstr 使用方法

一、查看占用端口 &#xff0c;得到进程id netstat -ano|findstr “8080” 1&#xff1a;协议 2&#xff1a;本地地址 3&#xff1a; 外部地址 4&#xff1a; 状态 5&#xff1a; PID 二、查询进程ID对应的进程名称 tasklist|findstr “12448” 三、关闭单个进程 taskkill /…

Matlab 在一张图中画多个机械臂

在matlab中第一次画机械臂时&#xff0c;可能会出现的问题是Link函数不识别&#xff08;如出现Link输入参数不对等) 这大概率是因为缺少matlab工具箱&#xff0c;如图 需要下载该软件包&#xff0c;然后用Matlab打开&#xff0c;就能自动安装到matlab中。下载地址在这个超链接…

【Harbor】使用手册

一、Harbor使用方式 Harbor 作为镜像仓库&#xff0c;主要的交互方式就是 将镜像上传到Harbor上&#xff0c;以及从Harbor上下载指定镜像 在传输镜像前&#xff0c;可以先使用 Harbor 提供的权限管理&#xff0c;将项目设置为私有项目&#xff0c;并对不同用户设置不同角色&…

最详细修改antd组件select的滚动条样式

自带的select的滚动条样式又黑又粗,丑陋.接下来我们改造他 初始代码 .contain {.btn {margin-top: 60px;margin-left: 60px;:global {.ant-btn {width: 200px;height: 100px;border-radius: 6px;}}} } <div className{styles.contain}><Selectmode"tags"p…

KMPBC:KMP算法及其改进(kmp with bad character)

前言 最近在看字符串匹配算法&#xff0c;突然灵光一闪有了想法&#xff0c;可以把kmp算法时间效率提高&#xff0c;同时保持最坏时间复杂度O(nm)不变。其中n为主串长度&#xff0c;m为模式串长度&#xff0c;经测试可以块3-10倍&#xff0c;以为发现了新大陆&#xff0c;但是…

Deep Automatic Natural Image Matting

https://github.com/JizhiziLi/AIM 工程地址 抠图的传统方法通常是基于 trimap&#xff08;三值图&#xff09;对前景、背景和 alpha 进行估计&#xff0c;但当图像中的前景和背景颜色相似或有着比较复杂的纹理时&#xff0c;传统算法很难取得比较好的效果。 自动图像抠图(A…

《华为认证》双机热备份简介

定义 双机热备份&#xff08;Hot-Standby Backup&#xff09;是指&#xff0c;当两台设备在确定主用&#xff08;Master&#xff09;设备和备用&#xff08;Backup&#xff09;设备后&#xff0c;由主用设备进行业务的转发&#xff0c;而备用设备处于监控状态&#xff0c;同时…

windows C++python编译配置

python官网下载windows下的installer安装包&#xff0c;添加到命令行when installing download mingw&#xff0c;选seh&#xff0c;把g的所在目录添加到环境变量 stdc.h 添加到 xxx\mingw64\lib\gcc\x86_64-w64-mingw32\8.1.0\include\bits&#xff0c;gcc的include目录下 …

23款奔驰GLS400升级原厂几何多光束大灯,让智能照亮您前行的路

奔驰几何多光束大灯核心特点就是通过内部的84颗可独立控制的LED光源&#xff0c;行车远光灯会甄别对向驶来的车辆或者行人&#xff0c;并且动态的跟随目标&#xff0c;之后阴影话该区域&#xff0c;避免晃到车辆和行人。

Spring项目使用Redis限制用户登录失败的次数以及暂时锁定用户登录权限

文章目录 背景环境代码实现0. 项目结构图&#xff08;供参考&#xff09;1. 数据库中的表&#xff08;供参考&#xff09;2. 依赖&#xff08;pom.xml&#xff09;3. 配置文件&#xff08;application.yml&#xff09;4. 配置文件&#xff08;application-dev.yml&#xff09;5…

【仿写框架之仿写Tomact】四、封装HttpRequest对象(属性映射http请求报文)、HttpResponse对象(属性映射http响应报文)

文章目录 1、创建HttpRequest对象2、创建HttpResponse对象 1、创建HttpRequest对象 HttpRequest对象中的属性与HTTP协议中的内容对应&#xff0c;用于后序servlet从request中获取请求中的参数。 参照http请求报文&#xff1a; import java.io.BufferedReader; import java…

Spring-Bean的生命周期

目录 生命周期汇总 细分生命周期 1.实例化 2.属性赋值&#xff08;依赖注入&#xff09; 3.Aware接口 4.BeanPostProcessor接口 5.初始化 6.销毁 测试验证 类结构 业务类 测试类 生命周期汇总 Spring Bean 的生命周期见下图 &#xff08;一定记忆好下图&#x…

java Graphics 图片叠放在另一张图片上,生成文字图片(可设置多图一起放到底图上)

直接上代码&#xff1a; public static void createGTImage(GtInfo resultObj) {String backPath resultObj.getBackPath();String enterpriseName resultObj.getEnterpriseName();String gtResultPath resultObj.getGtResultPath();int gtResultPathX resultObj.getGtResu…

具身智能:人工智能的下一个浪潮

原创 | 文 BFT机器人 特斯拉 2023 年股东会上&#xff0c;马斯克强调了人形机器人对特斯拉未来的重要性&#xff0c;并预测其将成为公司的主要长期价值来源。他进一步表示&#xff1a;“如果人形机器人和人的比例大致为2比1&#xff0c;那么人们对机器人的需求可能达到100亿乃…

用二进制来输出一个数

用二进制来输出一个数 1&#xff0c;一个数 #include <stdio.h> #include <stdlib.h> #include <stdint.h>int main() {uint32_t m 0x00C00000;printf("m%o,m%d,m0x%x\n",m,m,m);binary(m);return 0; }2&#xff0c;方法 void binary(uint32_t…