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进阶教程之动态类型详解
Aug 30 Python
Python实现获取操作系统版本信息方法
Apr 08 Python
python提取字典key列表的方法
Jul 11 Python
Python对象转JSON字符串的方法
Apr 27 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
详解Python函数式编程—高阶函数
Mar 29 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
Python 如何反方向迭代一个序列
Jul 28 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 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 获取百度的热词数据的代码
2012/02/18 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
python PIL模块的基本使用
2020/09/29 Python
python利用faker库批量生成测试数据
2020/10/15 Python
python实现发送邮件
2021/03/02 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
银行优秀员工事迹
2014/02/06 职场文书
超级礼物观后感
2015/06/15 职场文书
KTV员工管理制度
2015/08/06 职场文书
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers