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中利用sorted()函数排序的简单教程
Apr 27 Python
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
详解Python中的type和object
Aug 15 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
简单了解为什么python函数后有多个括号
Dec 19 Python
python模拟实现分发扑克牌
Apr 22 Python
python 实现简易的记事本
Nov 30 Python
pandas中关于apply+lambda的应用
Feb 28 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
python时间整形转标准格式的示例分享
2014/02/14 Python
简单使用Python自动生成文章
2014/12/25 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
Python实现画图软件功能方法详解
2020/07/28 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
试用期自我鉴定范文
2014/03/20 职场文书
出生公证委托书
2014/04/03 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
端午节活动总结
2014/08/26 职场文书
家属慰问信
2015/02/14 职场文书