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 相关文章推荐
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
Python tkinter事件高级用法实例
Jan 31 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
flask中的wtforms使用方法
Jul 21 Python
Python unittest单元测试框架总结
Sep 08 Python
python的移位操作实现详解
Aug 21 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 Python
Python类方法总结讲解
Jul 26 Python
如何使用python包中的sched事件调度器
Apr 30 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 小乘法表实现代码
2009/07/16 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
php格式化日期实例分析
2014/11/12 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
企业授权委托书范本
2014/09/22 职场文书
三人合伙协议书范本
2014/10/29 职场文书
党员自我评价2015
2015/03/03 职场文书
幼儿园教师辞职信
2019/06/21 职场文书