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基础教程之lambda表达式使用方法
Feb 12 Python
Python实现把回车符\r\n转换成\n
Apr 23 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
详解python解压压缩包的五种方法
Jul 05 Python
python scipy卷积运算的实现方法
Sep 16 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 Python
Python软件包安装的三种常见方法
Jul 07 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备份MYSQL数据的多种方法
2014/01/15 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
Python实用日期时间处理方法汇总
2015/05/09 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
小饰品店的创业计划书范文
2013/12/28 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
企业新年寄语
2014/04/04 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android