Transformer数学推导——Q56 推导动态残差门控(Dynamic Residual Gating)的权重更新公式
该问题归类到Transformer架构问题集——残差与归一化——残差连接。请参考LLM数学推导——Transformer架构问题集。
1. 引言
在深度学习的演进历程中,网络结构的创新始终围绕着如何更高效地处理信息、提升模型性能展开。动态残差门控(Dynamic Residual Gating)犹如一位智慧的 “信息调度师”,打破传统残差连接的固定模式,为神经网络中信息的传递与融合带来了全新的思路。它能够依据输入信息的特征动态调整信息的流动路径,使得网络在学习过程中更加灵活高效。而权重更新公式作为动态残差门控发挥作用的核心机制,就像是这位 “信息调度师” 的 “操作指南”,决定了其如何精准调控。深入推导这一公式,不仅能从理论层面揭示动态残差门控的工作原理,更能为其在实际应用中,尤其是在大型语言模型(LLM)等复杂场景下的优化与改进提供坚实的依据。接下来,我们将逐步揭开动态残差门控权重更新公式的神秘面纱。
2. 动态残差门控的基本概念
2.1 什么是动态残差门控
想象神经网络是一座庞大复杂的信息大厦,传统残差连接如同固定的直梯,为信息在楼层(网络层)间传递提供了便捷通道。而动态残差门控则更像配备智能门禁系统的电梯,这个 “智能门” 由门控函数 g(x) 掌控,它依据输入 x 的 “身份特征”,动态决定信息通过的比例。在动态残差门控结构中,输出 y 的计算方式为 。其中,x 是输入信息,F(x) 是经过该层变换后的信息,g(x) 是关键的门控函数,其取值范围在 [0, 1] 之间 。当 g(x) 趋近于 1 时,就如同大门大开,大量经过变换的信息 F(x) 涌入输出;当 g(x) 趋近于 0 时,则更多保留原始输入 x 的信息,实现了信息的动态筛选与融合。
2.2 门控函数的作用
门控函数 g(x) 堪称动态残差门控的 “灵魂”,它像一位经验丰富的 “安检员”,对输入信息进行细致评估。在深度学习训练过程中,不同类型、不同阶段的输入信息价值各异。对于一些包含丰富有效特征的输入,门控函数会调高 g(x) 的值,让网络充分利用变换后的信息进行特征提取与学习;而当输入信息可能存在噪声或与当前任务关联度低时,门控函数会降低 g(x) 的值,更多保留原始信息,避免网络被误导。例如在图像识别任务中,面对清晰且特征明显的图像区域,门控函数会鼓励网络对其进行深度变换学习;对于模糊或干扰区域,则适当保留原始信息,确保网络决策的稳健性。
3. 推导权重更新公式的准备工作
3.1 定义损失函数
为了引导动态残差门控网络学习,我们需要一个 “评判标准”,即损失函数 L 。它如同一位 “严格的考官”,衡量网络预测结果与真实标签之间的差异。根据任务类型不同,损失函数的选择也有所差异,如回归任务常用均方误差损失,分类任务则多采用交叉熵损失。这里我们以通用损失函数 为例,其中 y 是网络实际输出,
是真实标签。损失函数值越低,表明网络预测越准确,我们的目标就是通过调整网络参数,让损失函数尽可能小。
3.2 门控函数的具体形式
通常,门控函数 由一个小型神经网络实现,常见结构是全连接层搭配 sigmoid 激活函数。设门控函数参数为
,则
,其中
是权重矩阵,负责对输入 x 进行加权变换;
是偏置向量,为加权结果添加偏移量;
是 sigmoid 函数,其表达式为
,该函数能将输入映射到 [0, 1] 区间,满足门控函数的取值要求。
3.3 变换函数 F(x) 的参数
变换函数 F(x) 承担着对输入信息进行特征变换的重要职责,其参数 决定了变换的方式和效果。
可以是卷积层的权重(在处理图像等数据时)、全连接层的权重(常用于特征映射与分类)等。在网络训练中,我们要通过调整
和
,使网络性能达到最优,而推导它们的权重更新公式就是实现这一目标的关键步骤。
4. 推导权重更新公式的过程
4.1 计算损失函数关于门控函数参数
的梯度
我们借助链式法则来计算 ,这一过程如同沿着一条由多个环节组成的链条,逐步追溯损失函数对门控函数参数的影响。根据链式法则,
。
- 计算
:这是损失函数关于网络输出 y 的梯度,反映了损失函数随输出 y 变化的敏感程度。不同损失函数的
计算方式不同,以交叉熵损失函数为例,其求导结果会根据具体的输出和标签形式确定,它是后续计算的基础。
- 计算
:对
关于 g(x) 求导,将 F(x) 和 x 看作常数,根据求导公式可得
,该梯度体现了输出 y 对门控函数 g(x) 的依赖关系。
- 计算
:由于
,先对 sigmoid 函数求导,
,再根据链式法则,
,
。综合上述三个梯度的计算结果,就能得到
,明确损失函数对门控函数参数的影响方向和程度。
4.2 计算损失函数关于变换函数参数
的梯度
同样运用链式法则, 。
- 计算
:对
关于 F(x) 求导,把 g(x) 和 x 视为常数,可得
,该梯度表明了输出 y 对变换函数 F(x) 的依赖程度受门控函数 g(x) 的影响。
- 计算
:
的计算取决于 F(x) 的具体形式。若 F(x) 是卷积层,根据卷积运算的求导规则计算梯度;若为全连接层,则依据全连接层的求导方式得出结果。将这三个梯度相乘,就能得到
,确定损失函数对变换函数参数的影响。
4.3 权重更新公式
在获取 和
后,我们采用梯度下降法进行权重更新。梯度下降法的核心思想是沿着梯度的反方向调整权重,使损失函数逐渐减小,就像顺着山坡向下走以寻找最低点一样。 对于门控函数参数
,更新公式为
;对于变换函数参数
,更新公式为
。其中,
是学习率,它控制着每次权重更新的步长。学习率过大,权重更新步伐迈得太大,可能导致网络在训练过程中 “跳过” 最优解,无法收敛;学习率过小,网络学习速度会极为缓慢,耗费大量时间和计算资源。因此,合理选择学习率至关重要。
5. 动态残差门控在 LLM 中的使用
5.1 在 Transformer 架构中的融入
当前主流的 LLM 大多基于 Transformer 架构,动态残差门控可巧妙融入其中。在 Transformer 的编码器和解码器部分,每一层都包含多头自注意力机制和前馈神经网络。将动态残差门控应用于这些层之间,门控函数 g(x) 能够根据输入文本的语义特征、上下文信息等,动态调节信息传递。例如,当处理一段逻辑复杂、语义丰富的文本时,门控函数会根据文本中关键词、句子结构等信息,调高 g(x) 值,让经过自注意力机制和前馈神经网络变换后的信息更多地参与到后续层的计算中,帮助模型深入理解文本语义;而当遇到一些重复、冗余或与核心内容关联度低的文本片段时,门控函数会降低 g(x) 值,保留更多原始输入信息,避免模型被无效信息干扰,从而更高效地提取关键语义信息。
5.2 实际应用案例 ——GPT 系列模型的优化
以 GPT 系列模型为例,在训练过程中,随着网络层数的不断增加,如何有效传递和融合各层信息成为提升模型性能的关键。通过引入动态残差门控,模型能够更好地处理长文本序列。在生成文本时,对于前文已经提及且重要的信息,门控函数可以通过调整权重,让这些信息更顺畅地传递到后续生成层,确保生成的文本在语义和逻辑上与前文连贯一致。例如,在续写一个故事时,对于故事中已经设定的人物性格、情节线索等重要信息,动态残差门控能够使相关信息在各层之间高效流动,帮助模型生成符合故事发展逻辑的后续内容,提升文本生成的质量和连贯性。同时,在面对输入文本中的噪声或错误信息时,门控机制也能发挥作用,减少这些不良信息对模型输出的影响,增强模型的鲁棒性。
5.3 对模型性能的提升效果
在实际应用中,动态残差门控在 LLM 上的应用显著提升了模型性能。通过实验对比发现,采用动态残差门控的 LLM 在多种自然语言处理任务,如文本生成、问答系统、机器翻译等方面,相比未使用该技术的模型,在准确率、连贯性、语义合理性等指标上均有明显提升。在文本生成任务中,生成的文本更加流畅自然,逻辑更加严密;在问答系统中,能够更准确地理解问题意图,给出更精准的答案;在机器翻译任务中,翻译结果在语法和语义上更符合目标语言习惯。这些成果充分证明了动态残差门控在 LLM 中对于优化信息融合、提升模型性能的重要价值。
6. 代码示例与解读
import torch
import torch.nn as nn
import torch.optim as optim# 定义门控函数
class GatingFunction(nn.Module):def __init__(self, input_size):super(GatingFunction, self).__init__()self.fc = nn.Linear(input_size, 1)self.sigmoid = nn.Sigmoid()def forward(self, x):return self.sigmoid(self.fc(x))# 定义变换函数
class TransformationFunction(nn.Module):def __init__(self, input_size, output_size):super(TransformationFunction, self).__init__()self.fc = nn.Linear(input_size, output_size)def forward(self, x):return self.fc(x)# 定义动态残差门控模块
class DynamicResidualGating(nn.Module):def __init__(self, input_size):super(DynamicResidualGating, self).__init__()self.gating = GatingFunction(input_size)self.transformation = TransformationFunction(input_size, input_size)def forward(self, x):g = self.gating(x)F_x = self.transformation(x)return g * F_x + (1 - g) * x# 模拟输入数据和真实标签
input_size = 10
batch_size = 16
x = torch.randn(batch_size, input_size)
y_true = torch.randn(batch_size, input_size)# 初始化动态残差门控模块
model = DynamicResidualGating(input_size)# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)# 训练过程
for epoch in range(100):optimizer.zero_grad()y_pred = model(x)loss = criterion(y_pred, y_true)loss.backward()optimizer.step()if (epoch + 1) % 10 == 0:print(f'Epoch {epoch + 1}, Loss: {loss.item()}')
6.1 代码解读
- 门控函数实现:
GatingFunction
类构建了门控函数,通过全连接层fc
对输入进行线性变换,再经sigmoid
函数将输出压缩到 [0, 1] 区间,生成门控值 g(x) ,为后续信息融合提供控制信号。 - 变换函数实现:
TransformationFunction
类定义的变换函数由全连接层构成,对输入 x 进行特征变换,得到 F(x) ,实现信息的初步处理与转换。 - 动态残差门控模块实现:
DynamicResidualGating
类整合门控函数和变换函数,在forward
方法中,先计算门控值 g 和变换后的,再依据动态残差门控公式
完成信息融合,输出最终结果。
- 训练过程:模拟输入数据 x 和真实标签 y_true ,初始化动态残差门控模型
model
。选用均方误差损失函数criterion
衡量预测与真实值差异,随机梯度下降优化器optimizer
更新模型参数。在训练循环中,每次迭代先清零梯度,进行前向传播计算预测值 y_pred ,计算损失后反向传播求梯度,最后更新参数,并定期打印损失值,以便观察模型训练进程与性能变化。
7. 总结与展望
通过对动态残差门控权重更新公式的深度推导,以及在 LLM 中的应用分析,我们全面揭示了这一技术的核心原理与实践价值。从理论推导层面,明确了门控函数和变换函数参数如何依据损失函数梯度进行更新,为网络训练提供了精确的指导;在 LLM 应用方面,展示了动态残差门控如何优化信息流动,提升模型在自然语言处理任务中的性能。
然而,这一技术仍有广阔的发展空间。未来研究可探索如何进一步优化门控函数的设计,使其能更精准地捕捉输入信息的复杂特征,实现更高效的信息筛选与融合;也可尝试将动态残差门控与其他先进技术,如注意力机制的变体、强化学习等相结合,创造出更强大的网络架构。此外,在实际应用中,如何根据不同的 LLM 任务和数据特点,自适应地调整动态残差门控的参数和结构,也是值得深入研究的方向。相信随着研究的不断深入,动态残差门控将在深度学习领域发挥更大的作用,推动 LLM 等技术迈向新的高度。
相关文章:
Transformer数学推导——Q56 推导动态残差门控(Dynamic Residual Gating)的权重更新公式
该问题归类到Transformer架构问题集——残差与归一化——残差连接。请参考LLM数学推导——Transformer架构问题集。 1. 引言 在深度学习的演进历程中,网络结构的创新始终围绕着如何更高效地处理信息、提升模型性能展开。动态残差门控(Dynamic Residual…...
Kaggle——House Prices(房屋价格预测)简单实现
题目: 从Kaggle的“House Prices - Advanced Regression Techniques”数据集使用Pandas读取数据,并查看数据的基本信息。选择一些你认为对房屋价格有重要影响的特征,并进行数据预处理(如缺失值处理、异常值处理等)。…...
Vue项目Git提交流程集成
Vue项目Git提交流程集成 本教程将指导你如何在Vue项目中集成一个规范化的Git提交流程,包括代码规范检查、提交信息规范和自动化工具配置。 前置条件 Node.js 14.0 和 npm/yarn/pnpmVue项目(Vue 2或Vue 3均可)Git已初始化的仓库 一、规范化…...
使用 OpenSSL 吊销 Kubernetes(k8s)的 kubeconfig 里的用户证书
一.用 OpenSSL 依据已有的自签名 CA 注销签发的证书的步骤 1. 准备工作 你得有自签名 CA 的私钥(通常是 .key 文件)、CA 证书(通常是 .crt 文件)以及证书吊销列表(CRL)文件。若还没有 CRL 文件,…...
kubeadm部署k8s
我在阿里云上部署的k8s master 4c/8g/40g rocky linux8.9 node1/node2 2c/4g/40g rocky linux8.9 安装docker (我安装的是v1.19.1版本,是旧版本,可以装新版本,docker的版本和kubeadm,kubectl,kubelet版本相同) 1.所有…...
FPGA实战项目1——坦克大战
FPGA实战项目1——坦克大战 根据模块化思想,可将此任务简单的进行模块拆分: 系统原理,模块划分,硬件架构,算法支持,Verilog实现框架 一,系统总体原理 1. 核心设计思想 硬件并行处理&#x…...
LeetCode 1781. 所有子字符串美丽值之和 题解
示例 输入:s "aabcb" 输出:5 解释:美丽值不为零的字符串包括 ["aab","aabc","aabcb","abcb","bcb"] ,每一个字符串的美丽值都为 1这题光用文字解说还是无法达到讲…...
Spring Web MVC————入门(1)
今天开始正式带大家学习Spring部分的内容了,大家尝试去弄个专业版嗷,学习起来爽一点 在idea中下载这个插件就行了 我们之后开始创建Spring项目, 蓝色 部分自己起名,type选Maven,其他的默认就好了,之后nex…...
关于 js:1. 基础语法与核心概念
js 全称 JavaScript(简称 JS),是 一种运行在浏览器和服务器端的脚本语言。 用途: 浏览器端交互(如:点击按钮出现弹窗) 网页动态内容渲染(如:淘宝、京东页面更新…...
云境天合水陆安全漏电监测仪—迅速确定是否存在漏电现象
云境天合水陆安全漏电监测仪是一种专为水下及潮湿环境设计的电气安全检测设备,通过高灵敏度电磁传感器探测漏电电流产生的交变磁场,基于法拉第电磁感应定律,自动区分高灵敏度信号和低灵敏度信号,精准定位泄漏电源的具体位置。一旦…...
二、Hadoop狭义和广义的理解
作者:IvanCodes 日期:2025年5月6日🫠 专栏:Hadoop教程 Hadoop 的双重身份:核心框架与生态系统 在大数据领域,Hadoop 是一个广为人知的概念,但它并非单指某一个软件,而是涵盖了两个层…...
DTU_DTU厂家_5G/4G DTU终端_DTU模块_厦门计讯物联科技有限公司
在物联网蓬勃发展的当下,数据的高效、稳定、可靠的传输成为关键。厦门计讯物联科技有限公司(以下简称“计讯物联”)作为国内工业物联网领域的核心厂商,专注于5G/4G DTU终端、DTU模块及无线数传设备的研发与生产,致力于为智慧城市、能源电力、…...
学习alpha,第2个alpha
alphas (-1 * ts_corr(rank(ts_delta(log(volume), 2)), rank(((close - open) / open)), 6)) 先分析操作符从左到右 ts_corr: Pearson 相关度量两个变量之间的线性关系。当变量呈正态分布且关系呈线性时,它最有效。 ts_corr(vwap, close, 20)是一个计算时间序列相…...
如何用爬虫获得按关键字搜索淘宝商品
在电商领域,获取淘宝商品的详细信息对于市场分析、选品上架、库存管理和价格策略制定等方面至关重要。淘宝作为国内知名的电商平台,提供了丰富的商品资源。通过 Python 爬虫技术,我们可以高效地获取淘宝商品的详细信息,包括商品名…...
Android SDK 开发中的 AAR 与 JAR 区别详解
在 Android SDK 开发中,构建项目时我们常常会看到生成两个不同的文件:一个是 build/outputs/aar/*.aar,另一个是 build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar。很多初学者会疑惑:它们之间有什么区别&am…...
Python cv2滤波与模糊处理:从原理到实战
在图像处理领域,滤波与模糊是预处理阶段的两大核心操作,既能消除噪声干扰,又能实现艺术化效果。本文将结合OpenCV的cv2库,系统讲解滤波与模糊的原理及Python实现,带你从理论到实战全面掌握这项技术。 一、滤波与模糊的…...
【SpringBoot3】idea找不到log符号
解决idea找不到log符号,Slf4j注解不起作用 如图 解决办法 pom.xml文件里要手动添加版本号 插件也要添加对应的版本号 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30&l…...
Android学习总结之Java和kotlin区别
一、空安全机制 真题 1:Kotlin 如何解决 Java 的 NullPointerException?对比两者在空安全上的设计差异 解析: 核心考点:Kotlin 可空类型系统(?)、安全操作符(?./?:)、非空断言&…...
C++笔记-二叉搜索树(包括key,key/value搜索场景等)
1.二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 1.若它的左子树不为空,则左子树上所有结点的值都小于等于根结点的值若它的右子树不为空,则2.右子树上所有结点的值都大于等于根结点…...
【从零开始学习RabbitMQ | 第二篇】生成交换机到MQ的可靠性保障
目录 编辑前言 交换机 Direct交换机与Fanout交换机的差异 Topic交换机 Topic交换机相比Direct交换机的差异 生成我们的交换机,队列,以及绑定关系 基于代码去生成交换机和队列 基于注解去声明队列和交换机 消息转换器 消息队列的高可靠性 发送…...
在 Sheel 中运行 Spark:开启高效数据处理之旅
在大数据处理领域,Apache Spark 凭借其强大的分布式计算能力,成为了众多开发者和企业处理海量数据的首选工具之一。而 Sheel 作为一种便捷的运行环境,在其中运行 Spark 可以充分发挥两者优势,实现高效的数据处理与分析。本文将详细…...
前端、XSS(跨站脚本攻击,Cross-Site Scripting)
XSS 攻击的三种主要类型 存储型 XSS(持久型) 原理:恶意脚本被永久存储在服务器(如数据库、评论内容),用户访问包含恶意脚本的页面时触发示例:攻击者在论坛的评论区提交 ,其他用户查…...
第六节:图像基本操作-像素级操作
一、数字图像处理基础 1.1 图像数字化原理 数字图像本质上是二维离散信号,由按矩阵排列的像素点构成。每个像素点的数值代表特定位置的亮度或色彩信息... 1.2 OpenCV核心数据结构 import cv2 import numpy as np# 读取图像文件 img cv2.imread(image.jpg)# 获取…...
【东枫科技】代理销售 NVIDIA DGX Spark 您的桌上有一台 Grace Blackwell AI 超级计算机。
NVIDIA GB10 Grace Blackwell超级芯片 FP4 AI 性能达到 1,000 AI TOPS 128GB 一致、统一的系统内存 ConnectX-7 智能网卡 高达 4TB 存储空间 150毫米长 x 150毫米宽 x 50.5毫米高 NVIDIA DGX™ Spark 搭载 NVIDIA GB10 Grace Blackwell 超级芯片,以节能紧凑的外形提…...
即插即用!长安汽车复旦提出LMPOcc:长期记忆先验实现占用预测任务新SOTA
导读 在基于视觉的自动驾驶感知算法当中,3D语义占用预测任务可以出色的对静态场景和动态目标同时进行建模,实现细粒度的场景理解,目前受到了来自学术界和工业界的广泛关注。 ©️【深蓝AI】编译 论文题目:ConRFT: A Reinfo…...
Kubernetes弹性伸缩:让应用自动应对流量洪峰与低谷
🚀 Kubernetes弹性伸缩:让应用自动应对流量洪峰与低谷 🌍 什么是弹性伸缩? 弹性伸缩(Auto Scaling)是指系统能够根据实时负载自动调整计算资源,以优化性能并降低成本。在 Kubernetes࿰…...
深入解析 Linux/Unix 通信机制:从原理到观测实践
深入解析 Linux/Unix 通信机制:从原理到观测实践 配图建议:Linux系统架构与通信机制全景示意图 一、开篇:理解“一切皆文件”的哲学 Unix/Linux 操作系统的核心灵魂在于其独特的设计哲学。当 Dennis Ritchie 和 Ken Thompson 在贝尔实验室开…...
Vue 2.0 详解全教程(含 Axios 封装 + 路由守卫 + 实战进阶)
目录 一、Vue 2.0 简介1.1 什么是 Vue?1.2 Vue 2.x 的主要特性 二、快速上手2.1 引入 Vue2.2 创建第一个 Vue 实例 三、核心概念详解3.1 模板语法3.2 数据绑定3.3 事件绑定3.4 计算属性 & 侦听器 四、组件系统4.1 定义全局组件4.2 单文件组件(*.vue …...
《Python星球日记》 第36天:线性代数基础
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏:《Python星球日记》,限时特价订阅中ing 目录 一、标量、…...
使用 Spring Boot 构建 REST API
使用 Spring Boot 构建 REST API 使用 Spring Boot 构建 REST API1. Spring Initializr构建springboot2. API 合同 & JSONAPI 协定什么是 JSON? 3.先测试什么是测试驱动开发?测试金字塔Red, Green, Refactor 循环 4. 实施 GET…...
PHP分页显示数据,在phpMyadmin中添加数据
<?php $conmysqli_connect(localhost,root,,stu); mysqli_query($con,"set names utf8"); //设置字符集为utf8 $sql"select * from teacher"; $resultmysqli_query($con,$sql); $countmysqli_num_rows($result); //记录总条数$count。 $pagesize10;//每…...
Spring Boot操作MongoDB的完整示例大全
以下是基于Spring Boot操作MongoDB的完整示例大全,涵盖增删改查、聚合查询、索引、事务等核心功能: 一、基础CRUD操作 1. 环境配置 依赖配置(pom.xml) <dependency><groupId>org.springframework.boot</groupId…...
SpringCloud入门教程合集(1)-SpringCloud简介与Eureka+Feign实现服务注册中心、服务提供与服务消费
场景 SpringCloud 总体架构与核心子项目 SpringCloud 总体架构 1. 基础设施层 服务注册与发现:Eureka/Nacos 配置中心:Spring Cloud Config/Nacos 消息总线:Spring Cloud Bus 2. 服务通信层 负载均衡:Ribbon/LoadBalancer…...
【Linuc】深入理解 Linux 文件权限
文章目录 一、权限基础解析1. 权限三元组2. 权限类型与数字映射二、查看文件权限三、修改权限实战1. chmod 命令符号模式数字模式(推荐)2. chown 修改归属四、特殊权限机制1. SetUID (Set User ID)2. SetGID (Set Group ID)3. Sticky Bit五、高级权限管理1. 默认权限控制2. A…...
ExtraMAME:复古游戏的快乐“时光机”
嘿,小伙伴们!今天电脑天空要给大家安利一款超有趣的软件——ExtraMAME!如果你对复古街机游戏念念不忘,那它绝对能成为你的快乐源泉,带你瞬间穿越回那个充满游戏机的黄金时代。 ExtraMAME是一款基于MAME(Mu…...
没有 Mac,如何把 iOS App 成功上架?
开发者的 iOS 上架折腾记:没有 Mac,也能搞定? 最近在帮朋友把一个跨平台 Flutter 项目上架到 App Store,结果被 iOS 上架的那套流程卡得头都大了。其实这也不是第一次碰壁了——每次到“申请证书 打包 上传”的时候,…...
使用VMware Workstation pro 17.5.1在Windows上安装Ubuntu 24.04.2的 详细步骤
一、准备工作 1. 下载Ubuntu 24.04.2 ISO镜像 官方下载地址:Ubuntu 24.04.2 (Noble Numbat) 选择 ubuntu-24.04.2-desktop-amd64.iso(桌面版)或 ubuntu-24.04.2-live-server-amd64.iso(服务器版)。 2. 确认系统要求…...
栈与队列详解及模拟实现
目录 一、栈(Stack):后进先出 1.1 什么是栈 1.2 栈的使用 1.3 栈的模拟实现 1.4 栈的经典应用 二、队列(Queue):先进先出 2.1 什么是队列 2.2 队列的使…...
Cursor无法SSH远程连接服务器免密登录问题
在本地机器和Ubuntu服务器之间实现SSH远程免密连接,可按如下步骤操作: 1. 生成SSH密钥对 在本地机器上开启终端,使用以下命令生成SSH密钥对: ssh-keygen -t rsa按提示操作,一般直接回车,这样密钥会生成在…...
【Vue】全局事件总线 TodoList 事件总线
目录 一、 实现所有组件看到x事件 二、 实现$on $off 以及 $emit 总结不易~ 本章节对我有很大的收获, 希望对你也是!!! 本节素材已上传至Gitee:yihaohhh/我爱Vue - Gitee.com 全局事件总线图: 本节素材…...
动态规划背包问题
一、0-1背包问题 0-1背包问题就是给定n个物品和一个容量为C的背包,物品i的重量是Wi,其价值是Vi。问:应该如何选择装入背包的物品,使总价值最大且总重量不超过C? 1.确定状态表示 dp[i][j] 表示在背包容量为j时,从下标…...
ctfshow web入门 web49
信息收集 此%非彼%,%0a中的%不会被识别,因为识别之前就已经自动转化为了换行符 所以和之前一样的解法,没什么好说的 if(isset($_GET[c])){$c$_GET[c];if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|…...
AI+浏览器自动化:Nanobrowser Chrome 扩展的使用「详细教程」
AI+浏览器自动化:Nanobrowser Chrome 扩展的使用「详细教程」 一、前言二、Nanobrowser简介2.1 项目背景2.2 核心特性三、安装与配置3.1 安装方式3.1.1 Chrome Web Store安装3.1.2 手动安装最新版3.2 基本配置3.2.1 添加API Key3.2.2 选择模型3.2.3 其他设置四、核心功能详解4…...
【表设计】外键的取舍-分布式中逐渐消失的外键
在分布式大行其道的今天,为什么外键约束越来越少? 外键-数据链接带来强制完整性 在关系型数据库中,外键(Foreign Key)可以用于建立和强制两个表之间的数据链接。 在层次数据结构一篇的闭包表简单设计中,…...
HarmonyOS 5.0 分布式数据协同与跨设备同步
大家好,我是 V 哥。 使用 Mate 70有一段时间了,系统的丝滑使用起来那是爽得不要不要的,随着越来越多的应用适配,目前使用起来已经和4.3的兼容版本功能差异无碍了,还有些纯血鸿蒙独特的能力很是好用,比如&am…...
多行文本省略
方式1 兼容性不好 height: 100px; line-height: 25px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4;方式2 利用浮动环绕、空白元素站位margin-top调整位置 <div class"wrap"><div class"more"…...
Adobe卸载清理工具Creative Cloud Cleaner Tool下载
Adobe Creative Cloud Cleaner Tool 是 Adobe 公司官方推出的一款卸载清理工具,主要用于清理 Creative Cloud 应用程序在安装、更新或卸载过程中可能遗留下来的错误配置文件、缓存、注册表项或其他系统级残留内容。相比一般的卸载程序,它更深入地处理系统…...
分布式、高并发-Day03
以下是 Day 3 详细学习内容(线程池拒绝策略实战:DiscardOldestPolicy与CallerRunsPolicy,30 分钟完整计划),包含策略原理、分步代码实战和场景解析: 📖 今日学习目标 掌握DiscardOldestPolicy…...
高等数学第四章---不定积分(4.4有理函数的不定积分2)
&4.4有理函数的不定积分2 篇幅有限制,例题的解答会占大量字符,html限制字符为22000个左右。这里继续探讨上文的有理函数的不定积分。 一、三角函数有理式的不定积分 由 sin x \sin x sinx, cos x \cos x cosx 以及常数经过有限次加、减、…...
C++中指针使用详解(4)指针的高级应用汇总
C 中指针的高级应用非常丰富,掌握这些内容能让你写出更高性能、更底层控制力强的代码。下面是应用模块梳理和例子讲解。 目录预览 函数指针与回调机制指针数组 vs 数组指针指针与类成员函数(成员函数指针)智能指针(unique_ptr, s…...