【动手学深度学习】6.4 多输入多输出通道

news2024/11/24 14:59:33
  • 彩色图像具有标准的RBG通道来代表红绿蓝,但是到目前位置我们仅展示了单个输入和单个通道的简化例子。这使得我们可以将输入,卷积核和输出看作二维张量
  • 而当我们添加通道时,输入和隐藏表示都变成了三维张量。例如每个RGB输入图像都具有 3 × h × w 3×h×w 3×h×w 的形状,我们将这个大小为 3 的轴称为通道维度

1. 多输入通道

  • 当输入包含多个通道时,需要构造一个与输入数据具有相同输入通道数的卷积核,以便与输入数据进行互相关运算
  • 我们对不同的通道之间分别进行互相关运算如下所示
    在这里插入图片描述
  • 我们下面尝试用代码来进行实现
    在这里插入图片描述
  • 下面进行验证
    在这里插入图片描述

2. 多输出通道

  • 到目位置,不论有多少输入通道,我们都只有一个输出通道,但是每一层有多个输出通道是很重要的

  • 在最流行的神经网络架构中,随着层数的加深,我们常会增加输出通道的维数,通过减少空间分辨率以获得更大的通道深度

  • 直观解释就是:我们将每个通道看作对不同特征的响应,而现实可能更复杂一些,因为每个通道不是独立学习的,而是为了共同使用而优化的。因此多输出通道并不仅仅是学习多个单通道的检测器

  • c i c_i ci c 0 c_0 c0 分别表示输入和输出的通道数目,并让 k h k_h kh k w k_w kw 为卷积核的高度和宽度。为了获得多通道的输出,我们可以为每一个输出通道创建一个形状为 c i × k h × k w c_i×k_h×k_w ci×kh×kw 的卷积核张量,这样卷积核的形状就变成了 c 0 × c i × k h × k w c_0×c_i×k_h×k_w c0×ci×kh×kw,即每个输出通道都有 c i × k h × k w c_i×k_h×k_w ci×kh×kw 的卷积核

  • 每个输出通道先获取所有输入通道,再以对应该输出通道的卷积核计算出结果

  • 下面我们实现一个计算多个通道的输出的互相关函数
    在这里插入图片描述

  • 下面介绍torch.stack
    在这里插入图片描述
    在这里插入图片描述

  • 我们对 K 进行堆叠来制造多个输出
    在这里插入图片描述

  • 对输入张量 X 和 卷积核张量 K 进行互相关运算。现在的输出包含三个通道,第一个通道的结果与先前输入张量 X 和多输出单通道结果一致
    在这里插入图片描述


3. 1 × 1 1×1 1×1 卷积层

  • 1 × 1 1×1 1×1 卷积看起来似乎没多大意义。毕竟,卷积的本质是有效提取相邻像素间的相关特征,而 1 × 1 1×1 1×1 卷积显然没有此作用。
  • 但是, 1 × 1 1×1 1×1 仍然十分流行,经常包含在复杂深层网络的设计中,下面我们来解读它的实际作用
    在这里插入图片描述
  • 下图展示了使用 1 × 1 1×1 1×1 卷积层与三个输出通道和两个输入通道的互相关计算。这里的输入和输出具有相同的宽度和高度,输出中的每个元素都是从输入图像中同一位置元素的线性组合
  • c i c_i ci 个输出值转换为 c 0 c_0 c0 个输出值。因为这仍然是一个卷积层,所以跨像素的权重是一致的。此时卷积层的权重为 c 0 × c i c_0×c_i c0×ci 再加上一个偏置,这一点有点像MLP
    在这里插入图片描述
  • 我们尝试用全连接层实现 1 × 1 1×1 1×1 卷积
    在这里插入图片描述
  • 当执行 1 × 1 1×1 1×1 运算时,上述函数相当于先前实现的互相关函数 corr2d_multi_in_out,验证如下在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2209071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工具篇-完整的 Git 项目管理工具教程(在命令框中使用 Git、在 IDEA 中使用 Git)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Git 概述 2.0 Git 的安装和配置 3.0 获取本地仓库 3.1 基础操作指令 3.2 分支 4.0 Git 远程仓库 4.1 创建远程仓库 4.2 配置 SSH 公钥 4.3 操作远程仓库 5.0 使用…

