Pytorch之卷积层的使用详解


Posted in Python onDecember 31, 2019

1.简介(torch.nn下的)

卷积层主要使用的有3类,用于处理不同维度的数据

参数 Parameters:

in_channels(int) ? 输入信号的通道

out_channels(int) ? 卷积产生的通道

kerner_size(int or tuple) - 卷积核的尺寸

stride(int or tuple, optional) - 卷积步长

padding (int or tuple, optional)- 输入的每一条边补充0的层数

dilation(int or tuple, `optional``) ? 卷积核元素之间的间距

groups(int, optional) ? 从输入通道到输出通道的阻塞连接数

bias(bool, optional) - 如果bias=True,添加偏置

class torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

一维卷积层。用于计算ECG等一维数据。

input: (N,C_in,L_in) N为批次,C_in即为in_channels,即一批内输入一维数据个数,L_in是是一维数据基数

output: (N,C_out,L_out) N为批次,C_in即为out_channels,即一批内输出一维数据个数,L_out是一维数据基数

class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

二维卷积层。用于计算CT断层或MR断层,或二维超声图像,自然图像等二维数据。

self.conv1 = nn.Conv2d( # 1*28*28 -> 32*28*28
      in_channels=1,
      out_channels=32,
      kernel_size=5,
      stride=1,
      padding=2 #padding是需要计算的,padding=(stride-1)/2
    )

input: (N,C_in,H_in,W_in) N为批次,C_in即为in_channels,即一批内输入二维数据个数,H_in是二维数据行数,W_in是二维数据的列数

output: (N,C_out,H_out,W_out) N为批次,C_out即为out_channels,即一批内输出二维数据个数,H_out是二维数据行数,W_out是二维数据的列数

con2 = nn.Conv2d(1,16,5,1,2)
# con2(np.empty([1,1,28,28])) 只能接受tensor/variable
con2(torch.Tensor(1,1,28,28))
con2(Variable(torch.Tensor(1,1,28,28)))

class torch.nn.Conv3d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

三维卷积层。用于计算CT或MR等容积数据,视频数据等三维数据。

input: (N,C_in,D_in,H_in,W_in)

output: (N,C_out,D_out,H_out,W_out)

2.简介(torch.nn.functional下的)

在torch.nn.functional下也有卷积层,但是和torch.nn下的卷积层的区别在于,functional下的是函数,不是实际的卷积层,而是有卷积层功能的卷积层函数,所以它并不会出现在网络的图结构中。

torch.nn.functional.conv1d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

参数:

- input ? 输入张量的形状 (minibatch x in_channels x iW)

- weight ? 过滤器的形状 (out_channels, in_channels, kW)

- bias ? 可选偏置的形状 (out_channels)

- stride ? 卷积核的步长,默认为1

>>> filters = autograd.Variable(torch.randn(33, 16, 3))
>>> inputs = autograd.Variable(torch.randn(20, 16, 50))
>>> F.conv1d(inputs, filters)

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

>>> # With square kernels and equal stride
>>> filters = autograd.Variable(torch.randn(8,4,3,3))
>>> inputs = autograd.Variable(torch.randn(1,4,5,5))
>>> F.conv2d(inputs, filters, padding=1)

torch.nn.functional.conv3d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

>>> filters = autograd.Variable(torch.randn(33, 16, 3, 3, 3))
>>> inputs = autograd.Variable(torch.randn(20, 16, 50, 10, 20))
>>> F.conv3d(inputs, filters)

以上这篇Pytorch之卷积层的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
python 基本数据类型占用内存空间大小的实例
Jun 12 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
python tkinter基本属性详解
Sep 16 Python
Python银行系统实战源码
Oct 25 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
pytorch查看模型weight与grad方式
Jun 24 Python
Python中bisect的使用方法
Dec 31 #Python
pytorch中tensor张量数据类型的转化方式
Dec 31 #Python
Pytorch之parameters的使用
Dec 31 #Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 #Python
Pytorch之view及view_as使用详解
Dec 31 #Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 #Python
如何基于Python创建目录文件夹
Dec 31 #Python
You might like
用PHP调用数据库的存贮过程
2006/10/09 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
js 函数的副作用分析
2011/08/23 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
webpack优化的深入理解
2018/12/10 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
Python实现备份文件实例
2014/09/16 Python
python中私有函数调用方法解密
2016/04/29 Python
基于python的字节编译详解
2017/09/20 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
班级寄语大全
2014/04/10 职场文书
感恩节活动策划方案
2014/05/16 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
城管年度个人总结
2015/02/28 职场文书
钱学森观后感
2015/06/04 职场文书
小学语文国培研修日志
2015/11/13 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis