1.1卷积的作用

上图解释了1∗1卷积如何适用于尺寸为H∗W∗D的输入层,滤波器大小为1∗1∗D,输出通道的尺寸为H∗W∗1。如果应用n个这样的滤波器,然后组合在一起,得到的输出层大小为H∗W∗n。

1.1∗1卷积的作用

  • 调节通道数
    由于 1×1 卷积并不会改变 height 和 width,改变通道的第一个最直观的结果,就是可以将原本的数据量进行增加或者减少。这里看其他文章或者博客中都称之为升维、降维。但实际情况维度并没有改变,改变的只是 height×width×channels 中的channels这一个维度的大小而已。
  • 增加非线性
    1∗1卷积核,可以在保持特征图尺度不变的(即不改变)的前提下大幅增加非线性特性(利用后接的非线性激活函数如ReLU)。非线性允许网络学习更复杂的功能,并且使得整个网络能够进一步加深。
  • 跨通道信息交互
    使用1∗1卷积核,实现降维和升维的操作其实就是间通道信息的线性组合变化。例如:在卷积核大小为3∗3,卷积核个数为64的滤波器与卷积核大小为1∗1,卷积核个数为28的滤波器组合,其输出层大小等于通过卷积核大小为3∗3,卷积核个数为28的滤波器所得到的输出层的大小,原来的64个通道就可以理解为跨通道线性组合变成了28通道,这就是通道间的信息交互。
  • 减少参数
    前面所说的降维,其实也是减少了参数,因为特征图少了,参数也自然跟着就减少,相当于在特征图的通道数上进行卷积,压缩特征图,二次提取特征,使得新特征图的特征表达更佳。

2. 1∗1卷积的应用

Network in Network(NIN)
NIN提出了MLP卷积层,MLP卷积层通过叠加"Micro Network"网络,提高非线性表达,而其中的"Micro Network"基本组成单元是1∗1卷积网路,说到这,就要解释一下1∗1卷积了,该篇论文是首次提出1∗1卷积,具有划时代的意义,之后的GoogleNet借鉴了1∗1卷积,还专门致谢过这篇论文。

Inception
​ GoogleNet首次提出Inception模块,Inception一共有V1、V2、V3、V4四个版本(这里就不详述了)。下图为Inception V1的结构如下图两个图所示。

在充分引入1∗1卷积进行降维后如图(b)所示,总体而言相比于图(a)其卷积参数量已经减少了近4倍。
​ 在inception结构中,大量采用了1∗1卷积,主要是两点作用:a.对数据进行降维;b.引入更多的非线性,提高泛化能力,因为卷积后要经过ReLU激活函数;

ResNet

ResNet同样也利用了1∗1卷积,并且是在3∗33*3卷积层的前后都使用了,不仅进行了降维,还进行了升维,参数数量进一步减少。其中右图又称为Bottleneck Design,目的一目了然,就是为了降低参数的数目,第一个1∗1的卷积把通道量从256降到64,然后在最后通过1∗1卷积恢复,整体上用的参数数目差了近16.94倍。
​ 对于常规ResNet,可以用于34层或者更少的网络中,对于Bottleneck Design的ResNet通常用于更深的如101这样的网络中,目的是减少计算和参数量。

参考:

卷积神经网络中的1*1卷积究竟有什么用?

一文读懂卷积神经网络中的1x1卷积核

 

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

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

相关文章

webpack查找配置文件的策略

Webpack 在执行时会按照一定的策略来查找配置文件。以下是它查找配置文件的基本流程: 1.命令行指定: 如果在运行 Webpack 时通过 --config 或 -c 参数指定了配置文件的路径,那么 Webpack 将使用这个指定的配置文件。 2.默认查找顺序&…

Java研学-反射与内省

一 反射机制 1 含义 通过指定类的字节码文件获取对应的字节码对象;通过该对象调用类中的成员 2 获取类的真实类型的方式 ① 正射机制 – new关键字实例化对象 // Animal类 public class Animal{private String name;private int kg;...... }// 实例化对象 public class Tes…

程序员日常使用Shell命令:提高工作效率的实用技巧

作为程序员,我们每天都在与代码和工具打交道。其中,Shell是一个非常重要的工具,它可以帮助我们高效地完成各种任务。本文将列举一些程序员日常使用Shell提高效率的操作,帮助大家更好地利用Shell提高工作效率。 首先,让…

[递归] 平衡矩阵

平衡矩阵 题目描述 现在有一个n阶正整数方阵&#xff08;n<7&#xff09;&#xff0c;现在可以对矩阵的任意一行进行左移&#xff0c;具体操作为&#xff1a;每次对于某一行a_i1,a_i2,…,a_in进行一次左移&#xff0c;最左边的元素移动到这一行的末尾&#xff0c;其他元素…

LinuxBasicsForHackers笔记 --文本处理

查看文件 head <file name> – 如果只想查看文件的开头部分&#xff0c;可以使用 head 命令。默认情况下&#xff0c;此命令显示文件的前10行。如果您想查看多于或少于默认的 10 行的内容&#xff0c;请在 head 命令之后、文件名之前使用破折号 (-) 开关输入所需的数量。…

springboot centos集成 OpenOffice 实现 在线预览 doc excel docx 成pdf的 并且包含中文包和英文包和安装

