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中的join()方法的使用
May 19 Python
Python设置默认编码为utf8的方法
Jul 01 Python
对Python进行数据分析_关于Package的安装问题
May 22 Python
django ajax json的实例代码
May 29 Python
python批量修改图片大小的方法
Jul 24 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
Python socket非阻塞模块应用示例
Sep 12 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
python中pycryto实现数据加密
Apr 29 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
php调用mysql数据 dbclass类
2011/05/07 PHP
PHP 万年历实现代码
2012/10/18 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
js编写选项卡效果
2017/05/23 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python用requests实现http请求代码实例
2019/10/31 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
如何用Python徒手写线性回归
2021/01/25 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
护士的自我鉴定
2014/02/07 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
青年标兵事迹材料
2014/08/16 职场文书
雾霾停课通知
2015/04/24 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android