Conv2d、conv2d是pytorch中进行卷积操作的2个类,虽然只是首字母大小写不同,使用起来方法也不一样,一个是类,一个是函数。

1 Conv2d

Conv2d是torch.nn中的类

1.1 初始化

CLASS
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)

参数说明

  • in_channels (int) – 输入图像通道

  • out_channels (int) – 输出图像通道,也就是用了多少层卷积核

  • kernel_size (int or tuple) – 卷积核大小

  • stride (int or tupleoptional) – 步长. Default: 1

  • padding (inttuple or stroptional) – Padding 大小. Default: 0

  • padding_mode (stringoptional) – 填充模式,默认填充0,'zeros''reflect''replicate' or 'circular'. Default: 'zeros'

  • dilation (int or tupleoptional) – Spacing between kernel elements. Default: 1,一般不用管

  • groups (intoptional) – Number of blocked connections from input channels to output channels. Default: 1,一般不用管

  • bias (booloptional) –是否添加偏值, Default: True

样例

from torch.nn import Conv2d
conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)
print(conv1)

输出

Conv2d(3, 6, kernel_size=(3, 3), stride=(1, 1))

 1.2 输入输出大小

  • N:样本数
  • C:通道数
  • H:高
  • W:宽

import torch
input = torch.randn(1, 3, 5, 5)
output = conv1(input)
print(input.shape)
print(output.shape)

输出

torch.Size([1, 3, 5, 5])
torch.Size([1, 6, 3, 3])

2  conv2d

conv2d是torch.nn.functional中的函数

2.1 代码格式

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) 

参数说明

  • input –输入一个tensor

  • weight – 卷积核,也是一个tensor

  • bias – 偏值,tensor,大小是输出通道的大小. Default: None

  • stride –步长. Default: 1

  • padding –{‘valid’, ‘same’},默认valid,,也可以是int数值

  • dilation – the spacing between kernel elements. Can be a single number or a tuple (dH, dW). Default: 1,不用管

  • groups – split input into groups, \text{in\_channels}in_channels should be divisible by the number of groups. Default: 1,不用管

2.2 输入输出大小

input = torch.tensor([[1, 2, 0, 3, 1],[0, 1, 3, 3, 1],[1, 2, 1, 0, 0],[5, 5, 3, 1, 4],[3, 1, 0, 4, 1]])kernel = torch.tensor([[1, 1, 1],[0, 2, 0],[2, 1, 0]])input = torch.reshape(input, (1, 1, 5, 5))
kernel = torch.reshape(kernel, (1, 1, 3, 3))print(input.shape)
print(kernel.shape)

输出

torch.Size([1, 1, 5, 5])
torch.Size([1, 1, 3, 3])

样例

import torch.nn.functional as F
output = F.conv2d(input, kernel, stride=1, padding=“same”)
print(output)

输出

tensor([[[[ 1,  3,  4, 10,  8],[ 5, 10, 12, 12,  6],[ 7, 18, 16, 16,  8],[11, 13,  9,  3,  4],[14, 13,  9,  7,  4]]]])

Pytorch——Conv2d、conv2d相关推荐

  1. PyTorch学习笔记(1)nn.Sequential、nn.Conv2d、nn.BatchNorm2d、nn.ReLU和nn.MaxPool2d

    文章目录 一.nn.Sequential 二.nn.Conv2d 三.nn.BatchNorm2d 四.nn.ReLU 五.nn.MaxPool2d 一.nn.Sequential torch.nn. ...

  2. Pytorch的nn.Conv2d()详解

    Pytorch的nn.Conv2d()详解 nn.Conv2d()的使用.形参与隐藏的权重参数 in_channels out_channels kernel_size stride = 1 padd ...

  3. Pytorch的nn.Conv2d()参数详解

    nn.Conv2d()的使用.形参与隐藏的权重参数   二维卷积应该是最常用的卷积方式了,在Pytorch的nn模块中,封装了nn.Conv2d()类作为二维卷积的实现.使用方法和普通的类一样,先实例 ...

  4. Pytorch中nn.Conv2d数据计算模拟

    Pytorch中nn.Conv2d数据计算模拟 最近在研究dgcnn网络的源码,其网络架构部分使用的是nn.Conv2d模块.在Pytorch的官方文档中,nn.Conv2d的输入数据为(B, Cin ...

  5. 【pytorch】nn.conv2d的使用

    官方文档在这里. conv2d具体不做介绍了,本篇只做pytorch的API使用介绍. torch.nn.Conv2d(in_channels, out_channels, kernel_size, ...

  6. [十三]深度学习Pytorch-卷积层(1D/2D/3D卷积、卷积nn.Conv2d、转置卷积nn.ConvTranspose)

    0. 往期内容 [一]深度学习Pytorch-张量定义与张量创建 [二]深度学习Pytorch-张量的操作:拼接.切分.索引和变换 [三]深度学习Pytorch-张量数学运算 [四]深度学习Pytor ...

  7. Pytorch填充、步幅及多通道输入输出的理论分析及代码实现

    填充和步幅 卷积核带来的问题-输入形状不断减小 更大的卷积核可以更快的减小输出大小 形状从 n h ∗ n w n_h * n_w nh​∗nw​减少到 ( n h − k h + 1 ) ∗ ( n ...

  8. Jetson Nano目标检测手把手实战教程(pytorch训练、tensorrt推理,含完整代码和数据)

    目录 一.概述 1.1 深度学习和边缘计算 1.2 Jetson Nano简介 二.深度学习环境安装 2.1 Pytorch框架 2.2 在Jetson Nano上安装Pytorch 三.算法原理 四 ...

  9. Jetson Nano v4.6.3:安装系统、U盘启动、安装SDK、安装PyTorch GPU、YOLOv5+DeepStream部署

    一.写在前面 本教程为个人创作,截止发布日仅在CSDN平台刊登,转载请附本文链接. 本教程直接面向YOLOv5用户,提供四个文件供下载,简单说明如下表,详细说明和下载链接在文末. 文件名称 文件类型 ...

  10. pytorch笔记(四)nn.Conv1d、nn.Conv2d、nn.Conv3d

    概念: nn.Conv1d:常用在文本 (B,C,L) (batch,channel,sequence_len) (批数量,通道数,句子长度) nn.Conv2d:常用在图像 (B,C,H,W) (b ...

最新文章

  1. 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码
  2. c++生成nurbs曲面文件_使用曲面细分丰富原始多边形
  3. 初学Java对某些问题的理解
  4. C++ sodoku solve数独算法(附完整源码)
  5. WebSocket笔记(一) 初步认识
  6. Python自定义包
  7. JPA基础(三):搭建JPA开发环境和全局事务介绍
  8. 数据结构之广义表的相关知识点
  9. Linux 学习笔记 (四)Ubuntu14.04 解决上网问题安装无线网卡驱动
  10. windows安全事件id汇总
  11. [RK3288][Android7.1]调试笔记 --- 内置高版本的APK编译User版本出错解决
  12. html图片有的不显示不出来的,css背景图片不显示有哪些原因?
  13. 免费升级win10系统方法
  14. 在vue中使用unity3D实现webGL将要呈现的效果
  15. Android流量统计
  16. 腾讯云php小程序,使用微信小程序和腾讯云实现直播功能
  17. 【老生谈算法】matlab实现EKF UKF PF三种算法对比源码——EKF UKF PF算法
  18. 最长递增子序列 java_最长递增子序列问题---动态规划
  19. Rails 中 scope
  20. 上海理工大学高校计算机补办,上海理工大学关于2017上海市高校计算机等级考试报考通知...

热门文章

  1. 电压力锅中的计算机控制系统,电压力锅的(电脑板)工作原理
  2. 国内计算机三大期刊+ JCST
  3. TSFS终端存储文件系统边缘计算项目介绍-海洋
  4. 安装office 错误代码:30068-39
  5. Spring框架开发QQ登录教程
  6. 使用VSCode拉取代码报错would clobber existing tag
  7. ndows 内存诊断工具,Windows10自带内存检测工具的使用方法
  8. thinkpade450装内存条_thinkpad e450可以加内存条吗
  9. Android模拟登陆学信网获取四六级成绩
  10. Maxwell参数化建模