NLP CH3复习
CH3
3.1 几种损失函数
3.2 激活函数性质
3.3 哪几种激活函数会发生梯度消失
3.4 为什么会梯度消失
3.5 如何解决梯度消失和过拟合
3.6 梯度下降的区别
3.6.1 梯度下降(GD)
- 全批量:在每次迭代中使用全部数据来计算损失函数的梯度。
- 计算成本高:对于大数据集来说,每次迭代的计算成本非常高。
- 稳定收敛:由于每次都利用全部数据,因此梯度的估计非常准确,收敛路径平滑。
3.6.2 随机梯度下降(SGD)
- 单个样本:在每次迭代中随机选择一个数据样本来计算梯度。
- 计算成本低:每次只处理一个样本,大大减少了计算量。
- 收敛波动大:由于每次只用一个样本更新,梯度估计的方差较大,导致收敛过程中有较多波动。
3.6.3 Mini-batch梯度下降
- 小批量样本:在每次迭代中使用一小部分数据样本(例如32或64个样本)来计算梯度。
- 计算成本适中:平衡了全批量的计算效率和随机梯度的更新速度。
- 收敛相对稳定:小批量的使用减少了梯度估计的方差,使得收敛过程比随机梯度下降更稳定,但又比全批量梯度下降更灵活。
3.7 DNN
3.7.1 反向传播算法过程
将输出误差以某种形式反传给各层所有的单元,各层按本层误差修正各单元连接权值。
3.7.2 训练步骤
3.8 CNN
3.8.1 CNN的组成
由卷积层、子采样层、全连接层交叉堆叠而成
3.8.2 对比DNN
3.9 GNN
3.9.1 基本GNN和GCN的公式对比
3.9.1.1 基本GNN的公式
h v k = σ ( W k ∑ u ∈ N ( v ) h u k − 1 ∣ N ( v ) ∣ + B k h v k − 1 ) h_v^k = \sigma \left( W_k \sum_{u \in \mathcal{N}(v)} \frac{h_u^{k-1}}{|\mathcal{N}(v)|} + B_k h_v^{k-1} \right) hvk=σ Wku∈N(v)∑∣N(v)∣huk−1+Bkhvk−1
- 核心思想:
- 聚合节点 v v v 的邻居节点特征 h u k − 1 h_u^{k-1} huk−1 的平均值。
- 使用两个不同的权重矩阵 W k W_k Wk 和 B k B_k Bk 分别对邻居特征和节点自身特征进行线性变换。
- 通过激活函数 σ \sigma σ(例如 ReLU 或 tanh)引入非线性。
- 特点:
- 对所有邻居进行简单的平均(即 1 ∣ N ( v ) ∣ \frac{1}{|\mathcal{N}(v)|} ∣N(v)∣1),没有对邻居节点的重要性加权。
- 参数共享较少,特征变换对邻居和节点自身分开处理。
3.9.1.2 GCN的公式
h v k = σ ( W k ∑ u ∈ N ( v ) ∪ { v } h u k − 1 ∣ N ( u ) ∣ ∣ N ( v ) ∣ ) h_v^k = \sigma \left( W_k \sum_{u \in \mathcal{N}(v) \cup \{v\}} \frac{h_u^{k-1}}{\sqrt{|\mathcal{N}(u)||\mathcal{N}(v)|}} \right) hvk=σ Wku∈N(v)∪{v}∑∣N(u)∣∣N(v)∣huk−1
- 改进点:
- 归一化:
- 替代简单的平均聚合,GCN引入对称归一化因子 1 ∣ N ( u ) ∣ ∣ N ( v ) ∣ \frac{1}{\sqrt{|\mathcal{N}(u)||\mathcal{N}(v)|}} ∣N(u)∣∣N(v)∣1,减小高度节点(高度数节点)对结果的影响。
- 参数共享:
- 同一权重矩阵 W k W_k Wk 用于邻居特征和节点自身特征变换,减少参数数量,提高模型泛化能力。
- 自环(Self-loop):
- 邻域中加入节点自身(即 N ( v ) ∪ { v } \mathcal{N}(v) \cup \{v\} N(v)∪{v}),保证每层节点都能保留自身信息。
- 归一化:
- 特点:
- 更好的参数共享,减少了过拟合的风险。
- 归一化权重避免了高度数节点的特征主导问题。
3.9.2 GNN池化的概念
池化可以理解为图卷积过程中特征和节点的降维操作。以下是两种池化方式的相关描述:
3.9.2.1 全局池化
- 汇总整个图的节点特征,用于生成固定维度的图表示。
- 常见方式:
- 平均池化:取所有节点特征的平均值。
- 最大池化:取节点特征的最大值。
- 加权池化:根据任务需求对节点特征加权后聚合。
3.9.2.2 局部池化
- 在每一层中,通过选择部分重要节点,逐层减少图中节点的数量,同时保留主要的结构信息。
- 常见方式:
- Top- k k k池化:根据节点重要性评分选择得分最高的节点。
- 可微分池化(DiffPool):通过学习分配矩阵动态生成池化结果。
3.9.3 GCN的改进特点
-
参数共享(More parameter sharing):
- GCN使用相同的权重矩阵 W k W_k Wk 对邻居节点和自身节点的特征进行线性变换。
- 减少参数数量,提升模型训练稳定性。
-
削弱高度节点的影响(Down-weights high degree neighbors):
- 通过对称归一化因子 1 ∣ N ( u ) ∣ ∣ N ( v ) ∣ \frac{1}{\sqrt{|\mathcal{N}(u)||\mathcal{N}(v)|}} ∣N(u)∣∣N(v)∣1,减小度数大的节点对目标节点的特征贡献。
- 防止高度数节点主导聚合特征,造成模型偏差。
3.9.4 总结
- 基本GNN:通过简单平均的方式聚合邻居特征,参数较多,但未对邻居节点的贡献权重进行优化。
- GCN:引入对称归一化和参数共享机制,使模型更稳定、高效,同时减少过拟合。
- GNN池化:可以进一步通过全局或局部池化操作提取图或节点的高层次特征,适应更复杂的任务需求。
3.9.5 邻接节点个数不确定如何解决?
- 邻居信息聚合:
- 核心思想:将目标节点的特征更新为其自身特征和邻居特征的组合。
- 参数共享:
- GNN采用共享的权重矩阵(如图中的 W k W_k Wk 和 B k B_k Bk),即在同一层中所有节点使用相同的参数。
- 邻接节点特征聚合:
- 对每个节点的邻域进行聚合,生成一个固定维度的邻域表示(如 W k h k − 1 W_kh^{k-1} Wkhk−1)。
实心节点(蓝色圆点)代表的是实心结点(实际节点),它们是对应的实心结点的邻接结点聚集。
- 在原始图结构(左图)中,每个节点都有其自然的邻接关系(通过灰色线连接)
- 对于层次 h k h^k hk 到 h k − 1 h^{k-1} hk−1 之间的信息传递:
- 设定了锚点(实心节点)
- 使用注意力机制或聚合函数(图中通过 W k W_k Wk 和 B k B_k Bk 表示)来学习和聚集信息
- 将相邻节点的信息聚集到这些锚点上
- 具体的聚集过程:
- 通过权重矩阵 W k W_k Wk 来计算注意力分数或重要性权重
- 使用 B k B_k Bk 来转换或投影特征
- 最终将邻域节点的信息加权聚合到固定数量的锚点上
3.9.6 GNN训练,卷积步骤
在最后一层(K层)得到每个结点的表示后,可以根据任务将其代入任何损失函数,然后用梯度下降法训练参数。
3.10 RNN
- DNN、CNN 输入、输出定长;处理输入、输出变长问题效率不高。而自然语言处理中的语句通常其长度不固定。
- 单一DNN、CNN 无法处理时序相关序列问题
RNN核心思想:
- 将处理问题在时序上分解为一系列相同的“单元”,单元的神经网络可以在时序上展开,且能将上一时刻的结果传递给下一时刻,整个网络按时间轴展开。即可变长。
3.10.1 训练中的问题以及解决方式
会出现和深度前馈神经网络类似的梯度消失问题。在训练循环神经网络时,更经常出现的是梯度消失问题,训练较难
距当前节点越远的节点对当前节点处理影响越小,无法建模长时间的依赖
3.10.2 BPTT和BP的区别
参考链接
3.10.3 LSTM, GRU
3.10.4 设计题参考结构
补充
反向传播算法中第 L-1 层的误差项表达式:
δ ( L − 1 ) = σ ′ ( Z ( L − 1 ) ) ⋅ ( W ( L ) ) ⊤ δ ( L ) \delta^{(L-1)} = \sigma'(Z^{(L-1)}) \cdot (W^{(L)})^{\top} \delta^{(L)} δ(L−1)=σ′(Z(L−1))⋅(W(L))⊤δ(L)
其中:
- σ ′ \sigma' σ′ 表示激活函数的导数
- Z ( l ) Z^{(l)} Z(l) 是第 l 层的加权输入
- W ( l ) W^{(l)} W(l) 是第 l 层的权重矩阵
- δ ( l ) \delta^{(l)} δ(l) 是第 l 层的误差项
推导步骤:
-
前向传播定义
第 l 层的输出 A ( l ) A^{(l)} A(l) 表示为:
A ( l ) = σ ( Z ( l ) ) = σ ( W ( l ) A ( l − 1 ) + b ( l ) ) A^{(l)} = \sigma(Z^{(l)}) = \sigma(W^{(l)}A^{(l-1)} + b^{(l)}) A(l)=σ(Z(l))=σ(W(l)A(l−1)+b(l)) -
损失函数定义
使用均方误差(MSE)作为损失函数 J:
J = 1 2 ∥ A ( L ) − Y ∥ 2 J = \frac{1}{2} \|A^{(L)} - Y\|^2 J=21∥A(L)−Y∥2 -
计算输出层误差项 δ ( L ) \delta^{(L)} δ(L):
δ ( L ) = ∂ J ∂ Z ( L ) = ( A ( L ) − Y ) ⋅ σ ′ ( Z ( L ) ) \delta^{(L)} = \frac{\partial J}{\partial Z^{(L)}} = (A^{(L)} - Y) \cdot \sigma'(Z^{(L)}) δ(L)=∂Z(L)∂J=(A(L)−Y)⋅σ′(Z(L)) -
递推计算隐藏层误差项
对于第 l 层 (l = L-1, L-2, …, 1):
δ ( l ) = ∂ J ∂ Z ( l ) = ( W ( l + 1 ) ) ⊤ δ ( l + 1 ) ⋅ σ ′ ( Z ( l ) ) \delta^{(l)} = \frac{\partial J}{\partial Z^{(l)}} = (W^{(l+1)})^{\top} \delta^{(l+1)} \cdot \sigma'(Z^{(l)}) δ(l)=∂Z(l)∂J=(W(l+1))⊤δ(l+1)⋅σ′(Z(l))
具体到 l = L-1:
δ ( L − 1 ) = ( W ( L ) ) ⊤ δ ( L ) ⋅ σ ′ ( Z ( L − 1 ) ) \delta^{(L-1)} = (W^{(L)})^{\top} \delta^{(L)} \cdot \sigma'(Z^{(L-1)}) δ(L−1)=(W(L))⊤δ(L)⋅σ′(Z(L−1))
通过链式法则详细推导:
-
误差项 δ ( l ) \delta^{(l)} δ(l) 可表示为:
δ ( l ) = ∂ J ∂ Z ( l ) = ∂ J ∂ A ( l ) ⋅ ∂ A ( l ) ∂ Z ( l ) \delta^{(l)} = \frac{\partial J}{\partial Z^{(l)}} = \frac{\partial J}{\partial A^{(l)}} \cdot \frac{\partial A^{(l)}}{\partial Z^{(l)}} δ(l)=∂Z(l)∂J=∂A(l)∂J⋅∂Z(l)∂A(l) -
其中:
- ∂ A ( l ) ∂ Z ( l ) = σ ′ ( Z ( l ) ) \frac{\partial A^{(l)}}{\partial Z^{(l)}} = \sigma'(Z^{(l)}) ∂Z(l)∂A(l)=σ′(Z(l))
- ∂ J ∂ A ( l ) = ( W ( l + 1 ) ) ⊤ δ ( l + 1 ) \frac{\partial J}{\partial A^{(l)}} = (W^{(l+1)})^{\top} \delta^{(l+1)} ∂A(l)∂J=(W(l+1))⊤δ(l+1)
-
最终得到第 L-1 层的误差项:
δ ( L − 1 ) = σ ′ ( Z ( L − 1 ) ) ⋅ ( W ( L ) ) ⊤ δ ( L ) \delta^{(L-1)} = \sigma'(Z^{(L-1)}) \cdot (W^{(L)})^{\top} \delta^{(L)} δ(L−1)=σ′(Z(L−1))⋅(W(L))⊤δ(L)
第 L-1 层的误差是由第 L 层的权重矩阵和误差项传递,并与第 L-1 层激活函数的导数相乘得到的。
相关文章:
NLP CH3复习
CH3 3.1 几种损失函数 3.2 激活函数性质 3.3 哪几种激活函数会发生梯度消失 3.4 为什么会梯度消失 3.5 如何解决梯度消失和过拟合 3.6 梯度下降的区别 3.6.1 梯度下降(GD) 全批量:在每次迭代中使用全部数据来计算损失函数的梯度。计算成本…...
Pyecharts SVG 标记使用笔记
Pyecharts SVG 标记使用笔记 在数据可视化中,图表的标记点常常用于突出显示重要数据点。Pyecharts 提供了丰富的标记点配置选项,其中使用 SVG 路径来自定义标记点的样式是一个非常强大的功能。本文将详细介绍如何在 Pyecharts 中使用 SVG 路径来定制标记…...
C++ 文件操作
文件操作 // 文件操作 // 程序运行时产生的数据都属于临时数据,程序结束后临时数据会被操作系统释放 // 通过文件操作可以将数据持久化 // c 中文件操作需要包含头文件 <fstream>// 文件类型分为两种: // 文本文件: 文件以文本的ASCII…...
享元模式详解
享元模式详解 一、定义 享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来尽量减少内存的使用。它通过将重复使用的对象分离成共享和非共享部分,达到复用的目的,从而有效节省内存。具体来说&#x…...
数据库中的并发控制
并发操作带来的数据不一致性 1、并发控制:为了保证事务的隔离性和一致性,数据库管理系统需要对并发操作进行正确调度 并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制等 并发操作带来的数据不一致性: ① 丟失修改:两个事务 T1 和 T2 读入同一数据…...
【软考网工笔记】计算机基础理论与安全——计算机硬件知识
计算机分级存储体系 计算机分级存储体系目前最常用的是三级存储体系。 CPU——CaChe(高速缓存)——主存——辅存 其中 Cache 是用于解决存取速度不够快,辅存是用于解决存储容量不够大,二者结合可在容量和速度实现提升的情况下尽可…...
SpringBoot 多种生产打包方式详解
Springboot 多种生产打包方式简介 生产上发布 Spring Boot 项目时,流程颇为繁琐且低效。但凡代码有一丁点改动,就得把整个项目重新打包部署,耗时费力不说,生成的 JAR 包还特别臃肿,体积庞大。每次更新项目,…...
WebSocket 安全实践:从认证到加密
在前三篇文章中,我们深入探讨了 WebSocket 的基础原理、服务端开发和客户端实现。今天,让我们把重点放在安全性上,看看如何构建一个安全可靠的 WebSocket 应用。我曾在一个金融项目中,通过实施多层安全机制,成功防御了多次恶意攻击尝试。 安全挑战 WebSocket 应用面临的主要安…...
实现单例模式的五种方式
如何实现一个单例 1、构造器需要私有化 2、提供一个私有的静态变量 3、暴露一个公共的获取单例对象的接口 需要考虑的两个问题 1、是否支持懒加载 2、是否线程安全 1、饿汉式 public class EagerSingleton {private static final EagerSingleton INSTANCE new EagerSi…...
【Go学习】-01-6-数据库泛型新特性
【Go学习】-01-6-数据库泛型新特性 1 数据库操作1.1 操作mysql1.1.1 Insert1.1.2 Select1.1.3 Update1.1.4 Delete1.1.5 sql事务 1.2 go操作Redis 2 泛型2.1 非泛型函数2.2 泛型函数2.3 泛型类型2.3.1 泛型结构体2.3.2 泛型接口 2.4 泛型约束2.5 泛型切片和映射2.5.1 泛型切片2…...
算法学习(22)—— BFS解决最短路问题
关于最短路问题 最短路问题是“图论”里非常重要的一类问题,涉及的内容非常多,在这个专题里,我们主要讲“边权为1的最短路问题”,因为这个比较基础比较简单而关于啥是“边权为1的最短路问题”,我们通过下面的例子来讲…...
【双层模型】考虑供需双侧的综合能源双层优化模型
目录 主要内容 内容研究 1.模型简介 2 程序释义 部分代码 运行结果 下载链接 主要内容 该程序实现一个综合能源系统的优化调度双层模型,上下层分别采用差分进化算法和规划算法进行求解。模型考虑了多种能源设备,包括燃气轮机、燃气锅炉、风电…...
【读书笔记/源码】How Tomcat Works 笔记- c11~c13
chapter11: standardwrapperchapter12: 无程序 第十章 安全性 servlet容器是通过一个名为验证器的阀来支持安全限制的。当servlet容器启动时,验证器阀会被添加到Context容器的管道中。 验证器阀会调用Context容器的领域对象的authenticate()方法,传入…...
Electron快速入门——跨平台桌面端应用开发框架
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
Vision Transformer模型详解(附pytorch实现)
写在前面 最近,我在学习Transformer模型在图像领域的应用。图像处理任务一直以来都是深度学习领域的重要研究方向,而传统的卷积神经网络已在许多任务中取得了显著的成绩。然而,近年来,Transformer模型由于其在自然语言处理中的成…...
中国区域创新创业指数IRIEC数据(省级、地市级)1990-2020年-社科数据
中国区域创新创业指数IRIEC数据(省级、地市级)1990-2020年-社科数据https://download.csdn.net/download/paofuluolijiang/90028728 https://download.csdn.net/download/paofuluolijiang/90028728 中国区域创新创业指数(IRIEC)…...
Elasticsearch:减少 Elastic 容器镜像中的 CVE(常见的漏洞和暴露)
作者:来自 Elastic Maxime Greau 在这篇博文中,我们将讨论如何通过在 Elastic 产品中切换到最小基础镜像并优化可扩展漏洞管理程序的工作流程来显著减少 Elastic 容器镜像中的常见漏洞和暴露 (Common Vulnerabilities and Exposures - CVEs)。 基于 Chai…...
webpack02
webpack中常用loader postcss-loader 在css-loader之前,对css进行一些操作,,,比如统一加前缀,,或者是重置样式,,, 这个postcss-loader会自己去找 postcss工具࿰…...
腾讯云更改用户为root
最近买了台99元一年的2核的云服务器,方便学习一些java开发中间件,以及部署一些项目。 1.设置root用户密码 sudo passwd root 2.修改配置文件 ll /etc | grep ssh cd /etc/ssh/ ls vim sshd_config 输入/PasswordAuthentication 寻找 输入:set nu 再按下…...
Excel导入导出-若依版本
最终效果 1、导出 1、在实体类上加注解 Excel(name “客户类型名称”) ToString AllArgsConstructor NoArgsConstructor public class UserType extends BaseEntity2 implements Serializable {Excel(name "客户类型ID", cellType Excel.ColumnType.NUMERIC…...
【Qt】快速添加对应类所需的头文件包含
快速添加对应类所需的头文件包含 一,简介二,操作步骤 一,简介 本文介绍一下,如何快速添加对应类所需要包含的头文件,可以提高开发效率,供参考。 二,操作步骤 以QTime类为例: 选中…...
基于服务器部署的综合视频安防系统的智慧快消开源了。
智慧快消视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。国产化人工智能“…...
浅谈棋牌游戏开发流程七:反外挂与安全体系——守护游戏公平与玩家体验
一、前言:为什么反外挂与安全这么重要? 对于任何一款线上棋牌游戏而言,公平性和玩家安全都是最重要的核心要素之一。如果游戏环境充斥着各式各样的外挂、作弊方式,不仅会毁坏玩家体验,更会导致游戏生态崩塌、口碑下滑…...
Laravel操作ElasticSearch
在Laravel项目中操作ElasticSearch可以通过以下步骤来实现,通常会借助相应的ElasticSearch客户端扩展包。 ### 安装ElasticSearch客户端包 在Laravel项目中,常用的是 elasticsearch/elasticsearch 这个PHP客户端库来与ElasticSearch进行交互,…...
缓存-文章目录
关于缓存系列文章: 缓存学习总结1(缓存分类) 缓存学习总结2(服务器本地缓存) 缓存学习总结3(服务器内存缓存)推荐使用 缓存学习总结4(分布式缓存) 关于redis系列文章…...
安装教程:慧集通集成平台(DataLinkX)智能体客户端安装操作(Linux/windows/mac)
1.下载客户端 使用提供的账号登录集成平台后台(https://www.datalinkx.cn/),点击左侧菜单栏【智能体】→【智能体】进入到智能体列表界面,在该界面我们找到功能栏中的下载按钮点击则会弹出下载界面,在该界面我们可以选择不同的系统操作系统来下载对应版…...
解决vmware虚拟机和宿主机之间不能复制粘贴
在虚拟机内执行一下命令 /usr/bin/vmware-user 更多解决方案 https://www.cnblogs.com/wutou/p/17629408.html...
由源程序到运行
由源程序到运行 第一步:编写源程序 assume cs:codesg codesg segmentmov ax,0123Hmov bx,0456Hadd ax,bxadd ax,axmov ax,4c00hint 21h codesg ends end第二步:进行编译 进入到编译目录 编译 .asm文件生成目标文件(.obj) m…...
Java-JDBC的使用
目录 一、JDBC(java数据库连接):java database connector 二、使用JDBC的步骤 三、加条件查询 四、预处理(防止SQL注入) 五、Statement和PreparedStatement的优略 六、将数据中的数据查询出来后需要保存在一个集合中,方便前端…...
如何优化亚马逊广告以提高ROI?
在竞争激烈的亚马逊市场中,优化广告以提高投资回报率(ROI)是卖家的关键任务。以下是一些实用的策略: 一、精准的关键词研究与选择 深入了解产品特性和目标受众 详细分析产品的功能、用途、优势和适用人群。例如,如果你…...
身是菩提树,心如明镜台;时时勤拂拭,莫使惹尘埃。
神秀: 身是菩提树,心如明镜台;时时勤拂拭,莫使惹尘埃。 第一个毛病1: 在神秀看来,修行就是要保持我们本来干净的心, 跟外部世界的灰尘之间的隔绝状态,始终保持这种隔绝, 尘世是什么? 尘就是烦恼,人世间无处不是烦恼&a…...
如何修复富士相机卡错误并恢复卡数据
富士相机以其卓越的图像质量而闻名,但不幸的是,其 SD 卡错误可能会意外发生,导致数据丢失和摄影会话中断。 在本指南中,我们将引导您了解常见的富士相机 SD 卡错误、如何修复这些错误,以及如何有效地从损坏的卡中恢复…...
呼叫中心中间件实现IVR进入排队,判断排队超时播放提示音
文章目录 [TOC](文章目录) 前言需求排队结束原因 联系我们实现步骤1. 调用http接口返回动作2. 启用拨号方案 前言 需求 呼叫中心需要实现调用IVR接口进入排队,如果是因为等待超时导致退出排队的,那就播放一段提示音再挂断通话;其他的情况就…...
数据分析思维(八):分析方法——RFM分析方法
数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…...
SpringBoot3动态切换数据源
背景 随着公司业务战略的发展,相关的软件服务也逐步的向多元化转变,之前是单纯的拿项目,赚人工钱,现在开始向产品化\服务化转变。最近雷袭又接到一项新的挑战:了解SAAS模型,考虑怎么将公司的产品转换成多租…...
Java虚拟机面试题:内存管理(上)
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
WPF通过反射机制动态加载控件
Activator.CreateInstance 是 .NET 提供的一个静态方法,它属于 System 命名空间。此方法通过反射机制根据提供的类型信息。 写一个小demo演示一下 要求:在用户反馈界面点击建议或者评分按钮 弹出相应界面 编写MainWindow.xmal 主窗体 <Window x:C…...
前端学习-操作元素属性(二十三)
前言 假期快乐,大家加油 操作元素属性 操作元素常用属性 还可以通过 JS 设置/修改标签元素属性,比如通过 src更换 图片最常见的属性 比如:href、title、src等语法:对象.属性 值 const pic document.querySelector(img);pic.src ./images/b0.jpgp…...
Javascript 编写的一个红、黄、绿灯交替变亮
为了创建一个简单但功能完整的交通灯程序,我们将使用 HTML、CSS 和 JavaScript 来实现红、黄、绿三种颜色按照规定的顺序循环显示。这个例子将确保灯光按照红 -> 绿 -> 黄的顺序循环,并且可以调整每个灯光的持续时间以模拟真实的交通灯行为。 效果…...
基于64QAM的载波同步和定时同步性能仿真,包括Costas环和gardner环
目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要 载波同步是…...
小于n的最大数 - 贪心算法 - C++
字节经典面试题 给定一个整数n,并从1~9中给定若干个可以使用的数字,根据上述两个条件,得到每一位都为给定可使用数字的、最大的小于整数n的数,例如,给定可以使用的数字为 {2,3,8} 三个数:给定 n3589&#x…...
leetcode(hot100)4
解题思路:双指针思想 利用两个for循环,第一个for循环把所有非0的全部移到前面,第二个for循环将指针放在非0的末尾全部加上0。 还有一种解法就是利用while循环双指针条件,当不为0就两个指针一起移动 ,为0就只移动右指针…...
【Pandas】pandas Series xs
Pandas2.2 Series Indexing, iteration 方法描述Series.get()用于根据键(索引标签)从 Series 中获取值Series.at用于快速访问标量值(单个元素)的访问器Series.iat用于快速访问标量值(单个元素)的访问器Se…...
【linux内核分析-存储】EXT4源码分析之“文件删除”原理【七万字超长合并版】(源码+关键细节分析)
EXT4源码分析之“文件删除”原理【七万字超长合并版】(源码关键细节分析),详细的跟踪了ext4文件删除的核心调用链,分析关键函数的细节,解答了开篇中提出的三个核心疑问。 文章目录 提示前言全文重点索引1.源码解析1.1 …...
一个在ios当中采用ObjectC和opencv来显示图片的实例
前言 在ios中采用ObjectC编程利用opencv来显示一张图片,并简单绘图。听上去似乎不难,但是实际操作下来,却不是非常的容易的。本文较为详细的描述了这个过程,供后续参考。 一、创建ios工程 1.1、选择ios工程类型 1.2、选择接口模…...
使用Python实现基于强化学习的游戏AI:打造智能化游戏体验
友友们好! 我的新专栏《Python进阶》正式启动啦!这是一个专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会找到: ● 深入解析:每一篇文章都将…...
STM32G0B1 can Error_Handler 解决方法
问题现象 MCU上电,发送0x13帧数据固定进入 Error_Handler 硬件介绍 MCU :STM32G0B1 can:NSI1042 tx 接TX RX 接RX 折腾了一下午,无解,问题依旧; 对比测试 STM32G431 手头有块G431 官方评估版CAN 模块; 同样的…...
洛谷 P2511 [HAOI2008] 木棍分割
第一问很简单,第二问 d p dp dp。 (真是哪都能混个 d p dp dp) 参考题解 #include <bits/stdc.h>using namespace std;int read() {int x 0, f 1; char c getchar();while (c < 0 || c > 9) {if (c -) f -1; c getcha…...
二极管钳位电路分享
二极管钳位(I/O的过压/浪涌保护等) 如果我们的电路环境接收外部输入信号容易受到噪声影响,那我们必须采取过压和浪涌保护措施,其中一个方式就是二极管钳位保护。 像上图,从INPUT输入的电压被钳位在-Vf与VCCVf之间&…...
guestfish/libguestfs镜像管理工具简介
文章目录 简介guestfishlibguestfs项目 例子原理代码libguestfs架构参考 简介 guestfish Guestfish 是libguestfs项目中的一个工具软件,提供修改虚机镜像内部配置的功能。它不需要把虚机镜像挂接到本地,而是为你提供一个shell接口,你可以查…...