torch.nn系列函数学习 --- Conv2d函数

embedded/2024/12/22 20:04:59/

该函数的官方文档:

https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d 

torch.nn.Conv2d(in_channelsout_channelskernel_sizestride=1padding=0dilation=1groups=1bias=Truepadding_mode='zeros'device=Nonedtype=None)

参数

以下是参数释义:

  • in_channels (int) – 输入图像的通道数
  • out_channels (int) – 卷积生成的输出通道数
  • kernel_size (int 或 tuple) – 卷积核的大小
  • stride (int 或 tuple, 可选) – 卷积的步幅。默认值:1
  • padding (int, tuple 或 str, 可选) – 在输入的四周添加的填充。默认值:0
  • padding_mode (str, 可选) – 填充模式,可以为 'zeros'(零填充)、'reflect'(反射填充)、'replicate'(复制填充)或 'circular'(循环填充)。默认值:'zeros'
  • dilation (int 或 tuple, 可选) – 卷积核元素之间的间隔。默认值:1
  • groups (int, 可选) – 从输入通道到输出通道的分组连接数。默认值:1
  • bias (bool, 可选) – 如果为 True,则为输出添加可学习的偏差项。默认值:True

注意:

  • stride 控制卷积操作的步幅,可以是一个单一的数字或一个元组。

  • padding 控制输入的填充量。可以是字符串 {‘valid’, ‘same’},或者是一个整数 / 整数组成的元组,表示在两侧应用的隐式填充量。

  • dilation 控制卷积核点之间的间距,也称为 à trous 算法。这个概念较难描述,不过此https://github.com/vdumoulin/conv_arithmetic/blob/master/gif/dilation.gif中有一个关于 dilation 的可视化展示。

  • groups 控制输入与输出之间的连接。in_channelsout_channels 都必须能被 groups 整除。例如:

    • groups=1 时,所有的输入都会与所有输出进行卷积。
    • groups=2 时,操作等价于有两个并行的卷积层,每个卷积层分别处理一半的输入通道,生成一半的输出通道,然后将结果拼接起来。
    • groups=in_channels 时,每个输入通道都有自己的一组卷积核(大小为 out_channels / in_channels)。
    • groups == in_channelsout_channels == K * in_channels,其中 K 是一个正整数时,这种操作也被称为“深度卷积(depthwise convolution)”。

参数 kernel_size, stride, padding, dilation 可以是:

  • 单个整数 —— 在这种情况下,高度和宽度维度使用相同的值。
  • 两个整数组成的元组 —— 在这种情况下,第一个整数用于高度维度,第二个整数用于宽度维度。

Conv2d 输入输出关系/输出尺寸计算公式:


http://www.ppmy.cn/embedded/115746.html

相关文章

Java项目实战II基于Java+Spring Boot+MySQL的卓越导师双选系统设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 在当今高等教育环境中,师生之间的有效沟通与匹配对于促进学生发展、提升教学质量至关重要…

pcdn盒子连接方式

连接方式 大部分连接方式如下 光猫拨号 → 路由器 → 盒子 优点:光猫负责拨号,路由器只需做路由转发,性能要求不高缺点:光猫会有一层nat,路由器还有一层nat,两层nat需要在两个设备上都做nat优化注意&…

python全栈学习记录(十七)logging、json与pickle、time与datatime、random

logging、json与pickle、time与datatime、random 文章目录 logging、json与pickle、time与datatime、random一、logging二.json与pickle三.time与datatime四.random 一、logging logging模块用来记录日志信息。 import logging # 进行基本的日志配置 logging.basicConfig( fi…

高级java每日一道面试题-2024年9月19日-框架篇[Mybatis篇]-说一下mybatis的一级缓存和二级缓存?

如果有遗漏,评论区告诉我进行补充 面试官: 说一下mybatis的一级缓存和二级缓存? 我回答: 在MyBatis中,缓存机制是一个重要的特性,它可以帮助减少数据库的访问次数,从而提高应用的性能。MyBatis提供了两级缓存:一级缓存&#x…

MySQL5.7主从复制集群如何配置半同步复制

MySQL 5.7主从复制集群配置半同步复制的过程涉及多个步骤,以下是一个详细的配置流程: 一、前置条件 确保MySQL版本:确保你正在使用的MySQL版本为5.5或更高版本,因为半同步复制是从MySQL 5.5开始引入的。检查动态加载功能&#x…

C++ 9.19

练习&#xff1a;要求在堆区申请5个double类型的空间&#xff0c;用于存储5名学生的成绩。请自行封装函数完成 1> 空间的申请 2> 学生成绩的录入 3> 学生成绩的输出 4> 学生成绩进行降序排序 5> 释放申请的空间 主程序中用于测试上述函数 #include<ios…

OpenAI o1的真正前世竟来自字节?ReFT技术超越传统的数学微调能力,让GPT实现进化

导语&#xff1a; 随着ChatGPT-o1的发布&#xff0c;大型语言模型在复杂推理上取得进展&#xff0c;但传统监督式微调&#xff08;SFT&#xff09;仍存在局限。字节跳动研究院提出的增强微调&#xff08;ReFT&#xff09;技术结合了SFT和PPO算法&#xff0c;旨在提升模型泛化能…

Python进阶学习笔记(一)对象

1.对象模型 在面向对象理论中类和对象是不同的概念&#xff0c;而在python中类也是对象&#xff0c;叫做类型对象。 所以python中的类&#xff0c;实例对象&#xff0c;类型都是对象。 元类型&#xff1a; 在python中实例对象的类型为对应类型的对象&#xff0c;而类型的对象…