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解决字典中的值是列表问题的方法
Mar 04 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
pyshp创建shp点文件的方法
Dec 31 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
python实现图片上添加图片
Nov 26 Python
python argparse传入布尔参数false不生效的解决
Apr 20 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
python实现经纬度采样的示例代码
Dec 10 Python
python通配符之glob模块的使用详解
Apr 24 Python
解决numpy和torch数据类型转化的问题
May 23 Python
pytorch锁死在dataloader(训练时卡死)
May 28 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数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
python中引用与复制用法实例分析
2015/06/04 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
Python中最大递归深度值的探讨
2019/03/05 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
关于python中导入文件到list的问题
2020/10/31 Python
经典的班主任推荐信
2013/10/28 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
高一军训决心书
2015/02/05 职场文书
python tkinter实现定时关机
2021/04/21 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python