SE-ResNet的实现

2023-11-03

见:D:\pythonCodes\深度学习实验\4.1_经典分类网络\inference代码汇总\models\se_resnet.py

一、SE-ResNet的实现方法

读了senet这篇论文之后,可以知道senet并没有提出一个新的网络,而是提出了一个即插即用的模块。这个模块叫做SE Block(在实现的时候,为了防止与SEBasicBlock这个名字混淆,叫做SELayer)。

本文希望实现se_resnet网络,也就是将SE Block嵌入到ResNet中形成的网络。se_resnet与resnet的差别就是,就是在BasicBlock(resnet18/34使用的是BasicBlock堆叠,而resnet50/101/152使用的是Bottleneck进行堆叠,这里就以BasicBlock举例,Bottleneck完全一样)中增加了SE Block这个操作。

比如下图,上面是BasicBlock的结构,下图就是SEBasic的结构,就是多出来了一个小圈圈。

 通过读resnet的源码,我们知道是通过Resnet()这个类来组织成整个网络的。比如:

          resnet34 = ResNet(BasicBlock, [3,4,6,3])

          resnet18 = ResNet(BasicBlock, [2,2,2,2])

          resnet50 = ResNet(Bottleneck, [3,4,6,3])

          resnet101 = ResNet(Bottleneck, [3,4,23,3])

          resnet152 = ResNet(Bottleneck, [3,8,36,3])
 

ResNet()接收两个参数,一个是block,另一个是堆叠的次数layers。只要传入参数,就能组织成一个网络了。比如传入的是BasicBlock,[3,4,6,3]就能得到resnet34了。这个函数就会自动地用3个BasicBlock组成layer1,用4个BasicBlock组成layer2,用6个BasicBlock组成layer3,用3个BasicBlock组成layer3,然后加上头尾等,组成一个网络。

我们可以利用ResNet()函数来构建我们的se_resent网络。只要给ResNet()传入SEBasicBlock和[3,4,6,3]就可以得到se_resnet34了。。

因此最关键的就是实现SEBasicBlock。而SEBasicBlock代码简直就是照抄BasicBlock代码,只要加上SELayer就行了。

(1) SELayer的实现

就是论文中的SE Block,在实现的时候,为了防止与SEBasicBlock这个名字混淆,叫做SELayer。

就是实现下面这个操作:

代码:


                
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SE-ResNet的实现 的相关文章

随机推荐

  • 解决Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend报错

    使用apt 或者apt get install 时 kali linux报错 Waiting for cache lock Could not get lock var lib dpkg lock frontend 出现这种报错一般是上一次
  • 短视频副业做什么比较靠谱,副业赚钱的路子有哪些

    作为上班族 如果搞副业的话 说明是一个不安分的人 今天我们说说他们的搞法吧 首先使用自动剪辑软件王者剪辑批量剪辑原创视频 然后通过多平台快速起号发布视频迅速涨粉引流 有了粉丝流量 他们就可以投放广告 开橱窗卖产品或者直接把号卖给有需要的人
  • 单目标应用:海鸥优化算法(Seagull optimization algorithm,SOA)求解无人机路径规划(提供MATLAB代码)

    一 海鸥优化算法 海鸥优化算法 Seagull optimization algorithm SOA 由Gaurav Dhiman等人于2019年提出 海鸥是候鸟 繁殖期主要栖息于北极苔原 森林苔原 荒漠 草地的河流 湖泊 水塘和沼泽中 冬
  • Tomcat服务器解决跨域问题解决方式二

    第一步 在https mvnrepository com上查询并下载cors filter 1 7 jar java property utils 1 9 jar这两个库文件 放到lib目录下 E apache tomcat gcxt li
  • Angular,Vue,React三者的区别-个人理解

    题外话 学习了jQuery后 就在公司接触了Angular 第一次接触的时候 简直一脸懵逼呀 对于曾经习惯了对DOM元素进行操作的我真的好难好难 对于曾经没工作经验的我 Angular1入门还是比较难的 还好 努力克服了这个坎 在一次公司的
  • OD(Ollydbg)简介

    ollydbg简介 Ollydbg 通常称作OD 是反汇编工作的常用工具 OD附带了200脱壳脚本和各类插件 功能非常强大 可以过SE VMP3 0 深受逆向圈内人士的喜爱 OD 是一个反汇编工具 又叫OllyDebug 一个新的动态追踪工
  • 源码、反码、补码

    接下来的一章会提到位操作符 所以我们先介绍一下这三种二进制形式 整数的二进制表示形式 一共有三种 源码 反码 补码 1 正整数的原码 反码和补码都是相同的 2 负整数的原码 补码和反码是要经过计算的 首先 不管是正整数还是负整数都可以直接写
  • GateWay启动报错:Error processing condition on org.springframework.cloud.gateway.config.GatewayAutoConfig

    错误 java lang IllegalStateException Error processing condition on org springframework cloud gateway config GatewayAutoCon
  • 15.线程同步的几种方法

    一 为什么需要线程同步 线程同步通常是出现在多线程环境下的问题 对于多个线程同时访问的共享内存中的变量 如果不进行保护 就会导致一些列数据出错问题 以下图为例 假设线程A在第一次读取变量的值为10 每次写周期会将变量A加5 理论上当线程A完
  • mysql主键id的生成方式(自增、唯一不规则)

    1 利用uuid函数生成唯一且不规则的主键id sql CREATE TABLE test id varchar 100 COLLATE utf8 estonian ci NOT NULL COMMENT 唯一不重复 create time
  • AIX软件安装的相关命令

    文件集 Filesets AIX操作系统的最小可安装单元软件包 Packages 软件包由一组可独立安装的文件集组成注册的程序产品 LPP LPP包含所有与该注册的程序相关联的软件包 软件束 Bundles 一组软件 包含文件集 软件包和L
  • moment.js 时间处理的使用方法--含有CDN链接

    范例 https cybozudev kf5 com hc kb article 211149 CDN链接 https cybozudev kf5 com hc kb article 206405
  • ORACLE等待事件类型(一)

    author skate tiime 2009 11 18 ORACLE等待事件类型 Classes of Wait Events 每一个等待事件都属于某一类 下面给出了每一类等待事件的描述 Every wait event belongs
  • linux模拟网络丢包、延迟、数据包损坏

    环境 工具 linux TC tc默认系统自带 只对物理网卡生效 不对虚拟网卡生效 如果对关联了虚拟网卡的物理网卡使用会同时生效 模拟网络延迟 tc qdisc add dev eth0 root netem delay 1000ms ro
  • 解读es6 class 中 constructor 方法 和 super 的作用

    ES6 的 class 属于一种 语法糖 所以只是写法更加优雅 更加像面对对象的编程 其思想和 ES5 是一致的 类和模块的内部 默认就是严格模式 所以不需要使用use strict指定运行模式 定义类 class Point constr
  • c++ 文件类型判断

    要判断文件类型 即判断文件名是否包含文件的后缀 例如 txt文件的判断 string str abcd txt string str1 txt 当 str find str1 string npos时则说明字符串str中不存在 txt 这个
  • MonoField MonoReflectionField FieldInfo

    mono mcs class corlib System Reflection MonoField cs StructLayout LayoutKind Sequential internal class MonoField RtField
  • 环形链表问题

    题目 给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 如果链表中有某个节点 可以通过连续跟踪 next 指针再次到达 则链表中存在环 为了表示给定链表中的环 评测系统内部使用整数 pos 来表示
  • linux 软件安装各种方法

    一 简单介绍 1 软件安装卸载 分几种情况 A RPM包 这种软件包就像windows的EXE安装文件一样 各种文件已经编译好 并打了包 哪个文件该放到哪个文件夹 都指定好了 安装非常方便 在图形界面里你只需要双击就能自动安装 如何卸载 1
  • SE-ResNet的实现

    见 D pythonCodes 深度学习实验 4 1 经典分类网络 inference代码汇总 models se resnet py 一 SE ResNet的实现方法 读了senet这篇论文之后 可以知道senet并没有提出一个新的网络