深度学习机器学习:常用激活函数(activation function)详解

目录

Sigmoid Function

ReLU(Rectified Linear Unit)

LeakyReLU(Leaky Rectified Linear Unit)

ClippedReLU(Clipped Rectified Linear Unit)

PRelu(Parametric ReLU)

Tanh(hyperbolic tangent function)

ELU (Exponential Linear Unit)

GELU(Gaussian Error Linear Unit)

Swish(Self-Gated Sigmoid Activation Function)

Softplus Fuction


Sigmoid Function

定义:

Sigmoid(x)=\frac{1}{1+e^{-x}}

该函数将输入值 x 映射到 (0,1) 的范围内,输出值可以被解释为概率,广泛用于二分类任务中。

特点:

  • 非线性平滑输出:Sigmoid函数的输出是连续且平滑的,能够为模型提供非线性建模能力。其S形曲线在输入值较小时(如 x→−∞)输出接近0,输入值较大时(如 x→+∞)输出接近1,中间区域则呈现平滑过渡,适合处理具有概率意义的输出。
  • 梯度消失:Sigmoid函数的导数f'(x)=f(x)(1-f(x))在输入值绝对值较大时会接近0,导致反向传播时梯度非常小,从而引发梯度消失问题。这会使得深层网络中靠近Sigmoid激活函数的权重更新缓慢,甚至停止更新,影响模型的训练效果。

 应用:

  • 二元分类与概率输出:Sigmoid函数的输出范围为 (0,1),可以直接被解释为概率,因此非常适合用于二分类问题的输出层激活函数。例如,在逻辑回归或神经网络的最后一层,Sigmoid可以将输出映射为事件发生的概率。


ReLU(Rectified Linear Unit)

定义

ReLU(x)=max(0,x)

 

起源论文:Nair V, Hinton G E. Rectified linear units improve restricted boltzmann machines[C]//Proceedings of the 27th international conference on machine learning (ICML-10). 2010: 807-814.

Rectified Linear Units Improve Restricted Boltzmann Machines

特点

  • 正向激活:当输入为正时,输出等于输入,保持梯度不衰减,有助于解决梯度消失问题。当输入为负时,输出为零,引入稀疏性,减少计算量,但可能导致“死亡ReLU”问题(当特征值小于或等于0时,它总是输出0,即神经元永远不会被激活,特别是当模型参数量大的时候,不是每个参数都可以在梯度下降中被很好的训练,“死亡Relu”的影响就会比较明显)。

当ReLU函数的输入小于零时,其导数为零(因为输出是常数0,对输入没有依赖)。这意味着,在反向传播过程中,该神经元对损失函数的梯度贡献为零。因此,与该神经元相连的权重将不会得到更新(因为梯度为零,权重更新公式中的梯度项为零),进一步造成神经元“死亡”

注:

  • 神经元“死亡”通常指的是在使用 ReLU(Rectified Linear Unit) 激活函数时,某些神经元的输出值永远为 0,并且在训练过程中无法再被激活。这种情况被称为“神经元死亡”或“ReLU 死亡问题
  • 梯度消失是指在反向传播过程中,某些层的梯度值变得非常小,接近于 0,导致这些层的权重几乎无法更新。这种情况通常发生在深层网络中,尤其是在使用 sigmoidtanh 激活函数时。
  • 从描述上来说,神经元死亡是指激活后特征值仍为0(仅限于ReLU),梯度消失则是指梯度非常接近于0,两者在作用对象上具有本质差别。神经元死亡指该特征没有被利用,进一步训练也无法学习到(尽管该特征很微小),而梯度消失则是,描述该网络层由于梯度过于小导致无法得到有效训练。

使用场景:

  • 常见的深度学习网络:由于其计算简单,效率高,因此其比较适合应用参数量大的深度神经网络。同时因为其具有稀疏的特性,利用ReLU训练的网络往往有更好的模型蒸馏效果,因此一些论文为了凑工作量,故意采用ReLU激活函数,来提升其模型蒸馏的表现。

