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 相关文章推荐
pymongo给mongodb创建索引的简单实现方法
May 06 Python
简介Django中内置的一些中间件
Jul 24 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
python实现给微信公众号发送消息的方法
Jun 30 Python
python中关于for循环的碎碎念
Jun 30 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
Python TestCase中的断言方法介绍
May 02 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 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异步调用socket实现代码
2012/01/12 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
JS中的多态实例详解
2017/10/15 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
python文件与目录操作实例详解
2016/02/22 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
解决python3运行selenium下HTMLTestRunner报错的问题
2018/12/27 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python字节单位转换实例
2019/12/05 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
软件测试企业面试试卷
2016/07/13 面试题
急诊科护士自我鉴定
2013/10/14 职场文书
小学二年级学生评语
2014/04/21 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
2014年纪委工作总结
2014/12/05 职场文书
西游记读书笔记
2015/06/25 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python