您是否在使用Conv2d时遇见问题了呢?

您是否还在以Conv2d(128, 256, 3)的方式简单使用这个最具魅力的layer呢?

想更了解Conv2d么?让我们一起来深入看看它的真容吧,让我们触到它更高端的用法。

在第5节中,我们已经使用了Linear层来构建模型。其来自于torch.nn中

首先,我们先对torch.nn 来个整体的认识。官方链接:

可以看到,在torch.nn下包含了我们模型的概念、一些常用层、损失函数等的定义。我们不一一详细说,只说我们刚开始操作时最经常用到的。今天我们从最常用的2维卷积层说起。

首先还是看官方文档对Conv2d的整体定义:

Conv2d,就是用来实现2d卷积操作的。要使用好这个类,我们先得搞清楚它的输入参数都是些啥?

in_channels —— 输入的channels数

out_channels —— 输出的channels数

kernel_size ——卷积核的尺寸,可以是方形卷积核、也可以不是,下边example可以看到

stride —— 步长,用来控制卷积核移动间隔

padding ——输入边沿扩边操作

padding_mode ——扩边的方式

bias ——是否使用偏置(即out = wx+b中的b)

以上参数,均是大家了解相对较多的参数项目。

dilation —— 这个参数简单说,设定了取数之间的间隔,下图可表达其意思

dilation = 1

dilation = 2

上图中蓝色为选取进行卷积计算的值。通过对比,即可了解该选项的作用

groups —— 进行分组卷积的组数

这个参数的使用不太好理解,首先还是贴原文档的说明

这个其实是将输入和输出进行分组,然后进行对应的映射,最后连接形成输出。引网络上的一张图,大概可以看出此参数的作用。引至:

参数的输入数据格式如下:

以上对参数进行了较为详尽的说明,基本上可以使用了!

官方给出了几个例子

1)方形卷积核、行列相同步长(With square kernels and equal stride)

m = nn.Conv2d(16, 33, 3, stride=2)

2)非方形卷积核、行列采用不同步长,并进行扩边

m = nn.Conv2d(16, 33, (3, 5), stride=(2, 1), padding=(4, 2))

3)非方形卷积核、行列采用不同步长、数据采用稀疏,并进行扩边

m = nn.Conv2d(16, 33, (3, 5), stride=(2, 1), padding=(4, 2), dilation=(3, 1))

通过以上例子,可知使用Conv2d的使用。

最后,我们看下Conv2d的源码,通过底层看出其实现:

该类的源码定义中,我们可以看到其中定义了3个函数:__init__、forward和conv2d_forward。__init__中可以看到,对相关参数进行了默认初始化;而在forward中,表明了这个底层实现函数是采用的nn.functional.conv2d来实现。

以上,就对该类的使用进行了一次梳理,希望大家使用起来更加顺畅!

【备注】

由于也是刚转战pytorch,有错误的地方,望各位大佬指正。也希望有兴趣一起学习的朋友一起加入进来

conv2d 公式_Pytorch 从0开始学(6)——Conv2d 详解相关推荐

  1. conv2d函数_Pytorch 从0开始学(6)——Conv2d 详解

    您是否在使用Conv2d时遇见问题了呢? 您是否还在以Conv2d(128, 256, 3)的方式简单使用这个最具魅力的layer呢? 想更了解Conv2d么?让我们一起来深入看看它的真容吧,让我们触 ...

  2. 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization

    <<小白学PyTorch>> 扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积.激活.初始化.正则 扩展之Tensorflow2.0 | 20 TF ...

  3. id3算法c语言实现,从ID3到C5.0的故事:算法详解及实践应用

    原标题:从ID3到C5.0的故事:算法详解及实践应用 在前面,我们分别概述性地介绍了决策树的基本知识: 1.算法概述 ID3(Iterative Dichotomiser3)算法可以说决策树算法中最著 ...

  4. mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解

    1.下载 下载链接 点击download,这里可能需要登录甲骨文的账号,登录一下即可 2.解压 下载好会得到一个安装包 把它解压到一个能找到的目录下即可,我的是这样(my.ini文件你们应该没有) 3 ...

  5. ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) (转载)

    ASP.Net 2.0窗体身份验证机制详解(FormsAuthentication) 收藏 转自:http://www.aspxclub.com/l12/c_3689.html 本篇文章介绍了在ASP ...

  6. java n%9==0_用C++实现求N!中末尾0的个数的方法详解

    题目描述: 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为1行,n(1≤n≤1000) 输出描述: 输出一个整数 ...

  7. MySQL Installer 8.0.21安装教程图文详解 转载

    MySQL Installer 8.0.21安装教程图文详解 原地址 1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MyS ...

  8. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

  9. Linux Kernel 6.0 CXL Core pci.c 详解

    文章目录 前言 相关链接 Ref 正文 前言 CXL 是一个比较新的技术,所以我研究的内核源码是选了当前比较新的内核版本 linux 6.0.打算将内核关于 CXL 的驱动进行解析一遍,一步一步慢慢来 ...

最新文章

  1. AI视频行为分析系统项目复盘——技术篇3:tensorRT技术梳理
  2. 阿里新框架发布!干掉Spring Cloud,换下Dubbo,微服务王者来了!
  3. java final域_final域_鲲鹏通用_TaiShan服务器代码移植参考_Java同步原语_华为云
  4. 三维重建:SLAM的粒度和工程化问题
  5. 熟悉linux运行环境,实验一 熟悉Ubuntu环境
  6. rfid技术及应用答案王佳斌_详解工业数据采集中RFID技术的应用
  7. C++---内联函数与宏
  8. 为自己编写的windows应用程序制作安装包
  9. [转载] Python——摄氏温度转换华氏温度
  10. pytorch中的反卷积的output_padding参数
  11. html转换成avi,HTML_视频转换大师WinMPG Video Convert 6.63,支持格式丰富,可快速完成AVI(RM - phpStudy...
  12. 简单网络管理协议SNMP通讯基础篇-熊健-专题视频课程
  13. oracle的 listagg() WITHIN GROUP () 函数使用
  14. 2015年中国云计算市场回顾与展望
  15. 计算机怎么加项目符号,2010年职称计算机:添加项目符号
  16. 计算机桌面音量键在哪,win7系统控制音量的快捷方式有哪些
  17. 形式逻辑(03)联言判断 和 推理
  18. 愿岁月静好,始于初见,止于终老
  19. java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession
  20. python写xml文件 数据量特别大_python中大型xml文件的并行处理

热门文章

  1. 【BZOJ3669】【codevs3314】魔法森林,写作LCT,读作SPFA
  2. drop 很慢 物化视图_物化视图问题-效率捉摸不定
  3. 2017.10.26 四校联测D1
  4. 【英语学习】【Level 07】U07 Stories of my Life L5 I shouldn't have said that
  5. 【英语学习】【WOTD】impetus 释义/词源/示例
  6. 【英语学习】【Daily English】U02 Daily Routine L01 Sadly, my schedule is very tight.
  7. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(6) - 字符串指令/输入输出指令
  8. linux下使用c进行线程操作
  9. mysql统计今天发布了多少条_Mysql统计总结 - 最近30天,昨天的数据统计
  10. PyCharm编辑器的安装