当前位置: 首页 > news >正文

神经网络 - 激活函数(Swish函数、GELU函数)

一、Swish 函数

Swish 函数是一种较新的激活函数,由 Ramachandran 等人在 2017 年提出,其数学表达式通常为

其中 σ(x) 是 Sigmoid 函数(Logistic 函数)。

如何理解 Swish 函数

  1. 自门控特性

    • Swish 函数可以看作是对输入 x 进行“自门控”的机制:输入 x 乘以其经过 Sigmoid 函数的值,相当于让 x 自己决定通过的比例。
    • 当 x 较大时,σ(x) 趋近于1,此时 Swish 函数近似为 x;当 x 较小时,σ(x) 会使 x 被适当缩放,从而调整激活值。
  2. 平滑与非单调性

    • Swish 函数是一条平滑、连续且处处可微的曲线。与 ReLU 等激活函数相比,它没有突然的断点。
    • 同时,Swish 函数是非单调的,即在某些区间内函数值可能先增加后减少,这种非单调性有时能够让网络学习到更复杂的特征表示。
  3. 改进训练效果

    • 研究表明,在某些深度学习任务中,使用 Swish 作为激活函数可以比使用 ReLU 带来更好的训练性能和泛化效果。
    • 这种性能提升可能归因于其平滑和非单调的特性,使得梯度传播更加稳定,降低梯度消失或爆炸的风险(参考下面对应的解释)
  4. 扩展形式

    • Swish 函数有一个扩展形式: Swish(x)=x⋅σ(βx), 其中 β是一个可调参数,甚至可以作为可学习参数。不同的 β值会影响激活函数在负区间和正区间的斜率,从而让模型更灵活地适应不同的数据分布。
    • 其中 𝜎(⋅) 为 Logistic 函数,𝛽 为可学习的参数或一个固定超参数。𝜎(⋅) ∈ (0, 1) 可 以看作一种软性的门控机制。当 𝜎(𝛽𝑥) 接近于 1 时,门处于“开”状态,激活函数的 输出近似于 𝑥 本身;当 𝜎(𝛽𝑥) 接近于 0 时,门的状态为“关”,激活函数的输出近似 于0。

      Swish 函数的图示如下:

当𝛽 = 0时,Swish函数变成线性函数𝑥/2;

当𝛽 = 1时,Swish函数在𝑥 > 0 时近似线性,在𝑥 < 0时近似饱和,同时具有一定的非单调性;

当𝛽 → +∞时,𝜎(𝛽𝑥) 趋向于离散的 0-1 函数,Swish 函数近似为 ReLU 函数。

因此,Swish 函数可以看作线性函数和 ReLU 函数之间的非线性插值函数,其程度由参数 𝛽 控制。

举例说明

例子:比较 Swish 与 ReLU 在激活上的差异
假设某神经元计算出的线性组合 x 为 -2, -1, 0, 1, 2。

  • ReLU 的输出:

    • 当 x = -2 或 -1 时,输出0;
    • 当 x = 0 时,输出0;
    • 当 x = 1 时,输出1;
    • 当 x = 2 时,输出2。
  • Swish 的输出(假设 β=1):

    • 当 x = -2 时,σ(−2)≈0.12,输出 −2×0.12≈−0.24;
    • 当 x = -1 时,σ(−1)≈0.27,输出 −1×0.27≈−0.27;
    • 当 x = 0 时,σ(0)=0.5,输出 0×0.5=0;
    • 当 x = 1 时,σ(1)≈0.73,输出 1×0.73≈0.731;
    • 当 x = 2 时,σ(2)≈0.88,输出 2×0.88≈1.762 。

从上面可以看出,与 ReLU 相比,Swish 函数在负数区域并不是完全为0,而是保留了负值(尽管较小),而在正数区域输出接近于线性。这样的行为使得网络在训练过程中能保留更多信息,梯度传播更平滑。

Swish 函数将输入 x 与 Sigmoid 函数 σ(x) 的输出相乘,实现了一个平滑且非单调的激活函数。这种设计不仅允许网络在负区域保留部分信息,还提供了平滑的梯度,有助于稳定训练过程并提高模型的泛化能力。其扩展形式中引入的参数 β 进一步增强了模型适应数据的灵活性。

梯度消失或爆炸的风险

梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)是深度神经网络训练中常见的两大问题,主要与反向传播过程中的梯度计算方式(链式法则)有关。它们会导致模型无法有效学习或训练不稳定。以下是它们的定义、原因及影响:

1. 梯度消失(Vanishing Gradient)

  • 定义:在反向传播过程中,梯度(损失函数对参数的导数)逐层传递时逐渐减小,甚至趋近于零,导致浅层网络的权重几乎无法更新。

  • 原因

    • 链式法则的连乘效应:梯度通过反向传播逐层计算时,每一层的梯度都会被前一层的梯度相乘。如果每层的梯度值小于1,多次连乘后会指数级趋近于零。

    • 激活函数的选择:例如 Sigmoid 或 Tanh 函数在输入较大时导数接近零(饱和区),导致梯度消失。

  • 后果

    • 浅层网络参数几乎不更新,模型无法学习底层特征。

    • 模型收敛缓慢或完全停止训练,性能显著下降。

2. 梯度爆炸(Exploding Gradient)

  • 定义:梯度在反向传播过程中逐层增大,最终导致权重更新幅度过大,甚至数值溢出(如 NaN)。

  • 原因

    • 链式法则的连乘效应:如果每层的梯度值大于1,多次连乘后会指数级增长。

    • 权重初始化不当:例如初始权重过大,或网络层数过深。

  • 后果

    • 参数更新不稳定,损失剧烈震荡甚至发散。

    • 权重值变为 NaN,训练完全失败。

3. 为什么梯度问题危害大?

  • 深层网络更脆弱:网络层数越多,梯度连乘的效应越明显,问题越严重。

  • 影响模型表达能力:梯度消失导致浅层无法学习,深层网络退化为浅层网络。

  • 训练效率低下:需要更复杂的调参(如学习率调整)或更长的训练时间。

4. 常见解决方案

  1. 激活函数改进

    • 使用 ReLU、Leaky ReLU 等非饱和激活函数,避免梯度消失。

  2. 权重初始化

    • 使用 Xavier初始化 或 He初始化,根据激活函数调整初始权重的分布。

  3. 归一化技术

    • 批量归一化(Batch Normalization):缓解梯度对参数尺度的依赖。

  4. 残差结构(ResNet)

    • 通过跳跃连接(Skip Connection)绕过梯度消失的层,直接传递梯度。

  5. 梯度裁剪(Gradient Clipping)

    • 对过大的梯度设定阈值,防止梯度爆炸(常用于RNN)。

  6. 优化算法

    • 使用 Adam、RMSProp 等自适应优化器,动态调整学习率。

  7. 网络结构设计

    • 在RNN中使用 LSTM 或 GRU,通过门控机制缓解梯度问题。

5.示例说明

  • 梯度消失:一个10层的全连接网络使用 Sigmoid 激活函数,反向传播时梯度可能在第5层之后趋近于零,导致前5层无法更新。

  • 梯度爆炸:一个未做梯度裁剪的RNN模型,在长序列训练时梯度可能迅速增大,导致参数溢出。

二、GELU 函数

GELU(Gaussian Error Linear Unit,高斯误差线性单元)也是一种通过门控机制来调整其输出值的激活函数,和 Swish 函数比较类似。

GELU(Gaussian Error Linear Unit,正态误差线性单元)是一种激活函数,它将输入值 x 与 x 取正态累积分布函数(CDF)的值相乘,从而实现非线性变换。其数学表达式通常写为:

其中,Φ(x) 是标准正态分布的累积分布函数,表示一个标准正态随机变量小于 x 的概率。

𝜇, 𝜎 为超参数,一般设 𝜇 = 0, 𝜎 = 1 即可。由于高斯分布的累积分布函数为 S 型函数,因此 GELU 函数可 以用 Tanh 函数或 Logistic 函数来近似,

为了便于计算,实际应用中常使用以下近似公式:

或                         GELU(𝑥) ≈ 𝑥𝜎(1.702𝑥).

当使用 Logistic 函数来近似时,GELU 相当于一种特殊的 Swish 函数。

(参考下面第三部分,概率密度函数和累积分布函数的概念)

如何理解 GELU 函数

  1. 概率视角

    • GELU 函数的核心思想是“概率性激活”:将输入 x 与其“被激活”的概率(由正态累积分布 Φ(x) 表示)相乘。这意味着,一个神经元的激活不仅依赖于输入的大小,还依赖于该输入在统计意义上有多大可能被视为“正向贡献”。
  2. 平滑性和非线性

    • 与 ReLU 相比,GELU 是一种平滑且处处可微的函数,没有硬性截断,从而有助于梯度更平稳地传递,降低梯度消失的风险。
    • 同时,GELU 是非单调的(在某些区间内可能出现非单调性),这种特性使得网络可以捕捉更复杂的模式。
  3. 实际应用中的优势

    • 在许多自然语言处理和计算机视觉任务中,GELU 函数表现出比 ReLU 更好的性能。例如,BERT 和其他 Transformer 模型中就使用了 GELU 作为激活函数,因为它能更细腻地调节信息流。

举例说明

例子:Transformer 中的 GELU
在 Transformer 模型中,隐藏层通常使用 GELU 激活函数来处理输入。假设某层神经元计算得到一个值 x:

  • 当 x 较大时,Φ(x) 接近于1,因此 GELU 输出近似于 x;
  • 当 x 较小或为负时,Φ(x) 会相应较小,从而使输出趋于较小的值或接近于0。

这种设计允许模型在处理不同尺度的输入时,能根据统计概率自动调节激活程度,从而捕捉更多细微特征,提高模型的表现。

GELU 函数通过将输入与正态累积分布的概率相乘,实现了一种基于概率视角的平滑激活机制。它既能保留输入的线性特性,又能通过平滑非线性变换提供更稳定的梯度传递和更强的表达能力,这使得它在现代深度学习模型中(如 Transformer)得到广泛应用。

三、附加:概率密度函数、累积分布函数的区别和联系

概率密度函数(PDF)累积分布函数(CDF)是描述随机变量分布的重要工具,它们既有区别又密切相关:

区别

  1. 定义不同

    • 概率密度函数(PDF)
      适用于连续随机变量。它描述了随机变量在某个取值附近出现的“相对可能性”。注意,单个点的 PDF 值本身不是概率,必须通过积分计算某个区间内的概率。例如,对于连续随机变量 X,其 PDF 表示为 f(x),某个区间 [a, b] 内的概率为

    • 累积分布函数(CDF)
      表示随机变量小于或等于某个特定值的概率。对于随机变量 X,其 CDF 表示为 F(x),定义为

      CDF 对于连续和离散随机变量都适用,且其取值范围在 [0, 1]。

  2. 数值与物理意义

    • PDF
      描述的是相对密度,给出的是“密度”而不是直接的概率值。比如,f(x) 的值可能大于1,但只要积分结果在某个区间内小于1,就表示该区间内的概率。

    • CDF
      直接反映概率。它是一个从 −∞到 +∞单调非减的函数,且满足 F(−∞)=0 和 F(+∞)=1。

联系

  1. 数学关系
    对于连续随机变量,CDF 和 PDF 之间存在密切联系:

    • 积分关系
      CDF 是 PDF 的积分,即
    • 微分关系
      如果 CDF F(x) 在 x 处可导,那么其导数就是 PDF:
  2. 用途上的互补

    • 使用 PDF,我们可以分析随机变量在某个区间的“密度”或“强度”,并通过积分得到区间概率。
    • 使用 CDF,我们可以直接了解随机变量在某个值以下的累积概率,这在统计推断和概率计算中非常直接和方便。

举例说明

例子:标准正态分布

从这个例子可以看出,CDF 给出了累积概率,而 PDF 则描述了概率“分布的浓度”。

总结

  • 概率密度函数(PDF):描述连续随机变量在各个点附近的相对概率密度,需要通过积分才能得到具体区间的概率。
  • 累积分布函数(CDF):直接表示随机变量小于或等于某个值的累计概率,具有直观的概率意义,并且可以通过积分(或求导)与 PDF 互相转换。

理解这两者的区别和联系对于掌握概率分布、进行概率计算以及进行统计推断非常重要。

相关文章:

神经网络 - 激活函数(Swish函数、GELU函数)

一、Swish 函数 Swish 函数是一种较新的激活函数&#xff0c;由 Ramachandran 等人在 2017 年提出&#xff0c;其数学表达式通常为 其中 σ(x) 是 Sigmoid 函数&#xff08;Logistic 函数&#xff09;。 如何理解 Swish 函数 自门控特性 Swish 函数可以看作是对输入 x 进行“…...

VS2015 c++和cmake配置编程

Visual Studio 2015&#xff1a;确保安装了C开发工具&#xff0c;并安装“使用C的桌面开发”工作负载。CMake&#xff1a;可以从 CMake官网 下载并安装&#xff0c;并将其添加到系统环境变量中。vs加载项目启动Visual Studio。选择“继续但无代码”。点击“文件”。选择 “打开…...

如何为 Web 前端开发面试做好准备

大家好&#xff01;我是 [数擎AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | AI 应…...

深入探索像ChatGPT这样的大语言模型

参考 【必看珍藏】2月6日&#xff0c;安德烈卡帕西最新AI普及课&#xff1a;深入探索像ChatGPT这样的大语言模型&#xff5c;Andrej Karpathy fineweb知乎翻译介绍 fineweb-v1原始连接 fineweb中文翻译版本 Chinese Fineweb Edu数据集 查看网络的内部结果&#xff0c;可以参…...

代码贴——堆(二叉树)数据结构

头文件Heap.h #pragma once #include<bits/stdc.h> typedef int HPDataType;typedef struct Heap {HPDataType* a;int size;int capacity; }HP;void HPInit(HP* php); void HPDestory(HP* php); //出入后保持数据是堆 void HPPush(HP* php,HPDataType x); HPDataType HP…...

office或者word排版中,复制/黏贴进来文字不会自动换行,如何处理?

李升伟 整理 一、思考与分析 在Office或Word中复制粘贴文字时&#xff0c;文字不会自动换行&#xff0c;需要处理这个问题。首先&#xff0c;我得回想一下常见的原因和解决方法。可能的情况有很多&#xff0c;比如文本带有硬回车、段落格式设置问题&#xff0c;或者文本框的自…...

最新!!!DeepSeek开源周发布内容汇总

本周&#xff0c;人工智能领域的新锐力量DeepSeek宣布将于本周举办“开源周”&#xff08;Open Source Week&#xff09;&#xff0c;连续五天每日开源一个核心代码库&#xff0c;以透明的方式与全球开发者分享其在通用人工智能&#xff08;AGI&#xff09;探索中的最新成果。以…...

【MySQL】(2) 库的操作

SQL 关键字&#xff0c;大小写不敏感。 一、查询数据库 show databases; 注意加分号&#xff0c;才算一句结束。 二、创建数据库 {} 表示必选项&#xff0c;[] 表示可选项&#xff0c;| 表示任选其一。 示例&#xff1a;建议加上 if not exists 选项。 三、字符集编码和排序…...

记一次渗透测试实战:SQL注入漏洞的挖掘与利用

0x01 漏洞发现 在对某网站进行安全测试时&#xff0c;发现以下URL存在异常&#xff1a; https://******.com/search.php?keyword1&zt1954&dw1885&zz& 当参数keyword和zt被赋值为-1时页面返回特殊内容&#xff0c;初步判断存在SQL注入漏洞。 0x02 注入验证…...

Gin框架从入门到实战:核心用法与最佳实践

为什么选择Gin框架&#xff1f; Gin 是一个基于 Go 语言的高性能 Web 框架&#xff0c;具备以下优势&#xff1a; 轻量高效&#xff1a;底层依赖 net/http&#xff0c;性能接近原生。简洁优雅&#xff1a;API 设计友好&#xff0c;支持路由分组、中间件链、参数绑定等特性。生…...

PyTorch 的 nn.NLLLoss:负对数似然损失全解析

PyTorch 的 nn.NLLLoss&#xff1a;负对数似然损失全解析 在 PyTorch 的损失函数家族中&#xff0c;nn.NLLLoss&#xff08;Negative Log Likelihood Loss&#xff0c;负对数似然损失&#xff09;是一个不太起眼但非常重要的成员。它经常跟 LogSoftmax 搭配出现&#xff0c;尤…...

ROS2软件调用架构和机制解析:Publisher创建

术语 DDS (Data Distribution Service): 用于实时系统的数据分发服务标准&#xff0c;是ROS 2底层通信的基础RMW (ROS Middleware): ROS中间件接口&#xff0c;提供与具体DDS实现无关的抽象APIQoS (Quality of Service): 服务质量策略&#xff0c;控制通信的可靠性、历史记录、…...

vue2 以及vue3中 v-if和v-for是否可以同时使用

vue2以及vue3官方文档中都明确的指出 避免 v-if 和 v-for 用在一起 vue2 官方文档 解释 在 Vue 2 中&#xff0c;v-for 的优先级高于 v-if&#xff0c;也就是说&#xff0c;Vue 2 在渲染时&#xff0c;会先处理 v-for 生成列表项&#xff0c;再对子项判断 v-if 是否渲染。 …...

Hbase伪分布安装教程,详细版

注意Hbase版本与Hadoop版本的兼容&#xff0c;还有与JDK版本的兼容 本次用到的Hbase为2.4.6版本&#xff0c;Hadoop为3.1.3版本&#xff0c;JDK为JDK8 打开下面的网址查看兼容问题 Apache HBase Reference Guidehttps://hbase.apache.org/book.html#configuration 点击基础先…...

SSL: CERTIFICATE_VERIFY_FAILED Error in Python 是什么问题?

在最新版本的Stable Diffusion webui 版本上使用最新下载的模型时&#xff0c;出现了类似的错误。 SSL: CERTIFICATE_VERIFY_FAILED 错误在Python中通常表示你的程序试图通过HTTPS连接到某个服务器&#xff0c;但Python无法验证该服务器提供的SSL证书。这可能是因为以下几种原…...

15Metasploit框架介绍

metasploit目录结构 MSF ——the metasploit framework 的简称。MSF高度模块化&#xff0c;即框架结构由多个module组成&#xff0c;是全球最受欢迎的工具 是一筐开源安全漏洞利用和测试工具&#xff0c;集成了各种平台上常见的溢出漏洞和流行sheellcode&#xff0c;并且保持…...

【Qt】ffmpeg解码—照片提取、视频播放▲

目录 一、图像的成像原理&#xff1a; RGB成像原理&#xff1a; YUV成像原理&#xff1a; 二、多线程 三、ffmpeg解码&#xff08;照片提取&#xff09; 1.准备工作 &#xff08;1&#xff09;在工程文件夹里面新建三个文件夹 &#xff08;2&#xff09;在main函数中加…...

Springboot整合WebSocket+Redis以及微信小程序如何调用

一、 Springboot整合WebSocket 1. 引入socket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>引入依赖后需要刷新maven,Websocket的版本默认跟随S…...

HOW - 在Windows浏览器中模拟MacOS的滚动条

目录 一、原生 CSS 代码实现模拟 macOS 滚动条额外优化应用到某个特定容器 二、Antd table中的滚动条场景三、使用第三方工具/扩展 如果你想让 Windows 里的滚动条 模拟 macOS 的效果&#xff08;细窄、圆角、隐藏默认轨道&#xff09;。 可以使用以下几种方案&#xff1a; 一…...

openEuler环境下GlusterFS分布式存储集群部署指南

1.环境准备&#xff1a; os&#xff1a;openEuler 22.03 主机名 IP地址 主机用途 Rocky8192.168.121.160客户端 open-Euler1192.168.121.150节点1&#xff0c;提供两块6G硬盘open-Euler4192.168.121.153节点2&#xff0c;提供两块6G硬盘open-Euler5192.168.121.154 …...

