深度学习常用的激活函数

深度学习的核心思想是通过多层次的神经网络结构,逐步抽取和表示数据中的高级特征,从而实现对复杂数据模式的学习和识别。

神经网络结构: 深度学习使用多层次的神经网络,包括输入层、隐藏层和输出层。这些网络结构允许模型自动学习数据中的特征层次。
反向传播算法: 反向传播是一种优化算法,用于调整神经网络中连接权重,以使模型的预测结果更加准确。它通过计算损失函数对权重的梯度,并使用梯度信息来更新权重。
大规模数据和计算能力: 深度学习模型通常需要大量的数据来训练,以及强大的计算资源来进行复杂的计算。随着大数据和GPU等硬件的发展,深度学习在实际应用中取得了显著的进展。
预训练和迁移学习: 预训练模型可以在大规模数据上进行预训练,然后在特定任务上进行微调,从而加速模型训练和提高性能。这种迁移学习的方法在很多领域都取得了良好的效果。

激活函数是神经网络中的一个关键组件,它决定了神经元是否被激活(激活值大于某个阈值)并传递信息给下一层。激活函数引入非线性性质,使得神经网络能够表示更加复杂的函数关系。

1.Sigmoid函数(Logistic函数)

Sigmoid 函数将输入值压缩到 0 和 1 之间,曲线形状平滑,适合用于较浅的网络层或二元分类问题。然而,Sigmoid 函数在输入较大或较小的情况下容易出现梯度消失的问题,限制了其在深层网络中的应用。
在这里插入图片描述

Sigmoid函数的数学表达式为: f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1 其中 x x x 是输入值, e e e 是自然对数的底。这个函数将任意实数映射到一个范围在 0 到 1 之间的值,具有如下特点:

  1. x x x 趋近于正无穷大时, f ( x ) f(x) f(x) 趋近于 1;
  2. x x x 趋近于正无穷小时, f ( x ) f(x) f(x) 趋近于 0;
  3. x = 0 x=0 x=0 处, f ( x ) f(x) f(x) 的值为 0.5,即中间值。

Sigmoid函数也存在一些问题:

  1. 梯度消失: 在输入较大或较小的区域,Sigmoid函数的梯度接近于零,这会导致反向传播时梯度逐渐消失,影响深层网络的训练。
  2. 输出不是零中心: Sigmoid函数的输出在大部分情况下是正的,这可能导致在网络训练过程中的参数更新不均匀。
  3. 计算代价高: 计算Sigmoid函数的指数运算较为昂贵,可能影响网络的计算效率。

2.ReLU函数(Rectified Linear Unit)

ReLU函数在输入大于零时输出输入值本身,否则输出0。它简单且计算高效,在深度学习中广泛使用。但是,ReLU函数在负数区域输出为0,可能导致神经元“死亡”,即不再激活,从而影响网络的训练。
在这里插入图片描述

ReLU函数的数学表达式为: f ( x ) = max ⁡ ( 0 , x ) f(x)=\max(0,x) f(x)=max(0,x)其中, x x x 是输入值, f ( x ) f(x) f(x) 是激活后的输出值。具有如下特点:

  1. x x x 大于等于 0 时, f ( x ) = x f(x) = x f(x)=x,即输出等于输入;
  2. x x x 小于 0 时, f ( x ) = 0 f(x)=0 f(x)=0,即输出为零。

ReLU函数的优势包括:

  1. 非线性: 尽管ReLU在负数区域输出为零,但在正数区域仍然是非线性的,能够引入神经网络的非线性能力,使其能够表示更加复杂的函数关系。
  2. 计算高效: ReLU的计算非常简单,只需要比较输入值和零的大小,相对于其他一些激活函数,计算成本更低。
  3. 避免梯度消失: 在正数区域,ReLU函数的梯度为1,不会出现梯度消失问题,有助于在深层网络中传播梯度。

ReLU函数存在的一些问题:

  1. 死亡神经元问题: 当某个神经元在训练过程中始终输出为负数,其梯度为零,导致它的权重无法更新,即"死亡"。这种情况下,神经元将不再对网络的学习产生影响;
  2. 不是零中心: 当输入为负数时,ReLU的输出为零,这可能导致网络的激活分布不是零中心,可能对训练造成一些影响。

