本文是基于Pytorch框架下的API :Conv2d()。该函数使用在二维输入,另外还有Conv1d()、Conv3d(),其输入分别是一维和三维。下面将介绍Conv2d()的参数。

一、参数介绍

 def __init__(self,in_channels: int,out_channels: int,kernel_size: _size_2_t,stride: _size_2_t = 1,padding: _size_2_t = 0,dilation: _size_2_t = 1,groups: int = 1,bias: bool = True,padding_mode: str = 'zeros'  # TODO: refine this type):
  • in_channels:网络输入的通道数。
  • out_channels:网络输出的通道数。
  • kernel_size:卷积核的大小,如果该参数是一个整数q,那么卷积核的大小是qXq。
  • stride:步长。是卷积过程中移动的步长。默认情况下是1。一般卷积核在输入图像上的移动是自左至右,自上至下。如果参数是一个整数那么就默认在水平和垂直方向都是该整数。如果参数是stride=(2, 1),2代表着高(h)进行步长为2,1代表着宽(w)进行步长为1。
  • padding:填充,默认是0填充。
  • dilation:扩张。一般情况下,卷积核与输入图像对应的位置之间的计算是相同尺寸的,也就是说卷积核的大小是3X3,那么它在输入图像上每次作用的区域是3X3,这种情况下dilation=0。当dilation=1时,表示的是下图这种情况。
  • groups:分组。指的是对输入通道进行分组,如果groups=1,那么输入就一组,输出也为一组。如果groups=2,那么就将输入分为两组,那么相应的输出也是两组。另外需要注意的是in_channels和out_channels必须能整除groups。
  • bias:偏置参数,该参数是一个bool类型的,当bias=True时,表示在后向反馈中学习到的参数b被应用。
  • padding_mode:填充模式, padding_mode=‘zeros’表示的是0填充。

二、通过调整参数来感受这些参数
1、结果1

import torch
import torch.nn as nn# 输入是一个N=20,C=16,H=50,W=100的向量
m = nn.Conv2d(16, 33, 3, stride=2)
input = torch.randn(20, 16, 50, 100)
output = m(input)print(output.size())
  • 在nn.Conv2d()中第一个参数要和输入的通道数相同(16)。在nn.Conv2d()中第二个参数表示输出的通道数。输出中N=20不变,C=33。通过3X3的卷积核、步长为2,50X100的输入变成了24X49。
torch.Size([20, 33, 24, 49])

2、结果2

import torch
import torch.nn as nnm = nn.Conv2d(16, 33, 3, stride=(1, 2))
input = torch.randn(20, 16, 50, 100)
output = m(input)print(output.size())

-上一步中stride=2表示的是stride=(2,2), 这里添加了stride=(1, 2),表示向右步长为1,向下步长为2,输出结果如下:

torch.Size([20, 33, 48, 49])

3、结果3

import torch
import torch.nn as nnm = nn.Conv2d(16, 33, (3, 5), stride=2, padding=(4, 2))
input = torch.randn(20, 16, 50, 100)
output = m(input)print(output.size())
  • 这里添加了padding=(4,2),表示在左右方向上添加4圈0填充,在上下方向上添加2圈0,相当于输入是58X104(原来的输入是50X100)。
torch.Size([20, 33, 28, 50])

三、总结
Conv2d()是卷积神经网络的操作函数,了解函数中的参数是用好CNN的关键。

Conv2d函数详解(Pytorch)相关推荐

  1. pytorch之torch.nn.Conv2d()函数详解

    文章目录 一.官方文档介绍 二.torch.nn.Conv2d()函数详解 参数详解 参数dilation--扩张卷积(也叫空洞卷积) 参数groups--分组卷积 三.代码实例 一.官方文档介绍 官 ...

  2. 【PyTorch】nn.Conv2d函数详解

    文章目录 1. 函数语法格式 2. 参数解释 3. 尺寸关系 4. 使用案例 5. nn.functional.conv2d 1. 函数语法格式 CONV2D官方链接 torch.nn.Conv2d( ...

  3. tf.nn.conv2d()函数详解(strides与padding的关系)

    tf.nn.conv2d()是TensorFlow中用于创建卷积层的函数,这个函数的调用格式如下: def conv2d(input: Any,filter: Any,strides: Any,pad ...

  4. pytorch函数详解

    pytorch函数详解 在typora这里写之后复制到简书上 1. torchvision 1.1 transforms.Compose(transforms) 把几个转换组合 example: fr ...

  5. python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  6. 【Pytorch】torch.argmax 函数详解

    文章目录 一.一个参数时的 torch.argmax 函数 1. 介绍 2. 实例 二.多个参数时的 torch.argmax 函数 1. 介绍 2. 实例 实例1:二维矩阵 实例2:三维矩阵 实例3 ...

  7. PyTorch入门笔记-matmul函数详解

    PyTorch入门笔记-matmul函数详解 本文转载自:PyTorch入门笔记-matmul函数详解 - 腾讯云开发者社区-腾讯云 (tencent.com) 41409)]

  8. conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解

    Conv2d的简单使用 torch 包 nn 中 Conv2d 的用法与 tensorflow 中类似,但不完全一样. 在 torch 中,Conv2d 有几个基本的参数,分别是 in_channel ...

  9. YOLOV1详解——Pytorch版

    YOLOV1详解--Pytorch版 1 YOLOV1 1 数据处理 1.1 数据集划分 1.2 读入xml文件 1.3 数据增强 2 训练 2.1 Backbone 2.2 Loss 2.3 tra ...

最新文章

  1. python写简单购物车_python简单的购物车程序(含代码)
  2. 数据挖掘算法_技术分享|大数据挖掘算法之KNNk近邻算法
  3. 【正交幅度调制 QAM】
  4. Boost.Test 测试范型库
  5. android 生成签名和SHA1签名信息
  6. python自动化办公教程-python办公自动化:Excel操作入门
  7. 计算机组成原理—算数逻辑单元
  8. NMS 原理和c++实现,已测试通过
  9. ASP网页开发重点源代码
  10. linux 命令获取屏幕亮度值,设置屏幕亮度
  11. 火箭工作室c++小游戏——斗地主
  12. 计算机前置usb应用,usb前面不能用,详细教您解决电脑前置USB接口不能使用
  13. 使用antd-design-vue配合vue框架搭建项目使用组件显示英文的解决办法
  14. 第71天-内网安全-域横向网络传输应用层隧道技术
  15. arcgis 导入Excel 处理 点线 数据关系
  16. 计算机simp按键,三招教你干掉流氓插件,让电脑从此安静下来
  17. The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.3 狒狒穿越问题
  18. 2019写给对象的话_2019@对象的暖心说说简短的 适合艾特对象的说说一句话超甜...
  19. Praat脚本文件教程之Scripting1.Your first script
  20. Hilbert 第十问题漫谈

热门文章

  1. 在HTML页面里调用PHP的方法
  2. LDA主题模型1——数学基础
  3. IEEE会议latex模板参考文献转为bibitem
  4. java大数据开发是做什么的
  5. 使用Python将OV7725的RGB565图像数据转换为jpg图像
  6. appollo-二次规划ST速度优化
  7. 小娱路由php,跟风折腾小娱路由器XY-C5,做低功耗路由+下载器+轻量化NAS.
  8. Ubuntu内核版本的降级
  9. 计算KS值的标准代码
  10. [培训-无线通信基础-0]:课程概述