超平实版Pytorch CNN Conv2d

server/2024/9/23 14:26:13/

torch.nn.Conv2d

基本参数

in_channels (int)
        输入的通道数量。比如一个2D的图片,由R、G、B三个通道的2D数据叠加。

out_channels (int)
        输出的通道数量。

kernel_size (int or tuple)
        kernel(也就是卷积核,也可以称为filter)的形状

bias (bool, optional)
        是否加上一个可学习的bias。 Default: True.

stride (int or tuple)
        卷积步长。

注:关于为什么kernel_size和stride可以有int、tuple两种表示方式

如果是int,就是对于高那条边、宽那条边应用一样的值。比如如果你的kernel是int,那就是一个正方形的kernel。
如果是tuple,则第1个值应用在高那条边上,第2个值应用在宽那条边上!

 

输入输出的形状

输入形状:
     ( N , C i n , H , W ) (N, C_{in}, H, W) (N,Cin,H,W)
     N N N是batch size
     C i n C_{in} Cin是输出的通道数量
     H H H是2D input的高度
     W W W是2D input的宽度

输出形状:
     ( N , C o u t , H o u t , W o u t ) (N, C_{out}, H_{out}, W_{out}) (N,Cout,Hout,Wout)

 

公式

在这里插入图片描述

公式左边:
         N N N是batch size
         C o u t C_{out} Cout是输出的通道
        (i, j)是索引

        所以这里的 o u t ( N i , C o u t j ) out(N_i, {C_{out}}_j) out(Ni,Coutj)指的就是当前batch中第I个数据的第j个通道的情况。
        你就理解为,现在开始我们抛开batch不谈,且就看一个通道。

 
公式右边:
        五角星理解为一个操作
         k k k是在数数,从0数到 C i n − 1 C_{in-1} Cin1,也就是循环一遍input中的通道数量而已。

 

图例

(图片引用自Apply a 2D Convolution Operation in PyTorch)
在这里插入图片描述

对于每一次kernel的移动:完全对应的位置,数字两两相乘,然后每一对的结果相加,最后加上bias。这里不确定为什么kernel画了三个颜色,我觉得可能只是表示下面计算的顺序是从左到右、从上到下写的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文档

  1. Pytorch Conv2d文档
  2. Apply a 2D Convolution Operation in PyTorch
  3. PyTorch 2D Convolution

http://www.ppmy.cn/server/6184.html

相关文章

MySQL到Doris的StreamingETL实现(Flink CDC 3.0)

MySQL到Doris的StreamingETL实现(Flink CDC 3.0) 1 环境准备 1)安装FlinkCDC [roothadoop1 software]$ tar -zxvf flink-cdc-3.0.0-bin.tar.gz -C /opt/module/2)拖入MySQL以及Doris依赖包 将flink-cdc-pipeline-connector-do…

5.1激光雷达跟随(冰达机器人)

5.1激光雷达跟随功能开发 5.1.1激光雷达跟随功能需求分析 在完成激光雷达跟踪之前,我们先来拆解一下功能。要实现跟随,首先需要确定跟随的目标,在这个例程中,我们使机器人根据离它最近的物体。周围物体的距离可以通过激光雷达测量…

python基础语法+爬虫+图像处理+NumpyPandas数据处理(12天速成,第7天上-爬虫Scrapy)

爬虫(Scrapy):写一段程序代码(网络访问),自动获取网页(网络)上的数据服务端语言:网络编程,都可以作为爬虫java c c python 等均可写爬虫程序js不是一个典型的服务端程序&…

线上研讨会 | 新一代数字化技术赋能机器人及智能产线行业高质量发展

随着智能制造的快速推进,制造业转型升级到了关键阶段。在此背景下,全球各主要经济体积极围绕以工业机器人为主的智能制造业展开激烈竞争。作为打造从“制造”到“智造”的关键基础设施,工业机器人扮演者愈加重要的角色。我国作为工业机器人的…

【2024】深度学习配置环境常见报错,持续更新中....

No such file or directory: ‘:/usr/local/cuda-10.1:/usr/local/cuda-10.1/bin/nvcc‘: 确保CUDA正常后,直接运行以下代码: export CUDA_HOME/usr/local/cuda详细原因参照,安装mmcv-full时报错:Could not build wheels for mm…

TensorFlow 的基本概念和使用场景

TensorFlow 的基本概念和使用场景 TensorFlow 是一个开源的机器学习框架,由 Google 的 Google Brain 团队开发。它广泛用于数据科学、机器学习、深度学习和其他相关领域。以下是一篇关于 TensorFlow 的基本概念和使用场景的概述文章。 1. TensorFlow 简介 Tensor…

在PostgreSQL中如何实现分区表以提高查询效率和管理大型表?

文章目录 解决方案1. 确定分区键2. 创建分区表3. 数据插入与查询4. 维护与管理 示例代码1. 创建父表和子表2. 插入数据3. 查询数据 总结 随着数据量的增长,单一的大型表可能会遇到性能瓶颈和管理难题。PostgreSQL的分区表功能允许我们将一个大型表分割成多个较小的、…

XiaodiSec day034 Learn Note 小迪渗透学习笔记

XiaodiSec day034 Learn Note 小迪渗透学习笔记 记录得比较凌乱,不尽详细 day34 黑盒审计和白盒审计 与 cms 相关 .net java php 代码审计 开始 黑盒:找文件上传的功能 个人用户中心是否存在文件上传功能后台管理系统是否存在文件上传功能字典目录…