【神经网络结构的组成】深入理解 转置卷积与转置卷积核
🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀《深度学习理论直觉三十讲》_十二月的猫的博客-CSDN博客💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
1. 前言
2. 转置卷积
2.1 上采样的必要性
2.2 为什么要使用转置卷积
2.3 卷积运算
2.4 卷积运算多对一关系的思考
2.5 卷积核的本质(从矩阵卷积转为行卷积)
2.7 对转置卷积核的思考
3. 总结
1. 前言
之前有机会看过这篇文章:【深度学习基础】深入理解 卷积与卷积核-CSDN博客的友友一定对卷积并不陌生,这也算是各种网络结构(RNN、LSTM等)的构成基础之一。因为网络结构研究的就是各种层(卷积、池化、全连接等)的组合方式。然后模型就是研究如何使用这些网络结构用来解决特定的问题。本篇文章的内容——转置卷积 就属于网络结构的组成部分,各种层结构。
深度学习的三层次:
- 卷积、池化、全连接等层是深度学习中最基础的东西。他们的不同组合方式产生了不同的网络结构。
- 不同的网络结构对特征的提取是完全不同的。例如RNN结构能够提取上下文的信息适用于语言、时间等;CNN结构能够提取同一个图片从局部到整体的信息适用于计算机视觉上的使用;U-Net结构能够在提取特征的同时输出一个高分辨率的图片,因此适用于语义切割。
- 在对问题充分理解后,对该问题进行数学建模。在这个模型中,我们需要定义数据来源、完整架构(包括一个或多个网络结构)、训练方式、损失函数等。例如:生成对抗网络模型、扩散模型等。
使用说明:三层次的内容层层递进:前者是后者的基础,后者是前者的递进。因此猫猫也将其分到两个专栏中,第一部分(深度学习中的层结构)作为【神经网络结构的组成】安排在《AI认知筑基三十讲》专栏中,用于初学者的学习;第二部分(网络结构、模型)分为【深度学习的骨架与脉搏】和【深度学习的灵魂】安排在《深度学习理论直觉三十讲》专栏中,用于深度学习爱好者学习。
2. 转置卷积
明确一个点:转置卷积用于上采样。
2.1 上采样的必要性
使用神经网络生成图像通常涉及从低分辨率到高分辨率的上采样。因为神经网络理解一个图片的过程中就会用池化层、卷积层等下采样层将图片不断压缩,由此来获得更上层的信息(更抽象的图片信息)。理解之后想要再输出原本的图片+其他信息就需要用到上采样去处理了。下图就是一个上采样:
进行上采样操作的方法有多种:
- 最近邻插值
- 双线性插值
- 双三次插值
所有这些方法都涉及一些插值方法,我们必须在决定网络架构时选择它们。这就像手动特征工程,网络无法学习任何东西。
当然,最近大家都是用扩散模型或者对抗模型去完成超分辨率的工作(也就是把一个图片变更清晰)。使用生成模型去做上采样和使用插值或者转置卷积的方法是不同的,可以说生成模型
2.2 为什么要使用转置卷积
如果我们希望网络学习如何以最佳方式进行上采样,可以使用转置卷积。它不使用预定义的插值方法。它具有可学习的参数。理解转置卷积概念很有帮助,因为重要的论文和项目都使用它,例如:
- DCGAN 中的生成器采用随机采样值来生成全尺寸图像。
- 语义分割在编码器中使用卷积层提取特征,然后在解码器中恢复原始图像大小,从而对原始图像中的每个像素进行分类。
转置卷积也称为:
- 分数步长卷积
- 反卷积
我将在本文中仅使用转置卷积这个词,但您可能会在其他文章中注意到其他名称。
2.3 卷积运算
让我们用一个简单的例子来解释卷积运算的工作原理。假设我们有一个 4x4 矩阵,并应用一个 3 x 3 核的卷积运算,该核没有填充,步长为 1。如下所示,输出是一个 2x2 矩阵。
卷积运算计算输入矩阵与核矩阵之间元素乘积之和。由于没有填充且步长为 1,我们只能执行四次。因此,输出矩阵为 2x2。
这种卷积运算的关键点是输入值和输出值之间存在位置连通性。例如,输入矩阵的左上角值会影响输出矩阵的左上角值。我们使用 3 x 3 核将 9 个输入矩阵值连接到 1 个输出矩阵值。 卷积运算形成多对一关系 。记住这一点,稍后我们会用到它。
2.4 卷积运算多对一关系的思考
现在,假设我们想反过来。我们想将一个矩阵中的一个值与另一个矩阵中的九个值关联起来。这是一种一对多的关系。这就像卷积运算中的逆向操作,也就是转置卷积的核心思想。
例如,我们将一个 2x2 矩阵上采样为 4x4 矩阵,该操作保持 1 比 9 的关系。
但是我们如何执行这样的操作呢? 其实也不难理解了,卷积操作依靠卷积核实现多对一操作,那么转置卷积自然也可以依靠转置卷积核实现一对多关系。
2.5 卷积核的本质(从矩阵卷积转为行卷积)
我们可以用矩阵来表示卷积运算。它是一个重新排列的核矩阵,因此我们可以使用矩阵乘法来进行卷积运算。
但是,现在我说卷积操作可以转化为一维的方式展开,也就说一行代表一个卷积结果。原本卷积结果如下:
现在想要转变为这样:
1. 首先必然要将输入的矩阵做变化:将输入矩阵(4x4)展平为列向量(16x1)
2. 将卷积核变化:将 3x3 内核重新排列成 4x16 矩阵,如下所示:
因此就有下面的这种卷积:
上面操作就将矩阵卷积转为行卷积了!!
2.7 对转置卷积核的思考
看到上面对卷积核的变化,不难发现,卷积核的本质都可以转化为每一行的卷积。从矩阵卷积到行卷积的转变,让猫猫有了下面的思考:使用卷积矩阵,你可以从 16(4x4)变为 4(2x2),本质是因为卷积矩阵本身就是 4x16。然后,如果你有一个 16x4 矩阵,你可以从 4(2x2)变为 16(4x4)。
我们希望从 4 (2x2) 变为 16 (4x4)。因此,我们使用一个 16x4 矩阵。但这里还有一件事,我们需要检查一下是否满足,那就是是否保持 1 到 9 的关系。假设我们将卷积矩阵 C (4x16) 转置为 CT (16x4)。我们可以将 CT (16x4) 与列向量 (4x1) 进行矩阵乘法,生成一个输出矩阵 (16x1)。转置后的矩阵将一个值与输出中的 9 个值联系起来。
由此可以看到,我们将一个较小的矩阵(2x2)上采样为一个较大的矩阵(4x4)。同时也保证了一个值和九个值之间的对应关系。注意:矩阵中的实际权重值并非来自原始卷积矩阵(这是一个可训练的参数,和卷积核一样)。重要的是,权重布局与卷积矩阵形状的转置相同。
3. 总结
转置卷积运算与常规卷积形成相同的连通性,但在转置的方向上,我们可以用它来进行上采样。此外,转置卷积中的权重是可学习的。因此,我们不需要预先定义插值方法。虽然它被称为转置卷积,但这并不意味着我们采用某个现有的卷积核并对其进行转置。重点在于,与标准卷积矩阵相比,转置卷积对输入和输出之间的关联进行了反向处理(一对多关联,而非多对一关联)。因此,转置卷积并非真正的卷积。但我们可以用卷积来模拟转置卷积。我们通过在输入矩阵的值之间添加零来对输入进行上采样,这样直接卷积就能产生与转置卷积相同的效果。你可能会找到一些文章以这种方式解释转置卷积。然而,由于需要在卷积之前添加零来对输入进行上采样,因此效率较低。
简单点来说,转置卷积和卷积类似,只是提供一个形式固定的模板,核内部的值是多少是通过学习得到的。特别地:转置卷积会造成生成图像的棋盘格伪影。因此建议先进行插值方法,然后再进行转置卷积操作,以减少此类问题。
【如果想学习更多深度学习知识,可以订阅热门专栏】
- 《AI认知筑基三十讲》
- 《PyTorch科研加速指南:即插即用式模块开发》
- 《深度学习理论直觉三十讲》
如果想要学习更多人工智能的知识,大家可以点个关注并订阅,持续学习、天天进步你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~
相关文章:
【神经网络结构的组成】深入理解 转置卷积与转置卷积核
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀《深度学习理论直觉三十讲》_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 …...
GpuGeek:重构AI算力基础设施,赋能产业智能升级
在数字经济与实体经济深度融合的今天,人工智能已成为推动产业变革的核心驱动力。作为AI技术落地的关键支撑,算力基础设施正经历从"资源供给"向"服务赋能"的范式转变。GpuGeek凭借创新的技术架构和运营模式,重新定义了AI算…...
(2025亲测可用)Chatbox多端一键配置Claude/GPT/DeepSeek-网页端配置
1. 资源准备 API Key:此项配置填写在一步API官网创建API令牌,一键直达API令牌创建页面创建API令牌步骤请参考API Key的获取和使用API Host:此项配置填写https://yibuapi.com/v1查看支持的模型请参考这篇教程模型在线查询 2. ChatBox网页版配…...
质变科技发布自主数据分析MCP Server
2025年4月9日,质变科技正式发布Relyt AI MCP(Model Context Protocol),结合Relyt AI 在自主数据分析领域的前沿积累与MCP的开放连接能力,我们为用户带来了一个更智能、更灵活的数据交互生态系统。这一发布不仅拓展了Re…...
【17】Strongswan bus详解2
add_listener: (1)初始化一个entry,并将要添加的listener赋值entry。 (2)添加到bus的listeners链表的尾部。 remove_listener: (1)遍历listeners,通过内存位置…...
【Windows】系统安全移除移动存储设备指南:告别「设备被占用」弹窗
Windows系统安全移除移动存储设备指南:告别「设备被占用」弹窗 解决移动硬盘和U盘正在被占用无法弹出 一、问题背景 使用Windows系统时,经常遇到移动硬盘/U盘弹出失败提示「设备正在使用中」,即使已关闭所有可见程序。本文将系统梳理已验证…...
DeepSeek 与开源:肥沃土壤孕育 AI 硕果
当 DeepSeek 以低成本推理、多模态能力惊艳全球时,人们惊叹于国产AI技术的「爆发力」,却鲜少有人追问:这份爆发力的根基何在? 答案,藏在中国开源生态二十余年的积淀中。 从倪光南院士呼吁「以开源打破垄断」…...
[从零开始学数据库] 基本SQL
注意我们的主机就是我们的Mysql数据库服务器 这里我们可以用多个库 SQL分类(核心是字段的CRUD)  重点是我…...
uniapp开发android原生插件-java版本
一、uniapp官方文档 uni原生插件文档 二、开发流程 1、检测本地uniapp的版本号 2、根据版本号,下载uni提供的对应android的sdk对应demo 下载地址:Android 离线SDK - 正式版 | uni小程序SDK 下载文件后,复制出UniPlugin-Hello-ASÿ…...
git在IDEA中使用技巧
git在IDEA中使用技巧 merge和rebase 参考:IDEA小技巧-Git的使用 git回滚、强推、代码找回 参考:https://www.bilibili.com/video/BV1Wa411a7Ek?spm_id_from333.788.videopod.sections&vd_source2f73252e51731cad48853e9c70337d8e cherry pick …...
DeepSeek 接入 Excel 完整教程
一、前期准备 1.1 获取 DeepSeek API 密钥 注册 DeepSeek 平台 访问 DeepSeek 官方网站(或指定的 API 服务平台,如硅基流动等)。若尚未注册,按照平台指引创建新账号并完成登录。 创建 API 密钥 进入用户控制面板,找到…...
【项目管理】第15章 项目风险管理-- 知识点整理
项目管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 第6章 项目管理概论 4分第13章 项目资源管理 3-4分第7章 项目…...
如何将自己的项目推送到GitHub上面去
将项目推送到GitHub的流程总结 以下是将本地项目推送到GitHub仓库的完整流程: 1. 初始化Git仓库(如果尚未初始化) cd 项目目录 git init2. 配置远程仓库 # 添加远程仓库地址 git remote add origin https://github.com/用户名/仓库名.git…...
C/C++基础
C开发环境 纯语言开发要求:CIDE。 极简C/C 语法规则 仅记原始规则,把握编程的本质,不做孔乙己,要做说干就干的平头哥。 原始的规则: 各“语法单位”(组成部分)使用任意个(至少1个…...
Qt炫酷仪表盘
Qt学习优化的一款汽车仪表控件,根据github上面开源的进行优化,主要使用QPainter实现的一款炫酷仪表盘,其中的渐变效果比较有感觉 实现结果 仪表盘 实现源码 h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPixmap> #include <QTimer&…...
云渗透一(云租户渗透⼊⻔)
云平台介绍 阿⾥云 阿⾥云创⽴于 2009 年,服务着制造、⾦融、政务、交通、医疗、电信、能源等众多领域的领军企业,包 括中国联通、12306 、中⽯化、中⽯油、⻜利浦、华⼤基因等⼤型企业客户,以及微博、知乎、锤⼦科技 等明星互联⽹公司。 应⽤程序访问令牌 - T1527 云实例…...
R绘图|6种NMDS(非度量多维分析)绘图保姆级模板——NMDS从原理到绘图,看师兄这篇教程就够了
感谢西农听雨同学对本文提供的大力支持! 一、引言 非度量多维尺度分析(NMDS)是一种用来简化复杂数据的工具,特别适合处理那些难以直接理解的高维数据(微生物群落数据)。它的主要目的是把数据“压缩”到更低…...
spark-SQL核心编程
1. Spark-SQL简介 起源与发展:Spark-SQL前身为Shark,因对Hive依赖制约Spark发展而被弃用。它汲取Shark优点重新开发,在数据兼容、性能优化和组件扩展方面表现出色。 特点:易整合,统一数据访问,兼容Hive&…...
使用MCP服务通过自然语言操作数据库(vscode+cline版本)
使用MCP服务操纵数据库(vscodecline版本) 本文主要介绍,在vscode中使用cline插件调用deepseek模型,通过MCP服务器 使用自然语言去操作指定数据库。本文使用的是以己经创建号的珠海航展数据库。 理解MCP服务: MCP(Model Context…...
.NET Core DI(依赖注入)的生命周期及应用场景
在.NET中,依赖注入(DI,Dependency Injection)是一种设计模式,它通过将依赖关系注入到类中,而不是让类自己创建依赖项,来降低类之间的耦合度。这使得代码更加模块化、灵活和易于测试。在.NET中&a…...
VSCode写java时常用的快捷键
首先得先安好java插件 1、获取返回值 这里是和idea一样的快捷键的,都是xxxx.var 比如现在我new一个对象 就输入 new MbDo().var // 点击回车即可变成下面的// MbDo mbDo new MbDo()//以此类推get方法也可获取 mbDo.getMc().var // 点击回车即可变成下面的 // St…...
Java微服务流量控制与保护技术全解析:负载均衡、线程隔离与三大限流算法
在微服务架构中,流量控制与系统保护是保障服务高可用的核心要素。本文将深入剖析负载均衡原理、线程隔离机制,并通过Java代码实例详解滑动窗口、漏桶、令牌桶三大限流算法,帮助开发者构建健壮的分布式系统。 一、负载均衡核心原理与实践 1.1 …...
Java 企业级应用:SOA 与微服务的对比与选择
企业级应用开发中,架构设计是决定系统可扩展性、可维护性和性能的关键因素。SOA(面向服务的架构)和微服务架构是两种主流的架构模式,它们各自有着独特的和设计理念适用场景。本文将深入探讨 SOA 和微服务架构的对比,并…...
Nacos深度剖析与实践应用 -1
📹 Nacos背景 在现在数字化快速发展的时代🚄,微服务架构已成为构建大型分布式系统的主流架构模式。随着微服务数量的不断增加,服务之间的通信、配置管理以及服务的高可用性等问题变得愈发复杂。Nacos 作为阿里巴巴开源的一个动态服…...
WinForm真入门(16)——LinkLabel 控件详解
以下是 WinForm 中 LinkLabel 控件的基本概念、核心属性、事件及典型应用案例的总结: 一、基本概念 LinkLabel 是 WinForm 中用于显示超链接文本的控件,继承自 Label,支持单链接或多链接区域。用户点击链接时可触发自定义行为࿰…...
功能丰富的PDF处理免费软件推荐
软件介绍 今天给大家介绍一款超棒的PDF工具箱,它处理PDF文档的能力超强,而且是完全免费使用的,没有任何限制。 TinyTools(PC)这款软件,下载完成后即可直接打开使用。在使用过程中,操作完毕后&a…...
【MySQL高级】事务,存储引擎,索引(一)
Mysql高级 DQL查询语句 反引号 模糊查询避免%出现在开头,会造成索引失效 order by排序先后 表名列名都需要用${},他们不能带’’ 去重统计数量 null的运算 分组函数会自动忽略null,不用对null进行处理 截取子串substr(字段,下标…...
React 之 Redux 第三十二节 Redux 常用API及HOOKS,以及Redux Toolkit核心API使用详解
一、4.X版本中核心 API 和用途 1. createStore(reducer, [preloadedState], [enhancer]) 用途: 创建 Redux Store(数据仓库) 参数: reducer: 状态更新函数 preloadedState: 初始状态(可选) enhancer: 中间件增强器(如…...
react tailwindcss最简单的开始
参考教程: Install Tailwind CSS with Vite - TailwindCSS中文文档 | TailwindCSS中文网https://www.tailwindcss.cn/docs/guides/vite操作过程: Microsoft Windows [版本 10.0.26100.3476] (c) Microsoft Corporation。保留所有权利。D:\gitee\tailwi…...
波束形成(BF)从算法仿真到工程源码实现-第九节-延迟相减波束形成(delay sub)
一、概述 本节对delay sub算法进行仿真。更多资料和代码可以进入https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习。 二、代码仿真 import numpy as np import soundfile as sf import scipy import matplotlib.pyplot as pltfft…...
系统假死问题排查
系统假死定义 应用进程存在,但是无法正常提供服务(请求没有响应,或者响应超时)。 系统假死原因 主要分为两大类:连接无法建立、请求无法处理,如下图所示: 系统假死的原因还是比较多的&…...
图像处理有哪些核心技术?技术发展现状如何?
在数字化信息爆炸的时代,文档图像预处理技术正悄然改变着我们处理文字信息的方式。无论是手持拍摄的收据、扫描仪中的身份证,还是工业机器人采集的复杂文档,预处理技术都在背后默默提升着OCR(光学字符识别)系统的性能。…...
解决在linux下运行rust/tauri项目出现窗口有内容,但是渲染出来成纯黑问题
起因 最近折腾了一下rust/tauri程序开发,据说这玩意性能非常牛皮就玩了一下,但是我运行打包一直出现一个奇怪问题,窗口能正常打开,但是是纯黑的什么内容都没有,鼠标移上去又发现指针会变换(看起来是内容又…...
计算机网络:流量控制与可靠传输机制
目录 基本概念 流量控制:别噎着啦! 可靠传输:快递必达服务 传输差错:现实中的意外 滑动窗口 基本概念 换句话说:批量发货排队验收 停止-等待协议 SW(发1份等1份) 超时重传:…...
vue2改变el-message字体、图标尺寸样式(vue2,element-ui)
前言 最近接手一个项目,vue2elementui的,产品觉得message的字体太小了,展示起来看不清,所以需求就是把message的字体和图标变大,实现路径如下: 找到自己的main.scss文件,并且加上对应内容: .e…...
【笔记ing】AI大模型-05单层感知机与多层感知机
单层感知机,是一种最简单的人工神经网络 输入层input layer,输入的样本特征 输出层output layer,输出的预测结果 权值W(w0,w1,w2,...,wn)^T,感知机的权值参数,其中的w0叫做偏置,也称截距,类似…...
分布式热点网络
核心设计理念: 在自然灾害(地震、洪水、台风)、极端环境(无人区)及网络管制(欠费停机)等场景下,传统中心化网络易因核心节点失效导致全局瘫痪。本方案提出构建去中心化设备网络&…...
为 docker 拉取镜像配置代理
为 Docker 配置代理,有 两个层面 的操作:(1) Docker 守护进程(用于拉取镜像等操作),(2) Docker 容器内部(容器内应用的网络流量)。 我们这篇文章着重于前者,以下是详细步骤ÿ…...
人工智能与云计算:技术融合与实践
1. 引言 人工智能(AI)和云计算是当今科技领域最具变革性的两项技术。AI通过模拟人类智能解决问题,而云计算则提供了弹性可扩展的计算资源。两者的结合创造了前所未有的可能性,使企业能够以更低的成本部署复杂的AI解决方案。 本文将探讨AI与云计算的技术融合,包括核心概念、…...
GIT的一些操作
git仓库迁移,包括所有分支和标签 git clone --mirror http://git./test-frontend.git test-frontend 克隆项目到 test-frontend文件夹下,--mirror 表示所有分支和标签 cd test-frontend 切到目录下 git remote add bd http://git./new-frontend.git …...
大模型——Crawl4AI入门指南
大模型——Crawl4AI入门指南 本快速入门指南介绍了Crawl4AI,涵盖了基本用法、先进功能(例如分块和提取策略)以及异步编程。用户将学习如何实现各种爬虫技术,包括截图、JSON提取和动态内容爬取。 1. 什么是Crawl4AI? Crawl4AI 是一个强大的异步网络爬虫库,旨在简化信息…...
48、Spring Boot 详细讲义(五)
3、集成MyBatis 3.1 MyBatis 概述 3.1.1 核心功能和优势 MyBatis 是一个 Java 持久层框架,它通过 XML 或注解配置 SQL 语句,将 Java 方法与 SQL 语句映射起来,消除了大量的 JDBC 代码,简化了数据库操作。MyBatis 的核心功能和优势包括: ORM(对象关系映射):通过 XML …...
设计模式-桥接模式
例如形状和颜色,如果这么设计? 将两个具有紧耦合的设计,使用组合,为桥接模式 客户端的代码: 抽象:形状是抽象; 实现:实现颜色的代码...
3.vtkProp 和vtkProp3D
文章目录 vtkProp 和vtkProp3D使用vtkProp3D使用vtkPro vtkProp 和vtkProp3D vtkProp 和 vtkProp3D 都是VTK(Visualization Toolkit)库中的类,它们用于在渲染场景中表示可视化元素。理解这两个类的区别和用途对于有效地使用VTK进行三维数据可…...
大模型之Transformers , PyTorch和Keras
Transformers、PyTorch 和 Keras 的对比 特性TransformersPyTorchKeras主要应用自然语言处理(NLP)任务计算机视觉、NLP、强化学习等快速原型设计和深度学习模型构建架构基于 Transformer 模型,强大的自注意力机制动态计算图,灵活的模型构建和调试高层次 API,简化模型开发,…...
云原生(Cloud Native)的详解、开发流程及同类软件对比
以下是云原生(Cloud Native)的详解、开发流程及同类软件对比: 一、云原生核心概念 定义: 云原生(Cloud Native)是基于云环境设计和运行应用程序的方法论,强调利用云平台的弹性、分布式和自动化…...
从文本到视频:基于扩散模型的AI生成系统全解析(附PyTorch实现)
当语言遇见动态视觉 "用文字生成电影场景"曾是科幻作品中的幻想,如今借助扩散模型(Diffusion Models)正逐步成为现实。本文将手把手带你实现一个创新的文本到视频生成系统,通过深度解析扩散模型原理,结合独…...
ES6学习04-数组扩展:扩展运算符、新增方法
一、扩展运算符 1. 2. eg: 3. 二、新增方法 1. arguments 元素组合 类似数组对象 2....
TiDB 部署指南(单机模式) CentOS 7 安装 MariaDB 教程
文章目录 TiDB 部署指南(单机模式)& CentOS 7 安装 MariaDB 教程简介TiDB 关键特性TiDB 单机部署步骤下载 TiDB 安装包校验文件完整性解压并进入目录启动 PD 服务启动 TiKV 服务启动 TiDB 服务使用 MySQL 客户端连接 TiDB CentOS 7 安装 MariaDB&…...
C++23 新特性:auto(x) 和 auto{x} 的衰变复制
文章目录 一、什么是衰变复制二、为什么引入衰变复制三、auto(x) 和 auto{x} 的区别四、使用场景1. 模板编程中的副本创建2. 避免引用失效3. 并发编程中的线程构造 五、性能考虑六、总结 在 C23 中, auto(x) 和 auto{x} 的引入为语言带来了新的便利性和灵活性。这…...