C++学习(七)(标准库+STL(iotstream公司,日期/时间,器皿,算法,迭代器,多线程))

C 标准模板库 &#xff08;STL&#xff09; C 标准模板库 &#xff08;STL&#xff09; 是头文件的集合&#xff0c;提供了多种数据结构、算法和函数&#xff0c;以简化您的 C 编码体验。STL 的主要目的是通过提供一套现成的有用工具来节省时间并提高效率。STL 最常用的功能可…...

c高级第五天

1> 在终端提示输入一个成绩&#xff0c;通过shell判断该成绩的等级 [90,100] : A [80, 90) : B [70, 80) : C [60, 70) : D [0, 60) : 不及格 #!/bin/bash# 提示用户输入成绩 read -p "请输入成绩&#xff08;0-100&#xff09;&#xff1a;" score# 判断成…...

Windows上使用go-ios实现iOS17自动化

前言 在Windows上运行iOS的自动化&#xff0c;tidevice对于iOS17以上并不支持&#xff0c;原因是iOS 17 引入新通信协议 ‌RemoteXPCQUIC‌&#xff0c;改变了 XCUITest 的启动方式。 一、go-ios的安装 1、安装命令&#xff1a;npm i go-ios 2、安装完成后输入命令which io…...

迷你世界脚本小地图接口:Mapmark

小地图接口&#xff1a;Mapmark 彼得兔 更新时间: 2023-10-25 10:33:48 具体函数名及描述如下: 序号 函数名 函数描述 1 newShape(...) 新增一个形状(线&#xff0c;矩形&#xff0c;圆形) 2 deleteShape(...) 删除一个形状 3 setShapeColor(...) 设置…...

TMS320F28P550SJ9学习笔记1:CCS导入工程以及测试连接单片机仿真器

学习记录如何用 CCS导入工程以及测试连接单片机仿真器 以下为我的CCS 以及驱动库C2000ware 的版本 CCS版本&#xff1a; Code Composer Studio 12.8.1 C2000ware &#xff1a;C2000Ware_5_04_00_00 目录 CCS导入工程&#xff1a; 创建工程&#xff1a; 添加工程&#xff1a; C…...

为什么要提倡尽早返回(Early Return)

为什么要提倡尽早返回&#xff08;Early Return&#xff09; 在编程中&#xff0c;“尽早返回”&#xff08;Early Return&#xff09;是一种常被提倡的编程方式&#xff0c;特别是在需要提升代码可读性、减少嵌套层级、以及快速处理异常情况时。本文将讨论尽早返回的优点、应…...

Gartner发布安全运营指标构建指南

如何为安全运营指标构建坚实的基础 安全运营经理需要报告威胁检测、调查和响应计划的有效性&#xff0c;但难以驾驭大量潜在的 SOC 指标。本研究提供了设计针对 SOC 的指标系统的示例和实践。 主要发现 需要清晰、一致的衡量标准来向董事会成员或服务提供商等更广泛的团队传达…...

vue3:初学 vue-router 路由配置

承上一篇&#xff1a;nodejs&#xff1a;express js-mdict 作为后端&#xff0c;vue 3 vite 作为前端&#xff0c;在线查询英汉词典 安装 cnpm install vue-router -S 现在讲一讲 vue3&#xff1a;vue-router 路由配置 cd \js\mydict-web\src mkdir router cd router 我还…...

数据结构入门篇——什么是数据结构。

一、引入 工具是一种什么东西呢&#xff1f;是一种转化媒介&#xff0c;我们需要熟食&#xff0c;我们要通过用火来将生肉烤熟。在这个过程中。我们要输入一个东西——生肉&#xff0c;通过工具——火的加工&#xff0c;从而得到我们的目的产物——熟肉。 将上面的例子和红字部…...

uniapp+vue3搭建项目

工具使用&#xff1a; Pinia Vue 3 官方推荐的状态管理库&#xff0c;比 Vuex 更轻量&#xff0c;支持模块化&#xff0c;结合 persistedstate 插件可以持久化存储数据。uView-plus 专为 UniApp 设计&#xff0c;支持 App、小程序、H5。UnoCSS 更轻量&#xff0c;比 TailwindCS…...

unity大坐标抖动处理测试

第二幅图就是相机坐标是0 6360094 0的地方看见的模型&#xff0c;可以看见这个球体已经烂了 那么这里可以知道的是坐标太大了导致的&#xff0c;那么把所有物体共同偏移一下&#xff0c;即可得到第一幅图的效果&#xff0c;圆润的sphere又回来了 浮点数的计算是需要位数的&…...

CASAIM与承光电子达成深度合作,三维扫描逆向建模技术助力车灯设计与制造向数字化与智能化转型

近日&#xff0c;CASAIM与广州承光电子科技有限公司正式达成深度合作&#xff0c;CASAIM将为承光电子提供全方位的技术支持&#xff0c;包括高精度三维扫描设备、逆向建模软件以及定制化的技术解决方案。双方将共同组建技术团队&#xff0c;针对车灯设计中的难点进行攻关&#…...

C++类与对象:银行管理系统项目实战开发LeetCode每日一题

[Bank-Management-System]银行管理系统项目 以下是一个可运行的C银行账户类&#xff08;支持简单的存款/取款&#xff09;。后面会继续完善该项目&#xff1a; #include <iostream> #include <string> using namespace std;class Account{public://构造函数Accou…...

领域驱动设计:事件溯源架构简介

概述 事件溯源架构通常由3种应用设计模式组成,分别是:事件驱动(Event Driven),事件溯源(Event Source)、CQRS(读写分离)。这三种应用设计模式常见于领域驱动设计(DDD)中,但它们本身是一种应用设计的思想,不仅仅局限于DDD,每一种模式都可以单独拿出来使用。 E…...

景联文科技:以专业标注赋能AI未来,驱动智能时代的精准跃迁

在人工智能技术重塑全球产业格局的今天&#xff0c;高质量训练数据已成为驱动算法进化的核心燃料。作为数据智能服务领域的领军者&#xff0c;景联文科技深耕数据标注行业多年&#xff0c;以全栈式数据解决方案为核心&#xff0c;构建起覆盖数据采集、清洗、标注、质检及算法调…...

LeetCode 热题 100----1.两数之和

LeetCode 热题 100----1.两数之和 题目描述 我的解法 语言&#xff1a;js 思路就是&#xff1a;用双重循环去找哪两个数字相加等于target&#xff0c;目前的时间复杂度为O(n2)&#xff0c;之后右优化思路再更新。...

GIT 常用命令

/ 一、环境&#xff1a; ssh-keygen -t rsa -C "wangxiaoerqq.com.cn" 生成本地秘钥&#xff08;邮箱换成自己的邮箱&#xff09; 使用cat ~/.ssh/id_rsa.pub查看秘钥 git config --global user.name "wangxiaoer" git config --global wangxiaoerqq.…...

Netty笔记13:序列化

Netty笔记1&#xff1a;线程模型 Netty笔记2&#xff1a;零拷贝 Netty笔记3&#xff1a;NIO编程 Netty笔记4&#xff1a;Epoll Netty笔记5&#xff1a;Netty开发实例 Netty笔记6&#xff1a;Netty组件 Netty笔记7&#xff1a;ChannelPromise通知处理 Netty笔记8&#xf…...

IntelliJ IDEA 构建项目时内存溢出问题

问题现象 在使用 IntelliJ IDEA 构建 Java 项目时&#xff0c;遇到了以下错误&#xff1a; java: java.lang.OutOfMemoryError: Java heap space java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space这是一个典型的 Java 堆内存不足错误&#xff0c;表…...

Asp.Net Core WebAPI开发教程(入门)

一、Asp.Net Core WebAPI项目创建 二、Asp.Net Core WebApi/Mvc路由定义 二、Asp.Net Core WebAPI 请求案例 Asp.Net WebApi Get请求整理&#xff08;一&#xff09; Asp.Net WebApi Post请求整理&#xff08;一&#xff09; Asp.Net WebApi Action命名中已‘Get’开头问题 …...

