Pytorch之卷积层的使用详解

 更新时间:2019年12月31日 10:31:39   作者:啧啧啧biubiu  
今天小编就为大家分享一篇Pytorch之卷积层的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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排序搜索基本算法之插入排序实例分析

    这篇文章主要介绍了Python排序搜索基本算法之插入排序,结合实例形式分析了基于比较的插入排序和基于交换的插入排序实现技巧,需要的朋友可以参考下
    2017-12-12
  • 深入了解Python中Pytest Markers的使用方法

    深入了解Python中Pytest Markers的使用方法

    从这篇开始,逐一解决fixture是啥,mark是啥,参数request是啥,钩子函数是啥,parametrize参数化是啥,这些问题,本片先介绍一下mark是啥,以及如何使用
    2023-09-09
  • Python中str字符串的内置方法详解

    Python中str字符串的内置方法详解

    这篇文章主要介绍了Python中str字符串的内置方法详解,在 python 中字符串有许多内置的方法,在日常编程中会经常使用到,熟练运用了能够在很多场景大大的提高我们的工作效率,需要的朋友可以参考下
    2023-08-08
  • 对Python正则匹配IP、Url、Mail的方法详解

    对Python正则匹配IP、Url、Mail的方法详解

    今天小编就为大家分享一篇对Python正则匹配IP、Url、Mail的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python函数中的可变长参数详解

    Python函数中的可变长参数详解

    在本篇文章里小编给大家整理的是关于Python函数中的可变长参数的相关知识点内容,有需要的朋友们参考下。
    2019-09-09
  • 解决Python import docx出错DLL load failed的问题

    解决Python import docx出错DLL load failed的问题

    今天小编就为大家分享一篇解决Python import docx出错DLL load failed的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • PyCharm 2020.2.2 x64 下载并安装的详细教程

    PyCharm 2020.2.2 x64 下载并安装的详细教程

    这篇文章主要介绍了PyCharm 2020.2.2 x64 下载并安装的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 三个python爬虫项目实例代码

    三个python爬虫项目实例代码

    这篇文章主要介绍了三个python爬虫项目实例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • unittest+coverage单元测试代码覆盖操作实例详解

    unittest+coverage单元测试代码覆盖操作实例详解

    这篇文章主要为大家详细介绍了unittest+coverage单元测试代码覆盖操作的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python的组合模式与责任链模式编程示例

    Python的组合模式与责任链模式编程示例

    这篇文章主要介绍了Python的组合模式与责任链模式编程示例,组合模式与责任链模式都属于Python的设计模式,需要的朋友可以参考下
    2016-02-02

最新评论