pytorch SENet实现案例


Posted in Python onJune 24, 2020

我就废话不多说了,大家还是直接看代码吧~

from torch import nn

class SELayer(nn.Module):
 def __init__(self, channel, reduction=16):
  super(SELayer, self).__init__()

  //返回1X1大小的特征图,通道数不变
  self.avg_pool = nn.AdaptiveAvgPool2d(1)
  self.fc = nn.Sequential(
   nn.Linear(channel, channel // reduction, bias=False),
   nn.ReLU(inplace=True),
   nn.Linear(channel // reduction, channel, bias=False),
   nn.Sigmoid()
  )

 def forward(self, x):
  b, c, _, _ = x.size()

  //全局平均池化,batch和channel和原来一样保持不变
  y = self.avg_pool(x).view(b, c)

  //全连接层+池化
  y = self.fc(y).view(b, c, 1, 1)

  //和原特征图相乘
  return x * y.expand_as(x)

补充知识:pytorch 实现 SE Block

论文模块图

pytorch SENet实现案例

代码

import torch.nn as nn
class SE_Block(nn.Module):
 def __init__(self, ch_in, reduction=16):
  super(SE_Block, self).__init__()
  self.avg_pool = nn.AdaptiveAvgPool2d(1)				# 全局自适应池化
  self.fc = nn.Sequential(
   nn.Linear(ch_in, ch_in // reduction, bias=False),
   nn.ReLU(inplace=True),
   nn.Linear(ch_in // reduction, ch_in, bias=False),
   nn.Sigmoid()
  )

 def forward(self, x):
  b, c, _, _ = x.size()
  y = self.avg_pool(x).view(b, c)
  y = self.fc(y).view(b, c, 1, 1)
  return x * y.expand_as(x)

现在还有许多关于SE的变形,但大都大同小异

以上这篇pytorch SENet实现案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
Python写的服务监控程序实例
Jan 31 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
pycharm安装和首次使用教程
Aug 27 Python
Python中shapefile转换geojson的示例
Jan 03 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
pymongo中group by的操作方法教程
Mar 22 Python
python修改字典键(key)的方法
Aug 05 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 Python
pycharm中leetcode插件使用图文详解
Dec 07 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
利用PyTorch实现VGG16教程
Jun 24 #Python
python安装读取grib库总结(推荐)
Jun 24 #Python
Pytorch mask-rcnn 实现细节分享
Jun 24 #Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 #Python
OpenCV+python实现实时目标检测功能
Jun 24 #Python
基于Python下载网络图片方法汇总代码实例
Jun 24 #Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 #Python
You might like
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
缅甸的咖啡简史
2021/03/04 咖啡文化
上传多个文件的PHP脚本
2006/11/26 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
基于php 随机数的深入理解
2013/06/05 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
php实现统计网站在线人数的方法
2015/05/12 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Python gevent协程切换实现详解
2020/09/14 Python
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
销售员个人求职的自我评价
2014/02/10 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
大学班长竞选稿
2015/11/20 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python