我的资源里面有 springboot linux 集成 OpenOffice 实现在线预览 docx doc excel img等功能&#xff0c; 报问题 &#xff1a;no suitable windowing system found, exiting. 解决方案 yum groupinstall "X Window System"如果还是报这个错 执行 yum groupinstall …

Google Guava 数学工具使用详解

文章目录 数学数值运算取整范围值比较其他 数学 在 Guava 中&#xff0c;数学&#xff08;Math&#xff09;模块提供了一些常用的数学运算功能&#xff0c;包括数值运算、取整、范围值比较等。下面详细介绍一些 Guava 数学运算的使用方法和示例。 数值运算 IntMath 类提供了处…

App测试之App日志收集及adb常用命令

文章目录 前言一、adb是什么1.APP测试收集手机日志常用的工具2.adb下载与安装3.ADT/SDK/ADB是什么4.adb连接真机 二、adb常用命令三、android系统日志文件1.logcat日志文件2.logcat日志文件分析 四、分析crash & ANR 日志1.发生crash如何分析2.发生ANR如何分析 总结扩展&am…

前端组件库开发

通常我们会使用很多组件库&#xff0c;有时候我们会去看源码比如element&#xff0c;antd&#xff0c;然后发现多少是按需导出&#xff0c;和vue.use全局注册&#xff0c;依赖于框架的拓展。 组件库的开发依赖框架的版本和node的版本&#xff0c;这个是需要说明的&#xff0c;然…

【阅读论文】时间序列异常检测:综合评价

文章目录 摘要1 异常检测范围2 时间序列和异常3 异常检测技术3.1预测方法3.2重建方法3.3编码方法3.4距离方法3.5分布方法3.6隔离树方法 4 实验评估4.1环境和设置4.2结果质量4.3运行时和内存 5 讨论致谢参考文献 摘要 在金融应用中&#xff0c;检测时间序列数据中的异常子序列是…

解决浏览器缓存问题

1.index.html文件meta标签添加属性 <meta name"viewport" content"widthdevice-width,initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno" viewport-fitcover >2.提前main.html处理逻辑再跳转到index.html页 <script>…

ubuntu下QT搭建Android开发环境

一、前言 用QT开发android和直接使用android开发的区别 使用Qt开发Android应用和直接使用Android开发工具&#xff08;例如Android Studio&#xff09;有一些区别&#xff0c;主要体现在开发工具、语言、界面设计和性能等方面&#xff1a; 开发工具&#xff1a; Qt Creat…

Python----字典练习

相关链接&#xff1a;Python---字典的增、删、改、查操作_python中字典的增删改查-CSDN博客 Python---字典---dict-CSDN博客 Python---引用变量与可变、非可变类型-CSDN博客 重点&#xff1a; 字典中的 key &#xff08;就是键&#xff09;可以是很多数据类型&#xff08;…

jmeter下载地址

Jmeter安装教程【5.5】【Windows】jmeter详细安装配置教程&#xff0c;装不好你打我_一只莽夫的博客-CSDN博客

Java线程池的使用和最佳实践

第1章&#xff1a;引言 处理并发问题时&#xff0c;如果每次都新建线程&#xff0c;那系统的压力得有多大&#xff1f;这时候&#xff0c;线程池就像一个英雄一样出现了&#xff0c;它帮我们有效地管理线程&#xff0c;提高资源利用率&#xff0c;降低开销。那么&#xff0c;为…

代理模式介绍(静态代理、jdk动态代理、cglib代理)

一、静态代理 &#xff08;一&#xff09;定义 1、定义 为其他对象提供一种代理以控制对这个对象的访问&#xff1b; 2、涉及到的角色 &#xff08;1&#xff09;抽象主题角色&#xff1a;真实主题和代理主题的共同接口&#xff0c;便于在使用真实主题的地方都可以使用代理…

C#网络编程System.Net.WebClient 类vs System.Net.Http.HttpClient 类

目录 一、WebClient 类 1.WebClient 将数据上传到资源的方法 2.WebClient 从资源下载数据的方法 3.示例源码 4.生成效果 二、HttpClient 类 1.示例源码 2.生成效果 为什么要把两者拿出来pk呢&#xff1f;那是因为WebClient已经在.NET 6.0以后得版本被弃用了&#xff0c…

python跑ncnn(验证模型是否转换成功)

为了转ncnn模型是否成功&#xff0c;用python验证一下先 pip install ncnn分割模型的验证代码 import ncnn import cv2 import numpy as np# 创建ncnn的网络对象 net ncnn.Net()# 加载ONNX模型 net.load_param(E:\\Android_Projects\\ncnn-android-deeplabv3plus-main\\app\…

Spring学习笔记:Day1

学习策略&#xff1a; 理论与实践相结合&#xff1a;每学完一个知识点&#xff0c;尝试进行小的练习或小的项目实践。 持续反馈&#xff1a;在学习过程中&#xff0c;参与社区、论坛或与同事进行讨论&#xff0c;及时解决遇到的问题。 实际项目驱动&#xff1a;在学习后期&a…

PHP字符串面试题

PHP字符串面试题 1. 创建一个字符串变量&#xff0c;并打印输出字符串的内容。 <?php $string "Hello, World!"; echo $string; ?>2. 如何获取字符串的长度&#xff1f; <?php $string "Hello, World!"; $length strlen($string); echo …