Pytorch实现各种2d卷积示例


Posted in Python onDecember 30, 2019

普通卷积

使用nn.Conv2d(),一般还会接上BN和ReLu

参数量NNCin*Cout+Cout(如果有bias,相对来说表示对参数量影响很小,所以后面不考虑)

class ConvBNReLU(nn.Module):

 def __init__(self, C_in, C_out, kernel_size, stride, padding, affine=True):
  super(ConvBNReLU, self).__init__()
  self.op = nn.Sequential(
   nn.Conv2d(C_in, C_out, kernel_size, stride=stride, padding=padding, bias=False),
   nn.BatchNorm2d(C_out, eps=1e-3, affine=affine),
   nn.ReLU(inplace=False)
  )

 def forward(self, x):
  return self.op(x)

深度可分离卷积depthwise separable convolution

卷积操作可以分为NN 的Depthwise卷积(不改变通道数)和11的Pointwise卷积(改变为输出通道数),同样后接BN,ReLU。参数量明显减少

参数量:

NNCin+Cin11*Cout

class SepConv(nn.Module):
 
 def __init__(self, C_in, C_out, kernel_size, stride, padding, affine=True):
  super(SepConv, self).__init__()
  self.op = nn.Sequential(
   nn.ReLU(inplace=False),
   nn.Conv2d(C_in, C_in, kernel_size=kernel_size, stride=stride, padding=padding, groups=C_in, bias=False),
   nn.Conv2d(C_in, C_out, kernel_size=1, padding=0, bias=False),
   nn.BatchNorm2d(C_out, eps=1e-3, affine=affine)
   )
 def forward(self, x):
  return self.op(x)

空洞卷积dilated convolution

空洞卷积(dilated convolution)是针对图像语义分割问题中下采样会降低图像分辨率、丢失信息而提出的一种卷积思路。利用添加空洞扩大感受野。

参数量不变,但感受野增大(可结合深度可分离卷积实现)

class DilConv(nn.Module):
  
 def __init__(self, C_in, C_out, kernel_size, stride, padding, dilation, affine=True):
  super(DilConv, self).__init__()
  self.op = nn.Sequential(
   nn.ReLU(inplace=False),
   nn.Conv2d(C_in, C_in, kernel_size=kernel_size, stride=stride, padding=padding, dilation=dilation, groups=C_in, bias=False),
   nn.Conv2d(C_in, C_out, kernel_size=1, padding=0, bias=False),
   nn.BatchNorm2d(C_out, eps=1e-3, affine=affine),
   )

 def forward(self, x):
  return self.op(x)

Identity

这个其实不算卷积操作,但是在实现跨层传递捷径

class Identity(nn.Module):

 def __init__(self):
  super(Identity, self).__init__()

 def forward(self, x):
  return x

以上这篇Pytorch实现各种2d卷积示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之编写类之二方法
Oct 11 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 Python
python打包成so文件过程解析
Sep 28 Python
基于Python中的yield表达式介绍
Nov 19 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
Python面向对象之多态原理与用法案例分析
Dec 30 #Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 #Python
python面向对象之类属性和类方法案例分析
Dec 30 #Python
基于Python执行dos命令并获取输出的结果
Dec 30 #Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 #Python
python实现修改固定模式的字符串内容操作示例
Dec 30 #Python
python基于celery实现异步任务周期任务定时任务
Dec 30 #Python
You might like
php获取网页内容方法总结
2008/12/04 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
基于jquery的3d效果实现代码
2011/03/23 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
Python中的类学习笔记
2014/09/23 Python
python端口扫描系统实现方法
2014/11/19 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python样条插值的实现代码
2018/12/17 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
Python with语句用法原理详解
2020/07/03 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
建筑工程专业大学生求职信
2014/04/23 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
2014年保育员工作总结
2014/12/02 职场文书
党员剖析材料范文
2014/12/18 职场文书
违纪检讨书
2015/01/27 职场文书
手术室护士个人总结
2015/02/13 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
班主任工作总结范文
2015/08/13 职场文书
浅析Django接口版本控制
2021/06/26 Python