golang 内存对齐和填充规则

内存对齐和填充规则 对齐要求&#xff1a;每个数据类型的起始地址必须是其大小的倍数。 int8&#xff08;1字节&#xff09;&#xff1a;不需要对齐。int16&#xff08;2字节&#xff09;&#xff1a;起始地址必须是2的倍数。int32&#xff08;4字节&#xff09;&#xff1a;起…...

MySQL执行更新SQL流程

目录 1 redo log 2 binlog 3 Update执行逻辑 1 redo log InnoDB引擎特有日志MySQL的WAL&#xff08;Writing Ahead logging&#xff09;技术&#xff0c;预写式日志&#xff0c;先写日志再写磁盘当有一条记录需要更新时&#xff0c;InnoDB引擎就会先把记录写在redo log日志中&a…...

【时序预测】在线学习:算法选择(从线性模型到深度学习解析)

——如何为动态时序预测匹配最佳增量学习策略&#xff1f; 引言&#xff1a;在线学习的核心价值与挑战 在动态时序预测场景中&#xff08;如实时交通预测、能源消耗监控&#xff09;&#xff0c;数据以流式&#xff08;Streaming&#xff09;形式持续生成&#xff0c;且潜在的…...

CISC架构

基本概念 CISC 架构是一种计算机处理器设计架构&#xff0c;其设计理念与 RISC 架构相对。CISC 架构强调通过使用大量功能复杂的指令来增强计算机的处理能力&#xff0c;试图让计算机用一条指令就能完成较为复杂的操作&#xff0c;以减少程序中指令的总数&#xff0c;提高程序…...

Vue前端开发- Vant之Card组件

业务组件是Vant的一大特点&#xff0c;特别是针对移动端商城开发的业务&#xff0c;有许多组件可以直接运用到通用商城的开发中&#xff0c;代码也十分简单&#xff0c;大大加快了应用的开发速度。 在众多的业务组件中&#xff0c;Card 卡片、Coupon 优惠券选择器和SubmitBar …...

React Refs:深入理解与最佳实践

React Refs&#xff1a;深入理解与最佳实践 引言 在React中&#xff0c;refs是用于访问DOM元素或组件实例的一种方式。与类组件的ref属性不同&#xff0c;函数组件的ref需要使用useRef钩子。正确使用refs可以大大提升React应用的性能和可维护性。本文将深入探讨React Refs的原…...

Linux——基本指令

我们今天学习Linux最基础的指令 ls 指令 语法&#xff1a; ls [选项] [⽬录或⽂件] 功能&#xff1a;对于⽬录&#xff0c;该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件&#xff0c;将列出⽂件名以及其他信 息。 命令中的选项&#xff0c;一次可以传递多个 &#xff0c…...

【MySQL系列文章】Linux环境下安装部署MySQL

前言 本次安装部署主要针对Linux环境进行安装部署操作,系统位数64 getconf LONG_BIT 64MySQL版本&#xff1a;v5.7.38 一、下载MySQL MySQL下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 二、上传MySQL压缩包到Linuxx环境&#xff0c…...

【mysql】表信息无法获取与插入数据错误

一&#xff1a;无法获取表信息 处理流程分析 初始问题&#xff1a;get_room_member_list 函数调用后&#xff0c;未能收到预期的群成员列表回调 Error: not all arguments converted during string formatting 127.0.0.1 - - [26/Feb/2025 11:55:32] "POST / HTTP/1.1&qu…...

七、Redis 内存管理详解:模型、优化策略(LRU/LFU、对象共享)

Redis 内存管理详解:模型、优化策略(LRU/LFU、对象共享) Redis 以高性能和低延迟著称,但作为基于内存的数据库,内存管理是其核心问题之一。本文将深入解析 Redis 的内存模型、内存优化策略(包括 LRU/LFU 机制、对象共享等),帮助开发者提高 Redis 的存储效率和性能。 1…...