活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!

第二十四届 GOPS 全球运维大会暨研运数智化技术峰会上海站将于2024年10月18日-19日在上海中庚聚龙酒店召开。大会将为期2天,侧重大模型、DevOps、SRE、AIOps、BizDevOps、云原生及安全等热门技术领域。特设了如大模型 运维/研发测试、银行/证券数字化转型、平台工程…

Qt-系统处理窗口移动和大小改变相关事件(60)

目录 描述 使用 补充:事件分发 / 事件过滤 描述 移动和改变窗口大小事件 使用 重写事件 移动窗口位置 改变窗口大小 补充:事件分发 / 事件过滤 这个属于事件背后的逻辑,可以让程序员有更多的操作,不过要小心使用&#xff0c…

凸函数 (Convex Function)

文章目录 1.凸函数定义2. 凸函数和非凸函数的图示3.闭凸函数 1.凸函数定义 凸函数是指在其图像上的任意两个点之间画一条线,这条线始终不会低于函数图像。其数学定义为对于任何两个点 x x x 和 y y y,以及 λ ∈ [ 0 , 1 ] \lambda \in [0,1] λ∈[0,…

51单片机的智能温控风扇【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器步进电机按键、蜂鸣器、LED等模块构成。适用于智能风扇调速等相似项目。 可实现功能: 1、LCD1602实时显示温度、自动/手动和风扇风力等级 2、温度传感器DS18B20采集温度信息 3、手动模式:可…

【软件测试】基本知识3

一、能够说出软件缺陷判定标准 说明:执行结果与用例的期望结果不一致(含义),为缺陷。 缺陷的定义:软件在使用过程中存在的任何问题都叫软件的缺陷,简称bug 缺陷判定标准 软件未实现需求(规格&…

[单master节点k8s部署]37.微服务(一)springCloud 微服务

微服务架构的一个重要特点是,它与开发中使用的具体编程语言或技术栈无关。每个微服务都可以使用最适合其功能需求的语言或技术来实现。例如,一个微服务可以用Java编写,另一个微服务可以用Python、Go、Node.js等编写。微服务架构允许这种灵活性…

OpenCV高级图形用户界面(5)获取指定滑动条(trackbar)的当前位置函数getTrackbarPos()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 返回滑动条的位置。 该函数返回指定滑动条的当前位置。 cv::getTrackbarPos() 函数用于获取指定滑动条(trackbar)的当前…

【C++差分数组】P1672何时运输的饲料

本文涉及知识点 C差分数组 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 P1672何时运输的饲料 原文比较啰嗦&#xff0c;我简述一下&#xff1a; 第x天运来F1(1<F1<1e6)千克的饲料&#xff0c;第D&#xff08;1<2e3)天还剩F2&…

数据结构-5.7.二叉树的层次遍历

一.演示&#xff1a; 1.初始化队列&#xff1a; 2.根结点入队&#xff1a; 3.判断队列是否为空&#xff0c;此时有根结点&#xff0c;说明不为空&#xff0c;则队头结点即根结点出队并访问&#xff0c;再先进它的左结点&#xff0c;最后进它的右结点&#xff1a; 4.之后对进来…

4.stm32 GPIO输入

按键简介 按键&#xff1a;常见的输入设备&#xff0c;按下导通&#xff0c;松手断开 按键抖动&#xff1a;由于按键内部使用的是机械式弹簧片来进行通断的&#xff0c;所以在按下和松手的瞬间会伴随有一连串的抖动 传感器模块简介 传感器模块&#xff1a;传感器元件&#…

如何使用ssm实现超市管理系统

TOC 10917ssm超市管理系统 系统概述 进过系统的分析后&#xff0c;就开始记性系统的设计&#xff0c;系统设计包含总体设计和详细设计。总体设计只是一个大体的设计&#xff0c;经过了总体设计&#xff0c;我们能够划分出系统的一些东西&#xff0c;例如文件、文档、数据等。…

专线监控的使用方法:运维团队的全面实战指南

在当今高度信息化的时代&#xff0c;专线网络已成为企业连接不同地域、保障业务连续性的重要基础设施。然而&#xff0c;随着网络架构的复杂化和业务需求的多样化&#xff0c;运维团队面临着前所未有的挑战。为了有效应对这些挑战&#xff0c;运维团队需要深入了解并熟练掌握专…

利用GPU的OpenCL和MLC-LLM框架运行小语言模型-地瓜RDK X5开发板-非量产算法仅供整活

RDK™ X5机器人开发套件&#xff0c;D-Robotics RDK X5搭载Sunrise 5智能计算芯片&#xff0c;可提供高达10 Tops的算力&#xff0c;是一款面向智能计算与机器人应用的全能开发套件&#xff0c;接口丰富&#xff0c;极致易用。 本文利用其32GFLOPS的一颗小GPU&#xff0c;支持…

60 mysql 存储引擎之静态格式 MyISAM

前言 我们这里来看一下 MyISAM 存储引擎, 我们常见的那些 user, db, table_priv, proc 等等是基于 MyISAM 这是我们经常会提及的 两种持久化的存储引擎之一, 一是 MyISAM存储引擎, 另外一个是 InnoDB存储引擎 我们这里来看一下 MyISAM 中固定长度的数据表的相关处理 mysql…

振动分析-35-滚动轴承全生命周期模式下的时域特征对比(实战)

文章目录 1 数据集概述1.1 轴承参数1.2 运行工况1.3 数据详情2 加载显示全量数据2.1 数据提取2.2 全寿命数据可视化3 每次测量的时域特征3.1 计算时域特征的函数3.2 水平和垂直对比35Hz12kN3.3 水平和垂直对比37.5Hz11kN3.4 水平和垂直对比40Hz10kN3.5 结果分析4 参考附录1 数据…

单链表速通后续!

目录 1>>闲话 2>>头删 3>>查找 4>>在指定位置之前插入 5>>删除指定结点 6>>指定位置之后插入 7>>删除指定位置之后的结点 特别思考&#xff1a; 8>>销毁单链表 Slist.h Slist.c test.c 9>>总结 1>>闲话…

C++一个很好的计时方法

C一个很好的计时方法 //记时LARGE_INTEGER t1;LARGE_INTEGER t2;LARGE_INTEGER f;QueryPerformanceFrequency(&f);QueryPerformanceCounter(&t1);Sleep(100);QueryPerformanceCounter(&t2);double time;time (double)(t2.QuadPart-t1.QuadPart)/(double)f.QuadPar…

机器学习篇-day06-集成学习-随机森林 Adaboost GBDT XGBoost

一. 集成学习思想 集成学习 原理 集成学习是机器学习中的一种思想&#xff0c;它通过多个模型的组合形成一个精度更高的模型&#xff0c;参与组合的模型称为弱学习器&#xff08;基学习器&#xff09;。训练时&#xff0c;使用训练集依次训练出这些弱学习器&#xff0c;对未知…

Chromium 如何查找前端 window.navigator, window.screen等对象在c++中的实现

以前端Navigator 对象为例&#xff1a; 1、直接在vscode里面搜索"Navigator" 过滤条件*.idl&#xff0c;这样可以搜到Navigator.idl对象文件。 2、打开Navigator.idl 可以看到平级目录对应的Navigator.h 和Navigator.cc定义 3、Navigator.idl会在out\Debug\gen\thir…