注:稀疏性通常指在某个集合、向量、矩阵或信号中,大多数元素或分量的值接近于零或为零,而只有少数元素或分量的值较大。这种特性使得数据或信号具有稀疏表示的可能性,即可以通过较小的数据来储存和表示。


LeakyReLU(Leaky Rectified Linear Unit)

定义:

Leaky ReLU(x)=\left\{\begin{matrix} x& if &x>0 \\ \alpha x&if &x\leq 0 \end{matrix}\right.

 

起源论文:Maas A L, Hannun A Y, Ng A Y. Rectifier nonlinearities improve neural network acoustic models[C]//Proc. icml. 2013, 30(1): 3.

relu_hybrid_icml2013_final.pdf

特点

  • 缓解“死亡神经元”问题:当输入为负时,LeakyReLU输出一个微小的非零值(αxαx),而非完全置零。这使得负区间的梯度为 α(而非0),确保反向传播时梯度仍能流动,避免神经元永久“死亡”。

  • 保留部分稀疏性与计算高效性:负值区域的输出虽不为零,但通过设置较小的 αα(如0.01),仍能保持一定稀疏性,即负值区域的激活强度远低于正值区域。相比ReLU仅多一次乘法运算(αx),整体复杂度依然较低,依旧适合个人构建大规模神经网络。

使用场景

  • 任何可以使用Relu激活函数的场景

    在生成对抗网络(GANs)、循环神经网络(RNNs)等对梯度敏感的任务中,LeakyReLU可避免因梯度消失导致的模型训练失败。相较于ReLU,LeakyReLu在计算复杂度不大幅提高的情况下,进一步强化了模型训练和预测的鲁棒性。所以,为什么不用LeakReLU呢?

稀疏性权衡:LeakyReLU牺牲了ReLU的严格稀疏性(负值完全置零),但通过微小负值保留了部分稀疏特性。

参数选择:α 通常取0.01,但可根据任务调整。若 α 过大,可能导致负值区域激活过强,削弱稀疏性优势。当 α=0 时,LeakyReLU退化为ReLU;当α=1 时,退化为线性函数。


ClippedReLU(Clipped Rectified Linear Unit)

定义:

ClippedReLU(x)=\left\{\begin{matrix} 0 & if & x\leq 0 \\ x & if & 0< x \leq \tau \\ \tau & if & x> \tau \end{matrix}\right.


Clipped ReLU(也称为截断ReLU或限制ReLU)是一种变体,它在ReLU的基础上对输出值进行了上限截断。即当输入大于某个设定阈值时,输出不再继续增加,而是被限制在这个阈值上。

起源论文:Cai Z, He X, Sun J, et al. Deep learning with low precision by half-wave gaussian quantization[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 5918-5926.

CVPR 2017 Open Access Repository

特点:

  • 保留了ReLU的稀疏性
  • 防止梯度爆炸:在反向传播中,输入超过  \tau的区域梯度为零(因输出固定为常数 \tau),类似ReLU的负区间行为。这能限制梯度幅值,降低梯度爆炸的可能性。
  • 引入可控性:通过调整 \tau可灵活平衡模型表达能力与数值稳定性。例如,较小的 \tau 增强鲁棒性但可能抑制特征多样性,较大的 ττ 更接近原始ReL

使用场景:

  • 基本不用:大多数场景中,梯度爆炸问题都不太显著。因此,必须使用Clipped ReLu的场景较少。
  • 特殊需求:量化感知训练(Quantization Aware Training, QAT)及 嵌入式或边缘计算中:在模型量化前使用ClippedReLU,可约束激活值范围,使其适配低比特整数(如8-bit),减少量化误差。

注:

阈值:Clipped ReLU的阈值\tau是人为一个超参数,需要根据具体任务和网络结构进行调优。

什么是量化感知训练(QAT):在深度学习领域,模型的效率和性能一直是研究者们关注的重点。传统的深度学习模型大多使用32位浮点数(FP32)进行计算,但在部署阶段,尤其是在资源受限的设备上(如移动设备、嵌入式系统等),将模型中的权重和激活函数量化为较低精度的数值(如8位整数,INT8)可以显著减少内存和计算的需求。然而,模型量化通常会带来计算精度的下降,从而影响模型的性能。为了减少这种影响,量化感知训练被提出,用于底精度模型拟合原始模型。


PRelu(Parametric ReLU)

定义

PReLU(x)=\left\{\begin{matrix} x& if &x>0 \\ \alpha x&if &x\leq 0 \end{matrix}\right.

Parametric ReLU(PReLU)是LeakyReLU的改进版本,虽然从计算定义上看,和LeakyReLU一致,但PReLU通过引入可学习的参数来自适应调整负值区域的斜率。其中,α 是一个可训练的参数(而非固定值),通过反向传播优化,允许模型根据数据动态调整负区间的激活强度。

 He K, Zhang X, Ren S, et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1026-1034.

ICCV 2015 Open Access Repository

特点

  • 自适应负区间斜率PReLU允许每个神经元或每组通道(channel-wise)拥有独立的 α,赋予模型更强的表达能力。例如,卷积网络中可为每个卷积核单独学习 α,适应不同特征的重要性。类似LeakyReLU,负区间的梯度为 α(非零),确保反向传播时梯度持续流动,降低神经元永久失效的风险。通过优化 α,模型可自动决定负区间的激活强度:若α→0,接近ReLU的严格稀疏性;若 α 较大,保留更多负值信息以捕捉复杂模式。

  • 低额外计算成本

    增加的参数量极小(如CNN中每通道仅一个参数),模型计算成本和LeakyReLU一致,适合大规模网络。PReLU在训练时,即反向传播的过程中,也会增加的一定计算量,但总体来说也不显著,替换成PReLU不会显著降低训练时间。

PReLU梯度的计算:反向传播时,α的梯度为负区间的输入 x之和,即 \frac{\partial L}{\partial \alpha} = \sum_{x_i \leq 0} x_i \cdot \frac{\partial L}{\partial f(x_i)},需注意梯度裁剪防止数值不稳定。

使用场景

  • 任何使用ReLU、LeakyReLU的场景:生于LeakyReLU,可自适应的调节参数的PReLu是更好选择。当训练数据充足时,PReLU的参数化机制可挖掘更多隐藏特征,避免因固定 α 导致的模型表达能力受限。

  • 多源异构数据融合的模型:若输入特征在不同通道或区域间差异显著(如自然图像与文本数据混合训练),PReLU的分通道参数化特性可提升模型鲁棒性,因此在数据分布差异比较大的多源数据中,PReLU是个不错的激活工具。

参数初始化
α 通常初始化为0.25(经验值,参考何恺明论文),但也可尝试其他初始化策略(如均匀分布)。

参数共享策略
为减少参数量,可将 α 设为通道共享(channel-wise)而非逐神经元(element-wise),尤其在宽网络中,以减少参数量,加快训练速度。


Tanh(hyperbolic tangent function)

定义:

tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}

 

特点:

  • 平滑性和对称性:该函数将输入值映射到 [−1,1] 的范围内,输出值具有对称性和平滑性。其导数为:tanh'(x)=1-tanh^{2}(x),这种平滑性使得梯度在反向传播过程中能够持续流动。但输入和输出的绝对值太大时,其梯度也过于的小,同样会产生梯度消失。

但需要注意的是:tanh 的梯度在输入值接近 0 时较大,而在输入值绝对值较大时梯度逐渐减小。这种特性使得 tanh 仅在在处理中等大小的输入时能够较好地传播梯度,在输入值过大或过小时,梯度可能会变得非常接近于0,从而导致“梯度消失”问题。

使用场景:

  • 映射输出:由于tanh输出[-1,1]的特性,它很适合用来映射输出。因此生成网络的输出基本都是采用tanh,如DCGAN或是Pix2Pix。再例如循环神经网络(RNN)中,tanh 常用于门控机制,以确保梯度在时间维度上能够较好地传播。
  • 小规模网络:tanh的计算较为复杂,因此其并不适用于大型网络模型,要不其训练时间会显著地增加,如使用tanh的RNN模型:LSTM,它的训练速度就是慢。


ELU (Exponential Linear Unit)

定义:

ELU(x)=\left\{\begin{matrix} x & if & x\geq 0\\ a(e^x-1) & if & x< 0 \end{matrix}\right.

 

其中,α 是一个超参数,通常取值为1,但也可以根据需要进行调整。

起源论文:Clevert D A. Fast and accurate deep network learning by exponential linear units (elus)[J]. arXiv preprint arXiv:1511.07289, 2015.

(PDF) Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)

特点:

  • 负值平滑处理:ELU对负值进行指数平滑处理,输出饱和于-\alpha,减少噪声传播(负区间的饱和特性可抑制噪声信号,即当x小于零时,其波动会被”平滑压缩“)。因此其可以防止梯度消失的产生。
  • 连续可微:ELU在所有点上都是连续且可微的(当\alpha为1时),有助于梯度在反向传播过程中更顺畅地流动。因此不容易产生梯度消失问题。

使用场景:

  • 对训练稳定性有更高要求:由于ELU的计算开销要高于ReLU和LeakyReLU(特别是训练阶段),但目前没有充分的证据使用ELU会显著提高模型性能,首选使用ELU较少。只能说使用ELU训练过程中的稳定性会更好。

GELU(Gaussian Error Linear Unit)

定义:

GELU(x)=x\cdot \frac{1}{2}[1+erf(\frac{x}{\sqrt{2}})]

 

式中:\frac{1}{2}[1+erf(\frac{x}{\sqrt{2}})]为标准高斯分布的累计分布函数,erf表示误差函数。在程序中,常用其近似公式表示:

GELU(x)\approx 0.5\cdot x\cdot (1+tanh(\frac{2}{\pi }(x+0.044715x^3)))

或:GELU(x)\approx x\cdot Sigmoid(1.702x)(等价于Swish激活函数)

累积分布函数表示标准正态分布的随机变量X小于或等于输入值x的概率

起源论文: Hendrycks D, Gimpel K. Gaussian error linear units (gelus)[J]. arXiv preprint arXiv:1606.08415, 2016.

[1606.08415] Gaussian Error Linear Units (GELUs)

特点:

  • 连续平滑:不再赘述
  • 自适应门控机制 :GELU 通过其内部的高斯 CDF 组件,实现了一种自适应的门控机制。这意味着 GELU 可以根据输入的属性自动调整激活的量,类似于神经元的开/关切换,即通过CDF,将x进行0~100%间的取舍,这与开关很像,但不是只有开和关。
  • 隐式、数据依赖的正则化机制 :GELU 其通过概率化门控动态调整激活强度,既保留了 ReLU 的稀疏性优势,又具备了类似 Dropout 的泛化增强能力。(直接基于输入值的分布特性决定抑制强度,无实际随机操作)

GELU:数据依赖的隐式自适应正则化
GELU 的正则化强度不是固定的(如 Dropout 的固定概率 p),而是依赖输入 x的统计特性

  • 对噪声(一般而言,噪声的数值分布要远低于特征,如果你噪声比特征的数值还大,你的数据就相当于都是噪声了)或小幅度的输入(x接近 0),GELU 会显著抑制激活值(Φ(x)≈0.5),起到类似噪声过滤的作用,相当进一步屏蔽该噪声或微小特征,防止模型过拟合。

  • 对显著的正/负输入(∣x∣较大),GELU 退化为近似线性/稀疏激活,保留关键特征。

  • 效果:这种动态调整在训练中隐式引导模型关注更重要的特征,降低对噪声的敏感度,从而提升泛化能力。

使用场景: 

  • 与 Swish 的关系:GELU 与 Swish在形式上相似,但 GELU 的理论基础源自高斯误差函数,而 Swish 为经验性设计。当 β=1.702 时,二者近似等价。所以一般而言,使用Swish和GELU的场景可以试试替换,但Swish计算更加简单一些。

  • 任何依赖ReLU和LeakyReLU的模型:在多数任务中,GELU 相比 ReLU 可小幅提升模型精度(约 1-2%),但其优势在深层网络或数据稀缺时更为显著。

  • 自然语言处理(NLP) :GELU 在 BERT、GPT 等大型语言模型中得到广泛应用,这些模型表明,GELU 可以在处理复杂和高维数据时,提供比传统激活函数更好的性能和泛化能力。GELU 能够提高变换器模型的性能,这使它成为最先进的 NLP 研究和应用的主要工具。

  • 集成Transformer的计算机视觉模型 :GELU 越来越多地被视觉模型所采用,尤其是那些集成了视觉 Transformer(ViT)等 Transformer 架构的模型。对于图像分类和物体检测等任务,GELU 可以增强模型学习复杂视觉特征的能力。


Swish(Self-Gated Sigmoid Activation Function)

定义:

Swish(x)=x\cdot sigmoid(\beta x)

 

Swish,即自适应sigmoid函数,其中,β 是可学习的参数。

起源论文:Ramachandran P, Zoph B, Le Q V. Searching for activation functions[J]. arXiv preprint arXiv:1710.05941, 2017. 

[1710.05941] Searching for Activation Functions

特点

  • 带有自适应调节因子:Swish 将输入值 x 与经过 sigmoid(βx) 激活后的值相乘,这里的 β 是一个可训练的参数。这使得 Swish 函数能够根据训练数据自动调整自身,增强其拟合复杂数据分布的能力。

  • 非单调且平滑特性:与其他大部分的激活函数不同,Swish 是非单调的,其曲线更平滑,这种非线性特性有助于模型在更多复杂场景下具备良好的泛化能力。其导数f'(x)=\sigma (\beta x)+\sigma (\beta x)(1-\sigma (\beta x)),正负区间均保持非零梯度,不容易产生梯度消失。

使用场景

  • 深层网络架构:如 Transformer、ResNet 等超深模型,利用其平滑梯度和自适应特性提升训练稳定性。在图像分类、目标检测等任务中,Swish 常优于 ReLU,尤其在模型需要强非线性表达能力时。当模型出现神经元死亡或梯度消失时,可尝试替换 ReLU 为 Swish 以验证效果提升。

注:

参数初始化:β 通常初始化为 1(经验值),若作为可训练参数,可采用小随机值(如均匀分布)以促进探索。

变体版本Swish-1:固定 β=1,省去参数学习,计算成本较低且性能接近原版。原始版本的EfficientNet采用的激活函数就是Swish-1;此外,Swish 和 SiLU(Sigmoid-weighted Linear Unit)数学形式一致,但 SiLU 通常指固定β=1 的版本。

硬件优化问题:部分框架(如 TensorFlow)对 Swish 的 Sigmoid 计算进行硬件级优化(如查表近似),缓解计算瓶颈。

参数共享策略:β 具有两种设置,作为全局参数(整个网络共享)或层级参数(每层独立),需要留意。

Softplus Fuction

定义:

softplus(x)=ln(1+e^x)

 

起源论文:

特点:

  • 平滑近似、渐进线性:Softplus 是 ReLU 函数的平滑近似。它在整个范围内都是可导的,这使得它在反向传播过程中能够提供稳定的梯度。当输入值较大时,Softplus 函数的输出近似于线性。

使用场景:

  • VAE(变分自编码器):在VAE中,softplus用于参数化潜在空间的方差。由于softplus的输出总是非负的,这确保了方差的正定性,符合概率模型的要求。
  • GANs(生成对抗网络):在某些GAN模型中,softplus用于参数化logits,帮助生成更加清晰和区分的概率分布。这对于GAN生成逼真的数据至关重要。

VAE(Variational Autoencoder),即变分自编码器,是一种深度生成模型,它结合了自编码器(Autoencoder)和变分推断(Variational Inference)的技术。其 在数据增强、艺术创作、图像生成、文本生成、语音生成等领域具有广泛应用(没错,StableDiffusion系列的模型)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【面试】网络安全常问150道面试题

1&#xff0c;拿到一个待测网站&#xff0c;你觉得应该先做什么&#xff1f; 信息收集&#xff1a; 服务器相关---&#xff1a;## 系统版本&#xff0c;真实IP&#xff0c;开放端口&#xff0c;使用的中间件 指纹信息---## 有无cdn加速&#xff0c;dns解析记录&#xff0c;是不…

【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; Linux网络编程 本篇博客我们来认识一下Linux中的一些基础开发工具 --- yum,vim,gcc/g。 &#x1f3e0; yum &#x1f3b8; 什么是yum 当用户想下载软…

物联网平台-分布式的设备接入与管理系统

乐吾乐物联网平台是由乐吾乐自主研发的一款分布式的设备接入与管理系统&#xff0c;专为满足不断增长的设备接入和数据处理需求而设计。平台集数据采集、分析、监控、告警和通知等功能于一体&#xff0c;并融合了乐吾乐大屏可视化和乐吾乐3D数字孪生技术&#xff0c;帮助用户快…

Day65_20250213图论part9_dijkstra(堆优化版)|Bellman_ford算法精讲

Day65_20250213图论part9_dijkstra(堆优化版)|Bellman_ford算法精讲 dijkstra(堆优化版) 题目 https://www.programmercarl.com/kamacoder/0047.%E5%8F%82%E4%BC%9Adijkstra%E5%A0%86.html 小明参加科学大会 思路 思路 朴素版的dijkstra&#xff0c;时间复杂度为O(n^2)&am…

动手实现自己的 JVM——Go!(ch01)

动手实现自己的 JVM——Go&#xff01;&#xff08;ch01&#xff09; 参考张秀宏老师的《自己动手写java虚拟机》 为什么需要命令行 在 JMV 中&#xff0c;要运行一个 Java 文件&#xff08;字节码&#xff09;&#xff0c;首先需要找到这个文件。那么&#xff0c;如何找到文件…

IIS部署netcore程序后,出现500.30错误解决方案之一

netcore程序部署到IIS后一直出现错误&#xff0c;访问首页后会跳转到登录页地址&#xff0c;然后看到如下错误 HTTP Error 500.30 - ANCM In-Process Start Failure Common solutions to this issue: The application failed to start The application started but then stopp…

将Docker容器打包成镜像提交

前言 Docker 是一个开源软件&#xff0c;也是一个开放平台&#xff0c;用于开发应用、交付&#xff08;shipping&#xff09;应用、运行应用。 Docker允许用户将基础设施&#xff08;Infrastructure&#xff09;中的应用单独分割出来&#xff0c;形成更小的颗粒&#xff08;容…

【设计模式】【行为型模式】命令模式(Command)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…

【DDD系列-3】DDD战术设计实践分享

DDD 战术设计概念​ ​ ​​ TMF2 中的概念&#xff1a;​ 领域能力&#xff1a;​ 扩展点&#xff1a;​ DDD 战术设计使用场景​ 复杂业务场景​ 复杂来源面对的需求方更加多样化。​ 1 相同场景不同垂直业务方的需求&#xff08;1688&#xff0c;淘宝&#xff0c;天…

基于单片机的仓库安防系统(论文+源码)

2.1 需求分析 仓库由于存有大量物品&#xff0c;因此对仓库的监控非常重要&#xff0c;目前仓库已经普遍装有安防系统&#xff0c;以保证仓库的安全&#xff0c;本次基于单片机的仓库安防系统设计&#xff0c;在功能上设计如下&#xff1a; 用户可通过IC卡进入仓库&#xff1…

使用 AutoMQ 和 Tinybird 分析用户网购行为

前言 在当前竞争激烈的市场环境中&#xff0c;数据分析已成为企业实现差异化和精准营销的关键。通过分析用户行为数据&#xff0c;企业能够深入了解用户的习惯、偏好和行为模式&#xff0c;从而更精准地定位目标市场&#xff0c;制定个性化营销策略&#xff0c;并提供定制化推…

小米 R3G 路由器刷机教程(Pandavan)

小米 R3G 路由器刷机教程&#xff08;Pandavan&#xff09; 一、前言 小米 R3G 路由器以其高性价比和稳定的性能备受用户青睐。然而&#xff0c;原厂固件的功能相对有限&#xff0c;难以满足高级用户的个性化需求。刷机不仅可以解锁路由器的潜能&#xff0c;还能通过第三方固…

Python数据可视化 - Matplotlib教程

文章目录 前言一、Matplotlib简介及安装1. Matplotlib简介2. 安装Matplotlib 二、Matplotlib Pyplot1. Pyplot介绍2. Pyplot中方法介绍2.1 创建和管理图形2.2 绘制图形2.3 设置图形属性2.4 保存和展示 三、Matplotlib绘图标记1. 介绍2. 基本用法3. 标记大小与颜色4. 标记样式列…

DeepSeek 与网络安全:AI 驱动的智能防御

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 随着人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;深度学习技术正渗透到多个领域&#xff0c;从医疗诊断到…

STM32——HAL库开发笔记19(串口中断接收实验)(参考来源:b站铁头山羊)

本实验&#xff0c;我们以中断的方式使得串口发送数据控制LED的闪烁速度&#xff0c;发送1&#xff0c;慢闪&#xff1b;发送2&#xff0c;速度正常&#xff1b;发送3&#xff0c;快闪。 一、电路连接图 二、实现思路&CubeMx配置 1、实现控制LED的闪烁速度 uint32_t bli…

开关电源实战(一)宽范围DC降压模块MP4560

系列文章目录 文章目录 系列文章目录MP4560MP4560 3.8V 至 55V 的宽输入范围可满足各种降压应用 MOSFET只有250mΩ 输出可调0.8V-52V SW:需要低VF肖特基二极管接地,而且要靠近引脚,高压侧开关的输出。 EN:输入使能,拉低到阈值以下关闭芯片,拉高或浮空启动 COMP:Compens…

网络IP地址冲突故障,快速解决方案!

由于网络被广泛运用&#xff0c;网络规模持续变大&#xff0c;对应的 IP 地址分配也越来越多&#xff0c;IP 地址冲突的情况日益严重&#xff0c;在一定程度上对网络的正常运行造成了影响。 要维护网络稳定、高效地运行&#xff0c;解决 IP 地址冲突的问题就成了网络管理里的一…

C++模拟实现二叉搜索树

目录 1.二叉搜索树概念 2.二叉搜索树的实现 2.1二叉搜索树的查找 2.2二叉树的插入 2.3二叉树的删除 3.所有代码 4.二叉搜索树的应用 5.二叉搜索树的性能分析 1.二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二…

3D渐变柱状图

代码说明 数据准备&#xff1a; 数据可以是任意形式的矩阵&#xff0c;例如 5x7 的矩阵。 行标签 (rowLabels) 和列标签 (colLabels) 是可选的&#xff0c;如果不需要可以删除相关部分。 颜色定义&#xff1a; 使用自定义的蓝黄渐变色 (map)。 如果需要其他颜色&#xff0c;…

完美解决 error:0308010C:digital envelope routines::unsupported

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 windows电脑完美解决办法&#xff1a;设置说明…