3.Leaky ReLU

Leaky ReLU是 ReLU 的变体,允许负数区域的斜率不为零,从而避免了死亡神经元问题。Leaky ReLU在负数区域保留一些激活,有助于减轻梯度消失问题。

Leaky ReLU函数的数学表达式为: f ( x ) = { x if  x ≥ 0 b x if  x ≤ 0 f(x) = \begin{cases} x &\text{if } x \geq 0 \\ bx &\text{if } x \leq 0 \end{cases} f(x)={xbxif x0if x0其中, x x x 是输入值,b 是一个小于 1 的超参数,通常在训练过程中固定为一个较小的正数,如0.01。具有如下特点:

  1. x x x 大于等于零时, f ( x ) = x f(x)=x f(x)=x,即输出等于输入,与普通的ReLU相同;
  2. x x x 小于零时, f ( x ) = a x f(x)=ax f(x)=ax,即引入一个小的斜率 b 来保证负数区域不完全为零。

Leaky ReLU的优势包括:

  1. 避免死亡神经元问题: 引入了一个小的斜率 aa,使得在负数区域仍然具有非零的输出,从而减轻了死亡神经元问题。
  2. 计算简单: Leaky ReLU的计算非常简单,与ReLU相似,只需要比较输入值和零的大小。

Leaky ReLU 存在的一些问题:

  1. 需要调参: 超参数 b 需要手动设定,虽然通常取较小的值(如0.01)能够在大多数情况下工作,但仍然需要调参。

  2. 不自适应: Leaky ReLU的斜率在负数区域是固定的,而PReLU则能够通过学习自适应地确定斜率

4.PReLU(Parametric ReLU)

PReLU是 Leaky ReLU 的一种扩展形式,它引入了一个可学习的参数,允许网络自动学习在负数区域的斜率,从而更好地适应不同的数据分布。

PReLU函数的数学表达式为: f ( x ) = { x if  x ≥ 0 a x if  x ≤ 0 f(x) = \begin{cases} x &\text{if } x \geq 0 \\ ax &\text{if } x \leq 0 \end{cases} f(x)={xaxif x0if x0其中, x x x 是输入值,a 是一个可学习的参数,通常在训练过程中通过反向传播进行更新。当 a 为 0 时,PReLU退化为普通的ReLU函数。当 a 大于 0 时,PReLU在负数区域引入了一个斜率,使得负数值也能够有非零的输出,从而避免死亡神经元问题。

PReLU函数的优势包括:

  1. 自适应斜率: PReLU通过学习参数 a 来自适应地确定负数区域的斜率,可以根据数据的分布和任务的需求来调整激活函数的形状。
  2. 减轻死亡神经元问题: 通过在负数区域引入斜率,PReLU有助于激活那些在训练过程中可能变得非激活的神经元,从而减轻了死亡神经元问题。
  3. 提高模型表达能力: PReLU的自适应斜率使得神经网络能够学习更加复杂的函数关系,提高了模型的表达能力。

PReLU函数存在的一些问题:

  • 需要更多的参数进行学习,可能会增加模型的复杂度和训练时间。

Leaky ReLU 和 PReLU 都在负数区域引入了斜率,从而在一定程度上改进了ReLU的问题。Leaky ReLU的斜率通常是固定的超参数,而PReLU则通过学习参数来自适应地确定斜率。选择使用哪种激活函数取决于具体问题的需求和实验结果。

5.Tanh函数(双曲正切函数)

Tanh 函数将输入值映射到 -1 和 1 之间,类似于Sigmoid函数,但范围更大。它在某些情况下能够更好地处理输入数据的对称性,但也会存在梯度消失问题。
在这里插入图片描述

Tanh函数的数学表达式为: f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^x - e^{-x}}{e^{x}+e^{-x}} f(x)=ex+exexex其中, x x x 是输入值, e e e 是自然对数的底。Tanh函数将任意实数映射到范围在 -1 到 1 之间的值,具有如下特点:

  1. x x x 趋近于正无穷大时, f ( x ) f(x) f(x) 趋近于 1;
  2. x x x 趋近于正无穷小时, f ( x ) f(x) f(x) 趋近于 -1;
  3. x = 0 x=0 x=0 处, f ( x ) f(x) f(x) 的值为 0。

Tanh 函数的优势包括:

  1. 零中心性: Tanh函数的输出在大部分情况下是零中心的,相对于ReLU等激活函数,更有助于训练稳定性;
  2. 非线性: Tanh函数是非线性的,能够引入神经网络的非线性能力,使其能够表示更加复杂的函数关系。

Tanh函数存在的一些问题:

  • 梯度消失: 在输入较大或较小的区域,Tanh函数的梯度接近于零,可能导致梯度消失问题,特别是在深层网络中。

6. Swish函数

Swish 函数是一种类似于 ReLU 的激活函数,它将输入值与 Sigmoid 函数的乘积作为输出。
Swish函数的数学表达式如下: f ( x ) = x ⋅ σ ( β x ) f(x)=x\cdot \sigma(\beta x) f(x)=xσ(βx)其中, x x x 是输入值, σ σ σ 是Sigmoid函数, β β β 是一个可调参数。Swish函数通过在输入值上引入Sigmoid函数,实现了在正数区域保留线性特性,同时在负数区域引入非线性的特性。

Swish函数的特点包括:

  1. 非线性性质: 在负数区域,Swish 函数的输出呈现非线性特性,有助于引入神经网络的非线性能力,使其能够表示更加复杂的函数关系。
  2. 自动缩放: 当输入为较大的正数时,Swish 函数趋近于线性,不会出现梯度爆炸问题。这有助于模型的稳定性。
  3. 适用范围广: Swish 函数在一些任务中表现出色,尤其在较大的模型中(如深度神经网络)可能表现良好。

Swish函数存在的一些问题:

  1. 计算开销: Swish函数的计算相对于ReLU等简单激活函数更复杂,需要涉及Sigmoid函数的计算。
  2. 不适用于所有情况: 尽管在某些情况下表现出色,Swish函数并不一定在所有任务和网络结构中都能取得最佳性能。

7. ELU(Exponential Linear Unit)

ELU是一种具有平滑非线性特性的激活函数。在正数区域,ELU函数与ReLU相似;而在负数区域,它的曲线更平滑,有助于减轻梯度消失问题。此外,ELU在负数区域的输出不仅不是0,还具有一个负值,有助于缓解神经元死亡问题。
ELU的数学表达式为: f ( x ) = { x if  x ≥ 0 α ( exp ⁡ ( x ) − 1 ) if  x ≤ 0 f(x) = \begin{cases} x &\text{if } x \geq 0 \\ \alpha(\exp (x)-1) &\text{if } x \leq 0 \end{cases} f(x)={xα(exp(x)1)if x0if x0
其中, x x x 是输入值, α α α 是一个可调参数,通常取一个较大的正数,如1。ELU函数通过在负数区域引入指数函数,实现了在负数区域具有非线性的平滑特性。

ELU函数的优势有:

  1. 平滑非线性性质: 在负数区域,ELU函数的输出是平滑的非线性特性,相对于ReLU等函数,能够更好地拟合复杂的函数关系。
  2. 避免死亡神经元问题: ELU在负数区域不会输出零,因此能够避免死亡神经元问题。
  3. 零中心性: ELU函数在大部分情况下是零中心的,有助于训练稳定性。
  4. 自适应斜率: 通过调整参数 α α α 的值,可以自适应地调整负数区域的斜率,使得ELU能够适应不同的数据分布和任务需求。

ELU 存在的一些问题:

  • 计算开销: ELU函数的计算相对于ReLU等简单激活函数较为复杂,涉及指数函数的计算。
  • 参数调整: 参数 α α α 的选择可能需要进行调参,不同的数据和任务可能需要不同的参数值。

8.SELU(Scaled Exponential Linear Unit)

SELU是ELU的扩展,它在一定条件下能够使得网络在前向传播时自我规范化。这意味着在使用SELU激活函数时,网络的每一层的输出的均值和方差能够保持稳定。这一性质有助于训练更深的网络,而无需过多的批标准化等技巧。

SELU函数的数学表达式如下: f ( x ) = λ { x if  x ≥ 0 β ( exp ⁡ ( x ) − 1 ) if  x ≤ 0 f(x) =\lambda \begin{cases} x &\text{if } x \geq 0 \\ \beta (\exp (x)-1) &\text{if } x \leq 0 \end{cases} f(x)=λ{xβ(exp(x)1)if x0if x0其中, x x x 是输入值, β \beta β 是一个超参数(通常设置为1.6733), λ λ λ 是一个超参数(通常设置为1.0507)。SELU函数通过引入尺度参数 λ λ λ,使得输出值在正数区域逐渐缩放,从而实现网络自我规范化。

SELU函数的特点和优势包括:

  1. 自我规范化: 在一定条件下,使用SELU激活函数可以使得每一层的输出的均值和方差保持稳定,从而减轻梯度爆炸和梯度消失问题。
  2. 允许深层网络: 由于自我规范化的特性,SELU函数允许构建更深的神经网络,无需使用复杂的正则化技巧,如批标准化。
  3. 默认初始化: 在一些特定条件下,SELU激活函数使用零均值和单位方差的初始化可以保持自我规范化的特性。

SELU函数 存在的问题:

  • 不适用于所有情况: SELU函数在某些情况下表现出色,但并不一定在所有任务和网络结构中都能取得最佳性能。
  • 需要满足条件: 自我规范化的特性需要满足一定的条件,包括输入数据的分布和权重的初始化方式等。

9.Maxout

Maxout函数是一种通用的激活函数,它不是像ReLU或Sigmoid那样固定的形式,而是一种更为灵活的结构。Maxout函数的主要思想是让每个神经元学习多个线性函数的最大值,从而能够逼近更加复杂的非线性函数。Maxout可以视为ReLU和线性激活函数的泛化,它可以学习各种形状的非线性函数。然而,Maxout的参数量较大,可能需要更多的参数调整。

Maxout函数的数学表达式如下: f ( x ) = max ⁡ ( w 1 T x + b 1 , w 2 T x + b 2 ) f(x) = \max(w_1^Tx+b_1,w_2^Tx+b_2) f(x)=max(w1Tx+b1,w2Tx+b2)其中, x x x 是输入向量, w 1 , w 2 w_1,w_2 w1,w2​ 是权重向量, b 1 , b 2 b_1,b_2 b1,b2 是偏置。。Maxout函数中有两个分支,每个分支都由一个线性变换 w T x + b w^Tx+b wTx+b 组成,然后选择两者中的最大值作为输出。Maxout函数可以扩展到具有更多分支的情况。

Maxout函数的特点和优势包括:

  1. 灵活性: Maxout函数允许每个神经元学习多个线性函数的最大值,因此在逼近各种不同形状的非线性函数时具有灵活性。
  2. 适应性: 每个分支都可以学习数据的不同特征,从而在不同的输入区域自适应地选择最佳的线性函数。
  3. 抗过拟合: Maxout网络通常具有更多的参数,这有助于防止过拟合,尤其是在训练数据有限的情况下。

Maxout 存在的一些问题:

  • 参数量大: Maxout网络的参数量较大,可能需要更多的训练数据和计算资源来训练。
  • 计算成本: Maxout函数的计算成本较高,因为每个神经元有多个分支,每个分支都需要进行线性变换和比较操作。
  • 复杂性: Maxout网络的结构较为复杂,可能需要更多的调参和实验来找到最佳的网络结构。

10.Softmax函数

Softmax函数常用于多分类问题的输出层,将一组原始分数(也称为“logits”)转化为表示各类别概率的概率分布。Softmax函数能够将任意实数值映射到一个范围在0到1之间,并且保证所有类别的概率之和为1。

Softmax函数的数学表达式如下: softmax ( x i ) = e x i ∑ j = 1 N e x j \text{softmax}{(x_i)}=\frac{e^{x_{i}}}{\sum_{j=1}^{N}e^{x_j}} softmax(xi)=j=1Nexjexi其中, x i x_i xi 是原始分数中的第 i i i 个元素, N N N 是类别的数量, e e e 是自然对数的底。Softmax函数将每个原始分数进行指数化,并将指数化后的值除以所有指数化值的和,以获得每个类别的概率。

Softmax函数的特点和应用包括:

  1. 概率分布: Softmax函数的输出是一个概率分布,对于多类别分类问题,每个类别的输出表示为属于该类别的概率。
  2. 归一化: Softmax函数将原始分数进行指数化和归一化,使得网络的输出具有一定的可解释性和意义。
  3. 多类别分类: Softmax函数通常用于多类别分类问题,例如图像识别、文本分类等。

Softmax函数存在的一些问题:

  • 数值稳定性: 当原始分数较大时,指数运算可能导致数值溢出问题。为了提高数值稳定性,通常会在计算Softmax时减去分数中的最大值。
  • 互斥假设: Softmax函数假设每个样本只属于一个类别,不适用于多标签分类问题。
  • 类别数限制: Softmax函数在处理大量类别时可能会引入计算和存储的问题,特别是在输出层的类别数量较大时。

11.GELU

GELU 在正数区域类似于 ReLU,在负数区域则具有平滑的 S 形曲线。GELU 在一些任务上表现出色,并且相对简单,没有额外的超参数。结合了线性和非线性特性,同时在计算效率和性能之间取得了一定的平衡。GELU函数的设计旨在尝试克服ReLU等函数的一些问题,如梯度饱和和死亡神经元问题。

GELU函数的数学表达式如下: GELU ( x ) = 1 2 x ( 1 + tanh ⁡ ( 2 π ( x + 0.044715 x 3 ) ) ) \text{GELU}(x)=\frac{1}{2}x(1+\tanh (\sqrt{\frac{2}{\pi}}(x+0.044715x^{3}))) GELU(x)=21x(1+tanh(π2 (x+0.044715x3)))其中, x x x 是输入值, ⁡ t a n h ⁡tanh tanh 是双曲正切函数。GELU函数的形式结合了线性函数和双曲正切函数,使得在输入的正负两个区域都有非线性的输出。
在这里插入图片描述

GELU函数的特点和优势包括:

  1. 平滑非线性性质: GELU函数在整个输入范围内都有非线性的输出,相对于ReLU等函数,能够更好地拟合复杂的函数关系。
  2. 减轻梯度饱和问题: GELU函数在输入为正数区域具有线性的输出,能够减轻梯度饱和问题,有助于提高训练效率。
  3. 避免死亡神经元问题: GELU函数在负数区域也具有非零输出,能够避免死亡神经元问题。
  4. 计算效率: 相对于一些复杂的激活函数,GELU的计算相对较快,特别是与Sigmoid和双曲正切等函数相比。

GELU函数存在的问题:

  • 可能在某些情况下不如其他激活函数表现出色,具体效果可能会因问题的性质和数据分布而有所不同。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一、Webpack相关(包括webpack-dev-server用以热更新和html-webpack-plugin)

概念与功能: webpack是前端项目工程化的具体解决方案。它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大的功能。 快速上手:隔行变色 -S实际是--save的简写,表示安装的第三方…

以太网DHCP协议(十)

目录 一、工作原理 二、DHCP报文 2.1 DHCP报文类型 2.2 DHCP报文格式 当网络内部的主机设备数量过多是,IP地址的手动设置是一件非常繁琐的事情。为了实现自动设置IP地址、统一管理IP地址分配,TCPIP协议栈中引入了DHCP协议。 一、工作原理 使用DHCP之…

Java 并发容器和框架Fork/Join详解

目 录 一 使用场景 1 大规模数据处理 2 复杂计算 3 并行搜索 4 并行排序 二 Fork/Join框架介绍 三 Fork/Join框架模块 四 Fork/Join框架核心思想 1分治思想(Divide-and-Conquer) 2 work-stealing(工作窃取)算法 五 Fork/Join框架执行流程 1 实现原理: 2…

消息队列(3) -封装数据库的操作

前言 上一篇博客我们写了, 关于交换机, 队列,绑定, 写入数据库的一些建库建表的操作 这一篇博客中,我们将建库建表操作,封装一下实现层一个类来供上层服务的调用 , 并在写完该类之后, 测试代码是否完整 实现封装 在写完上述的接口类 与 xml 后, 我们想要 创建一个类 ,来调用…

智慧城市规划新引擎:探秘数字孪生中的二维与三维GIS技术差异

智慧城市作为人类社会发展的新阶段,正日益引领着我们迈向数字化未来的时代。在智慧城市的建设过程中,地理信息系统(GIS)扮演着举足轻重的角色。而在GIS的发展中,二维和三维GIS作为两大核心技术,在城市规划与…

thinkphp8.0多应用模式下提示控制器不存在

thinkphp 8.0 开启多应用模式 1、按照官方文档说明 ,已经安装了 think-multi-app composer require topthink/think-multi-app 2、控制器的命名空间也没写错。 3、访问路径与目录名、控制器、方法名一样,访问地址是没错的。 4、网上有说,在…

机器学习深度学习——序列模型(NLP启动!)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——卷积神经网络(LeNet) 📚订阅专栏:机器学习&&深度…

Android 网络协议与网络编程

一、TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联 协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP 协议组成。协议采用了4层的层级结构。…

Debian安装和使用Elasticsearch 8.9

命令行通过 .deb 包安装 Elasticsearch 创建一个新用户 adduser elastic --> rust # 添加sudo权限 # https://phoenixnap.com/kb/how-to-create-sudo-user-on-ubuntu usermod -aG sudo elastic groups elastic下载Elasticsearch v8.9.0 Debian 包 https://www.elastic.co/…

【PCB专题】Allegro中如何自动查找并删除不使用的规则

在Allegro软件使用中,我们经常是从上一个版本修改而来的。那么就会遇到有些多余规则没有使用的情况,怎么能够知道哪些规则没有使用并删除呢? 如下所示在Electrical中的All Constraints下存在SDIO规则和WIFI_SDIO规则。这两个规则是重复的,只是名称不同而已。 在规则的使…

python调用pytorch的clip模型时报错

使用python调用pytorch中的clip模型时报错:AttributeError: partially initialized module ‘clip’ has no attribute ‘load’ (most likely due to a circular import) 目录 现象解决方案一、查看项目中是否有为clip名的文件二、查看clip是否安装成功 现象 clip…

防火墙第二次作业

一、什么是防火墙? 百度给出个一个定义:防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。 通俗的来讲&#…

TestDataLake在提升测试效能方面的实践

目录 1.背景 2.预期目标 3.系统设计和实现 3.1系统功能组成 3.2 数据智能生成 3.3 接口遍历测试 4.应用效果和收益 5.后续规划 1.背景 随着软件开发的迅速发展,测试数据管理变得越来越复杂。手动创建测试数据需要耗费大量时间和精力,同时容易出…

【Docker】docker镜像+nginx部署vue项目:

文章目录 一、文档:二、打包vue项目:三、配置nginx:四、配置Dockerfile:五、构建镜像:六、运行容器:七、最终效果: 一、文档: 【1】菜鸟教程:https://www.runoob.com/do…

【云原生】深入掌握k8s中Pod和生命周期

个人主页:征服bug-CSDN博客 kubernetes专栏:kubernetes_征服bug的博客-CSDN博客 目录 1 什么是 Pod 2 Pod 基本操作 3 Pod 运行多个容器 4 Pod 的 Labels(标签) 5 Pod 的生命周期 1 什么是 Pod 摘取官网: Pod | Kubernetes 1.1 简介 Pod 是可以在 …

linux Ubuntu 更新镜像源、安装sudo、nvtop、tmux

1.更换镜像源 vi ~/.pip/pip.conf在打开的文件中输入: pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple按下:wq保存并退出。 2.安装nvtop 如果输入指令apt install nvtop报错: E: Unable to locate package nvtop 需要更新一下apt&a…

mysql8配置binlog日志skip-log-bin,开启、关闭binlog,清理binlog日志文件

1.概要说明 binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架…

【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现完整流程

【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现 一、概述二、安装1、拉取镜像2、创建数据库3、创建容器并运行3、查看容器和日志4、打开网页 127.0.0.1:9051/xxl-job-admin/ 三、实现注册测试1、创建一个SpringBoot项目、添加依赖。2、…

【C语言进阶】数据的存储----整型篇

​ 🍁 博客主页:江池俊的博客 💫收录专栏:C语言—探索高效编程的基石 💻 其他专栏:数据结构探索 ​💡代码仓库:江池俊的代码仓库 🎪 社区:GeekHub 🍁 如果觉得…

nuxt脚手架创建项目

在初始化时遇到一个依赖找不到的问题,记录一下,如有遇到同样问题的小伙伴,希望能给你们一点指引。 从安装脚手架开始,首先 一:安装nuxt脚手架 1. C盘全局安装: npm i -g create-nuxt-app 安装后可creat…