在这里插入图片描述

这篇论文由UCB的研究者提出,旨在研究transformer中新的正则化方法。

自然语言处理NLP中使用的神经网络模型的标准归一化方法是层归一化LN。与计算机视觉中广泛采用的批处理规范化BN不同。 LN在NLP中的首选原因主要是由于观察到使用BN会导致NLP任务的性能显着下降。本文对NLP transformer模型进行了系统研究,以了解为什么BN与LN相比性能较差。在整个训练过程中,整个批次维度上的NLP数据统计量都显示出较大的波动。如果实施BN,则会导致不稳定。为了解决这个问题,本文提出功率归一化(PN),它可以通过**(i)放松BN中的零均值归一化,(ii)结合运行的二次平均值而不是按批统计来稳定波动**,以及**(iii)使用近似反向传播,将运行统计信息并入正向传递**。从理论上讲,与BN相比,PN导致损失的Lipschitz常数更小。此外证明了近似的反向传播方案会导致有界梯度。在一系列NLP任务上对transformer的PN进行了测试,结果表明它显着优于LN和BN。特别是,在IWSLT14 / WMT14和5.6 / 3.0上,PN的性能优于LN 0.4 / 0.6 BLEU PTB / WikiText-103上的PPL。

注:所有关于引理的证明请见论文

1.引言

正则化已成为神经网络体系结构中用于各种机器学习任务的关键组件之一,尤其是在计算机视觉(CV)和自然语言处理(NLP)中。但是,目前在CV和NLP中使用的正则化形式不同。批归一化(BN)在CV中被广泛采用,但是当在NLP中使用时,它会导致明显的性能下降。取而代之的是,层归一化(LN)是NLP中使用的标准归一化方案。最近所有NLP体系结构(包括Transformer)已将LN代替BN作为其默认标准化方案。尽管如此,尚未阐明BN导致NLP失败的原因,也没有提出替代LN的更好方法。

这项工作对NLP的BN相关挑战进行了系统的研究,并在此基础上提出了功率归一化(PN),这是一种明显优于LN的新颖归一化方法。贡献如下:

1.NLP数据与CV数据的批处理统计数据存在明显差异。特别是**NLP数据的批处理统计信息在整个训练过程中差异很大。这种变化也存在于相应的梯度中。**相比之下,CV数据的方差小几个数量级。有关CV和NLP中BN的比较,请参见图2和3。

2.为了减少批次统计数据的变化,通过放宽零均值归一化来修改典型的BN,并用二次均值代替方差。将此方案称为PN-V。从理论上证明PN-V保留了BN中的一阶平滑性。参见引理2。

3.对二次均值使用运行统计数据可显着改善性能,与BN相比,IWSLT14 / WMT14上的1.5EU / BLEU和PTB / WikiText-103上的7.7 / 3.4 PPL。参见表1和2。将此方案称为PN。使用运行统计信息需要更正BN中的典型反向传播方案。作为替代方案提出一种近似反向传播来捕获运行统计数据。从理论上证明,这种近似的反向传播会导致有界梯度,这是收敛的必要条件;见定理4。

4.测试显示PN与LN相比,在机器翻译和语言建模任务方面也提高了性能。特别是,PN优于LN 0.4 / 0.6 BLEU 在IWSLT14 / WMT14上使用,在PTB / WikiText-103上使用5.6 / 3.0 PPL。与LN相比,PN的改进不会改变任何超参数。
5.通过计算所得嵌入层的奇异值分解来分析PN和LN的行为,并表明PN产生条件更好的嵌入层;参见图6。此外显示PN对小批量统计数据具有鲁棒性,并且与LN相比,它仍然可以实现更高的性能。参见图5。

[

​ 图 1

2.Batch Normalization

符号 将归一化层的输入表示为XRB×dX \in R^{B\times d},其中d是嵌入/特征尺寸,B是批处理尺寸。 将L表示为神经网络的损失函数。 矩阵的第i行(列)(例如X)用Xi,:XiX_{i ,:}(X:,i)表示。 将矩阵的第i行写为小写形式,即xi=Xi,;x_i =X_{i,;}。 对于向量y,yi表示y中的第i个元素。

在没有其他说明的情况下:(i)对于两个向量xRdx \in R^{d}yRdy \in R^d,将xy表示为按元素乘积,将x+y表示为按元素求和,而将<xy><x,y>表示为内积; (ii)对于向量yRdy \in R^{d}和矩阵xRB×dx \in R^{B\times d},我们将yXy\odot X表示为[y1X1...ydAd][y_1X_{:,1},...,y_dA_{:,d}]并将y+Xy+X表示为[y+X1:...;yXB][y+X_{1,:}; ...; yX_{B,:}]; (iii)对于向量yRdy\in R^dy>Cy>C表示y的每个项都大于常数C,即所有i的yi>Cy_i>C

2.1 BN的形式化

将X沿批次的平均值(方差)表示为µBRdµ_B\in R^d(batch dimension如图1所示。)BN层首先强制执行零均值和单位方差,然后通过将结果缩放γ,βRdγ, β\in R^d来执行仿射变换。,如算法1所示。

在这里插入图片描述

​ 算法 1

BN的前向传播(FP)如下执行。 用零均值和单位方差表示BN的中间结果为X:
在这里插入图片描述

最终输出的BN,Y是应用于X的仿射变换:

在这里插入图片描述

然后可以得出相应的后向传播(BP)如下。 假设已知L相对于Y的导数,LY\frac{∂L}{∂Y}是已知的。 然后关于输入的导数可以计算为:

在这里插入图片描述

分别将uBu_BσB2\sigma^2_B定义为gug_ugσ2g_{\sigma{^2}}

总之,BN中有四个批处理统计信息,FP中有两个批处理统计信息,BP中有两个批处理统计信息。 训练的稳定性取决于这四个参数。 实际上,过分地针对transformer实施BN会导致性能下降。 例如,在IWSLT14和WMT14上,与带有LN的transformer(TransformerLN)相比,使用带有BN的transformer(表示为TransformerBN)导致BLEU得分低1.1和1.4; 参见表1。

这是显着的性能下降,源于与上述四个批处理统计信息相关的不稳定性。为了对此进行分析,使用Cifar-10上的ResNet20和IWSLT14上的TransformerBN的标准设置(分别使用128的标准批量和4K的token)研究了批次统计信息。在第一个实验中探究批处理统计信息µB/σBµ_B /σ_B和相应的BN运行统计信息µ /σ之间的波动。图2中显示了Cifar-10上ResNet20的第一个BN层和IWSLT14上的TransformerBN的第一个BN层。这里,y轴显示了批处理统计信息µBσB(µ_B,σ_B)和运行统计信息(µ,σ)之间的平均欧几里得距离。x轴是不同的训练时期,将平均欧几里德距离定义为
dist(uB,u)=1duBudist(u_B,u)=\frac{1}{d}||u_B-u||

最初的观察结果是,与Cifar-10上的ResNet20相比,TransformerBN显示的批次统计信息与运行统计信息之间的距离明显更大,后者的波动几乎为零。重要的是,整个训练过程中σBσ_B和σ之间的距离会显着增加,但存在极端的异常值。在推断过程中必须使用运行统计信息。但是,如此大的波动将导致测试数据的统计数据与BN运行统计数据之间巨大的不一致性。

第二个来自探究gµg_µgσ2g_{σ^2}的范数的观察在等式3中定义。 有助于输入的梯度反向传播。这些结果显示在图3中,报告了ResNet20和TransformerBN这两个参数的范数。对于TransformerBN,可以看到非常大的异常值,这些异常值在训练过程中仍然存在。这与ResNet20相反,后者随着训练的进行离群值消失
在这里插入图片描述

​ 图 2

3.Power Normalization

基于经验观察提出了功率归一化(PN),可以有效解决BN的性能下降。这是通过对BN合并以下两个更改来实现的。首先,不是强制执行单位方差,而是对激活执行单位二次均值。原因是发现由于均值的较大差异,在BN中强制执行零均值和单位方差是有害的,如前部分所述。与均值/方差不同,单位二次均值对于transformer而言明显更稳定。其次结合了信号的二次方的运行统计信息,并且结合了近似反向传播方法来计算相应的梯度。即使使用相同的训练超参数,这两个变化的组合也导致归一化更有效,其结果超过LN。下面讨论这两个组件。

3.1 Relaxing Zero-Mean and Enforcing Quadratic Mean

描述PN中的第一个修改。 如图2和3所示,µBµ_Bgµg_µ表现出大量的大异常值,这导致训练与推理统计之间的不一致。 首先通过放松零均值归一化来解决这个问题,使用信号的二次均值而不是方差。 二次均值显示的波动较小,如图4所示。将此归一化(即无零均值和单位二次均值实施)称为PN-V,定义如下。

在这里插入图片描述

​ 图3,4

**定义1 (PN-V)**定义批次的二次均值为ϕB2=1Bi=1Bxi2\phi_{B}^2=\frac{1}{B}\sum_{i=1}^{B}x_{i}^2。更进一步,定义X为由ϕB\phi_B缩放的信号:

在这里插入图片描述

然后PN-V的输出定义为:

在这里插入图片描述

其中γRd\gamma \in R^dβRd\beta \in R^d是PN-V的两个参数(与在BN中使用的仿射变换一样)。

注意这里使用与公式2中的输出相同的符号Y。

PN-V的相应BP如下:
在这里插入图片描述

其中,gϕ2g_{\phi ^2}是由属性ϕB2\phi_{B^2}所标记的梯度。注意,与BN相比,在这里的FP和BP中只出现了两个批次统计量:gϕ2g_{\phi ^2}ϕB2\phi_{B^2}

这种修改消除了对应于BN中的µBµ_BσBσ_B的两个不稳定因素(gµg_µ,等式3中的gσ2g_{σ^2})。如表1中针对IWSLT14和WMT14所述,这种修改还可以显着提高性能。通过用PN-V(表示为TransformerPN-V)直接替换BN,BLEU分数在IWSLT14上从34.4上升到35.4,在WMT14上从28.1上升到28.5。这些改进对于这两项任务非常重要。

如前所述,与σBσ_B相比,ψBψ_B的变化量小几个数量级。如图4所示,其中报告了σ,dist(σB2,σ2)dist(σ^2_B,\sigma^2)的运行统计之间的距离。类似地,在BP期间计算gσ2g_{σ^2}gψ2g_{ψ^2}的范数,在图4显示了整个训练过程。可以清楚地看到,在BP期间,与gσ2g_{σ^2}相比,gψ2g_{ψ^2}的范数表现出更少的离群值。

在(Santurkar et al 2018)中,作者提供了理论结果,表明在DNN中使用BN可以导致较小的Lipschitz常数损失。

Santurkar, S., Tsipras, D., Ilyas, A., and Madry, A. How
does batch normalization help optimization? In NeurIPS,
2018.

可以证明,PN-V也表现出类似的行为。将未经归一化的L表示为NN的损失。 (Santurkar et al 2018)表明Lx\frac{∂L}{∂x}(带有BN)的范数小于Lbarx\frac{∂Lbar}{∂x}的范数。 这里表明在相同的假设下,PN-V可以达到与BN相同的结果。 有关详细信息,请参见论文附录C,包括假设9的陈述。

引理 2 (PN-V对Lipschitz常数的影响损失)。 根据假设9,我们有

在这里插入图片描述

3.2 Running Statistics in Training

讨论PN中的第二种修改。 首先要注意的是,尽管TransformerPN-V的性能优于TransformerBN,但它仍然无法与LN的性能匹敌。 如图4所示,这可能与ψBψ_B中存在大量异常值有关。解决此问题的方法是将运行统计信息用于二次均值(表示为ψ2),而不是使用每批统计信息,因为后者在每次迭代中都会发生变化。 但是使用运行统计信息需要修改反向传播,将在下面介绍。

定义3 (PN) 用(t)* ^{(t)}表示第t次迭代的输入/统计,例如X(t)X^{(t)}是第t次迭代的输入数据。 在正向传播中,以下公式用于计算:
在这里插入图片描述

​ 算法2 PN

在这里插入图片描述

在这里,0<α<10<\alpha<1是前向传播的移动平均系数,而ψBψ_B是当前批次的统计量。 由于前向传播会生成运行统计信息,因此无法精确计算后向传播,即,精确的梯度计算需要追溯到第一次迭代。 在这里建议在反向传播中使用以下近似梯度:

在这里插入图片描述

这种反向传播实质上是通过计算损失函数的梯度来使用运行统计数据。 而不是使用计算上不可行的方法直接计算梯度的当前批次的二次平均值的运行统计信息。 重要的是,此公式会导致收敛所需的有界渐变,如下所示。

在这里插入图片描述

定理 4 (L w.r.t. X的梯度以PN为界)对于X的任何基准点(即Xi:X_{i,:}),由公式11计算出的梯度以常数为界。此外,Xi,:X_{i ,:}的梯度也有界,如给定等式 12

4 实验

4.1实验设置

将本文的PN方法与LN和BN进行比较,以完成各种序列建模任务:神经机器翻译(MT);和语言建模(LM)。使用fairseq-py来实现MT的代码,并针对LM任务来实现(Ma et al 2019)。为了公平起见,直接用BN替换了transformer(TransformerLN)中的LN(TransformerBN)或PN(TransformerPN),而无需更改每个正则化层的位置或更改训练超参数。

Ma, X., Zhang, P., Zhang, S., Duan, N., Hou, Y., Zhou,
M., and Song, D. A tensorized transformer for language
modeling. In NeurIPS, 2019.

对于所有实验,使用(Wang等人,2019)中的预正则化设置,其中正则化层位于多头注意力模块和逐点前馈网络模块之前。相对于常见的后归一化转换器,通常将学习率提高2.0倍。下面讨论任务的特定设置。

Wang, Q., Li, B., Xiao, T., Zhu, J., Li, C., Wong, D. F.,
and Chao, L. S. Learning deep transformer models for
machine translation. In ACL, 2019.

Neural Machine Translation 在两个公共数据集上评估本文的方法:IWSLT14德语到英语(De-En)和WMT14英语到德语(En-De)数据集。遵循(Ott,2018)中报告的设置。对WMT14使用大型transformer架构(450万个句子对),对IWSLT14使用小型架构transformer(16万个句子对)。为了进行推断,将最后10个检查点平均处理,然后将WMT / IWSLT的长度损失设为0.6 / 1.0,并将波束大小设为4/5,如下所示)。所有其他超参数(学习率,dropout,weight decay,预热步骤等)的设置与文献中针对LN的报告相同(即,对BN / PN使用相同的超参数)。

Ott, M., Edunov, S., Grangier, D., and Auli, M. Scaling neu-
ral machine translation. In Machine Translation, 2018.

Language Modeling 在PTB和Wikitext-103上进行实验,它们分别包含0.93M和100M tokens。对PTB使用三层张量transformer核心和六层张量transformer随后是Wikitext-103的core-1。此外将多线性注意力机制与masking一起应用,并报告最终的测试集困惑度(PPL)。

4.2 实验结果

Neural Machine Translation 使用BLEU作为MT的评估指标。按照标准惯例分别针对WMT14 En-De和IWSLT14 De-En测量标记化的区分大小写的BLEU和不区分大小写的BLEU。为了公平起见,不包括其他外部数据集。表1中的所有transformer都使用六个编码器层和六个解码器层。

在这里插入图片描述

​ 表 1

结果报告在表1中。用不同类型的标准化报告结果。注意使用BN(34.4 / 28.1)时,与BLN(35.5 / 29.5)相比,BLEU分数显着下降。使用PN-V代替BN有助于缩小此差距,但LN仍然胜过。但是,与PN对应的结果比LN的结果超出0.4 / 0.6点,这对于这些任务。与DS-Init和Fixup-Init等其他并行工作相比,TransformerPN的改进仍然很重要。

在这里插入图片描述

​ 表 2

Language Modeling 在这里,观察到使用BN会导致性能显着下降,对于PTB / WikiText-103数据集,测试PPL增加7.5 / 6.3以上(达到60.7 / 27.2,而不是53.2 / 20.9)。 但是,当合并PN归一化后,就可以针对这两个任务(对于这些模型大小且无需对其他数据集进行任何预训练)获得最新的结果。 特别是与LN相比,PN导致测试PPL降低5.6 / 3点。 重要的是使用PN可以达到更好的效果.

4.3 分析

The Effect of Batch Size for Different Normalization 为了更好地理解提出的方法PN和PN-V的效果,更改了用于收集BN,LN和PN中的统计信息的批次大小。为此将总批大小保持为4K tokens不变,并且将用于收集统计信息的最小批大小从512更改为4K。重要的是将批总大小保持恒定在4K,并对较小的小批量使用梯度累积。对于512的mini批处理,使用八个梯度累加。结果报告在图5中。可以观察到BN在不同的mini批次中表现不佳且异常。在放松了BN的零均值归一化并将方差估计替换为二次均值之后,PN-V与LN在4Kmini批处理中的性能相匹配,并且始终优于BN。但是它的表现不及LN。相反,在不同的小批量设置下,PN始终能获得更高的结果。

在这里插入图片描述

​ 图5

Representation Power of learned Embedding 为了进一步研究PN的性能增益,计算了如(Gao et al 2019)所提出的,嵌入层的奇异值分布可以用作度量嵌入层的表示能力的代理。有人认为具有快速衰减的奇异值会导致将嵌入的表示能力限制在较小的子空间中。如果是这种情况,则最好具有更均匀的奇异值分布(Wang 2020)。计算LN和PN的词嵌入矩阵的奇异值,在图6中报告结果。与PN对应的奇异值的衰减比LN慢。对此的一种解释可能是PN通过标准化批次中的所有tokens来提供帮助。这会导致嵌入的分布更加均匀。这可能说明了PN胜过LN的原因之一。

Gao, J., He, D., Tan, X., Qin, T., Wang, L., and Liu, T.
Representation degeneration problem in training natural
language generation models. In ICLR, 2019.
Wang, L., Huang, J., Huang, K., Hu, Z., Wang, G., and Gu,
Q. Improving neural language generation with spectrum
control. In ICLR, 2020.

在这里插入图片描述

​ 图 6

5 结论

这项工作系统地分析了transformer中的vanilla 批次归一化(BN)的无效性。比较NLP和CV,证明了NLP任务的transformer中的批次统计数据有较大的差异。这导致BN在transformer中的性能较差。通过将变体解耦到FP和BP计算中,提出PN-V和PN来缓解NLP中BN的变体问题。从理论和经验上体现了PN-V和PN的优势。从理论上讲,PN-V保留了BN中的一阶平滑度属性PN的近似反向传播导致有界渐变。从经验上讲,显示出PN在神经机器翻译(IWSLT14 / WMT14上为0.4 / 0.6 BLEU)和语言建模(PTB / WikiText-103上为5.6 / 3.0 PPL)方面的性能优于LN。对不同批次大小设置下PN-V / PN / BN / LN的影响进行了进一步分析,以显示统计估计的意义,并研究了LN / PN表示的学习嵌入矩阵的表示能力,以说明PN的有效性。

论文 https://arxiv.org/pdf/2003.07845.pdf

T14 / WMT14上为0.4 / 0.6 BLEU)和语言建模(PTB / WikiText-103上为5.6 / 3.0 PPL)方面的性能优于LN。对不同批次大小设置下PN-V / PN / BN / LN的影响进行了进一步分析,以显示统计估计的意义,并研究了LN / PN表示的学习嵌入矩阵的表示能力,以说明PN的有效性。

论文 https://arxiv.org/pdf/2003.07845.pdf

代码 https://github.com/sIncerass/powernorm
AI算法后丹修炼炉是一个由各大高校以及一线公司的算法工程师组建的算法与论文阅读分享组织。我们不定期分享最新论文,资讯,算法解析,以及开源项目介绍等。欢迎大家关注,转发,点赞。同时也欢迎大家来平台投稿,投稿请添加下方小助手微信。

QQ交流群:216912253

查看更多交流方式

微信公众号:AI算法后丹修炼炉

小助手ID:jintianandmerry
在这里插入图片描述

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

相关文章

  1. 消息队列面试解析系列(六)- 异步编程妙用

    0 异步的优势 太多的线程会造成频繁的cpu上下文切换,你可以想象一下,假设你的小公司只有8台电脑,你雇8个程序员一直不停的工作显然是效率最高的。考虑到程序员要休息不可能连轴转,雇佣24个人,每天三班倒,效率也还行。 但是,你要雇佣10000个人,他们还是只能用这8台电脑,…...

    2024/5/4 15:11:07
  2. AndroidStudio学习笔记-05Android项目结构

    src源代码gen自动生成的目录,存放Rbin存放apk文件assets资产目录libs依赖的库文件drawable图片资源layout布局values字符串,颜色,样式AndroidManifest.xml清单文件,包含了APP的配置信息,安卓的四大组件都需要在清单中声明...

    2024/4/18 15:37:43
  3. 6.2 Java API 操作 HDFS 文件(一)

    任务目的了解 junit 的作用和常用注解掌握使用 Java API 在 HDFS 上创建目录的方法学会使用 Java API 将本地文件上传到 HDFS 指定位置 任务清单任务1:创建目录任务2:上传文件 详细任务步骤junit 是什么?junit 是一个 Java 语言的单元测试框架,用于编写和运行可重复的测试。…...

    2024/4/26 8:24:02
  4. 13.4-“制作一款私有IAP串口下载小工具”之STM32的Bootloader设计说明

    一、原理简要说明 从上一章可知,IAP更新程序的原理,就是在单片机flash中的划分出两个区域,分别叫做Bootloader区域和一个App区域。芯片上电启动的时候,会默认运行Bootloader,然后bootloader来做逻辑判断,bootloader会等待5s左右,如果在5s之内收到需要更新固件的命令,则…...

    2024/4/30 0:34:32
  5. Linux如何删除未知文件名的文件?

    文章原地址: http://www.361way.com/rm-file-use-inode/4187.htmlLinux系统里面有一个这样的文件, rm -rf …不知该如何删除. # 查看文件的inode号 $ ls -il可以看到文件的inode号为 393743 然后通过下面命令进行删除 使用find根据inode号查找到文件 再删除 $ find . -inum 393…...

    2024/4/27 23:06:08
  6. CCS-CSP 2013-12 批次 题目2

    ISBN号码 Description​ 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位…...

    2024/5/4 19:03:00
  7. 【Java学习笔记(五)】之内部类的要点介绍

    本文章由公号【开发小鸽】发布!欢迎关注!!!老规矩–妹妹镇楼:一. 内部类(一)定义在一个类中定义一个类,如:在类A中定义一个类B,则该类B就称为内部类。 格式:class 外部类名{修饰符 class 内部类名{ } }(二)特点内部类可以直接访问外部类的成员,包括私有的…...

    2024/4/15 19:58:17
  8. 编程C++字符串总结

    字符串构造 string s; //生成一个空字符串s string s(str) //拷贝构造函数 生成str的复制品 string s(str, stridx) //将字符串str内"始于位置stridx"的部分当作字符串的初值 string s(str, stridx, strlen) //将字符串str内"始于stridx且长度顶多strlen&quo…...

    2024/4/17 18:13:28
  9. 设计模式(11)[JS版]-JavaScript设计模式之装饰器模式

    目录1 什么是装饰器模式?2 装饰器模式的主要参与者有哪些3 代码实现4 实例应用5 ES7 中的 decorator6 总结1 什么是装饰器模式?装饰器模式模式动态地扩展了(装饰)一个对象的行为,同时又不改变其结构。在运行时添加新的行为的能力是由一个装饰器对象来完成的,它 "包裹…...

    2024/4/23 5:19:23
  10. 数据结构源码笔记(C语言):B树的相关运算算法

    //B树的相关运算算法#include<stdio.h> #include<malloc.h>#define MAXM 10//定义B树最大的阶数 typedef int KeyType;//关键码类型typedef struct node//B树结点类型定义 {KeyType keynum;//关键字的个数KeyType key[MAXM];//存放关键字struct node *parent;//双…...

    2024/4/21 13:27:42
  11. Mybatis入门:4(多表查询操作)

    多表查询操作 Mybatis的多表操作 表之间的关系有几种:一对多、一对一、多对一、多对多 举例: 用户和订单就是一对多——一个用户可以下多个订单 订单和用户就是多对一——多个订单属于同一个用户 人和身份证号就是一对一 一个人只能有一个身份证号 一个身份证号只能属于一个人…...

    2024/4/25 14:49:31
  12. JAVA笔记02

    JAVA循环结构:while循环do-while循环for循环 1.while循环while是最基础的循环,表达式为布尔类型;只要布尔表达式为true,循环体会一直循环下去。结构如下:while(布尔表达式) {//循环内容}2.do-while循环do-while循环语句是无论满不满足条件都要执行一遍,即先执行在判断,如…...

    2024/4/27 17:09:10
  13. Rhino (Grasshopper) 二次开发 (C#) Part 2 - Interesting Examples

    【本文重点】 (待完成) 1 画一条随机游动的小蛇 效果如图1.1 涉及内容Random 语句:见 C# 学习笔记 Section 1.4 toggle & timer 模块:见 Rhino (Grasshopper) 二次开发 (C#) Part 1 Section 1.1.2 & 1.1.31.2 具体电池组与代码private void RunScript(bool ifRenew…...

    2024/4/15 13:55:22
  14. Java学习日记day10,继承与多态

    继承: 继承性的说明 1.一个类可以被多个子类继承。(一个爹可以有多个儿子) 2.Java中类的单继承性:一个类只能有一个父类。(一个儿子只能用一个爹) 3.子父类是相对的概念。 4.子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类。 5.子类继承父类以后,就…...

    2024/5/4 16:52:53
  15. SpringMVC入门代码

    SpringMVC入门代码 使用SpringMVC需要我们先配置一个前端控制器 在web.xml里面: <servlet><!--任意名字--><servlet-name>dispatcherServlet</servlet-name><!--固定写法--><servlet-class>org.springframework.web.servlet.DispatcherSe…...

    2024/5/4 18:33:48
  16. 项目中样式调整思路

    一,情况一:页面看不到元素 1.首先第一步我们看html文件,看我们的元素Dom节点有没有被渲染出来,html是内容,和样式无关。 2.所以,如果没有被渲染出来,说明不是样式的问题,而要去查为什么没有渲染出来这个dom 3.如果已经有dom,说明就是样式问题了, 4.首先看一下宽高,可…...

    2024/5/4 18:42:55
  17. 关于mac重启/home目录丢失解决方案

    首先vim /etc/auto_master查看home所在行是否被注释,如果没被注释,百度如何关sip,自己创建。如果被注释了,sudo vim /etc/auto_master把注释去掉,然后去根目录下执行sudo automount -vc 然后home目录就回来了,如果想在home目录写入东西,再把/etc/auto_master的注释加上,…...

    2024/4/28 20:51:53
  18. 10. Buildroot用户手册-常见问题和故障排除

    10.1 启动网络后引导挂起…… 如果boot进程是在显示以下消息后挂起(消息不一定完全相似,具体取决于选择的软件包): Freeing init memory: 3972K Initializing random number generator... done. Starting network... Starting dropbear sshd: generating rsa key... genera…...

    2024/5/2 9:38:37
  19. LeetCode 1512 好数对的数目

    /*** 1512. 好数对的数目** 给你一个整数数组 nums 。** 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。** 返回好数对的数目。** ** 示例 1:** 输入:nums = [1,2,3,1,1,3]* 输出:4* 解释:有 4 组好数对,分别是 (0,3), (0,4), …...

    2024/5/4 14:43:34
  20. 面试冲刺:42---虚拟地址、逻辑地址、线性地址、物理地址是什么意思?各个地址之间是如何转换的?

    Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中Linux主要工作在保…...

    2024/4/22 15:42:30

最新文章

  1. 知识图谱需求

    文章目录 公共安全数字经济金融科技资源优化科学研究制造业转型公共健康人文发展 公共安全 公共安全领域信息化以现代通信、网络、数据库技术为基础&#xff0c;将所研究对象各要素汇总至数据库&#xff0c;并针对各个业务领域进行定制化开发&#xff0c;以满足公共安全实战需求…...

    2024/5/4 21:08:29
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. llama.cpp运行qwen0.5B

    编译llama.cp 参考 下载模型 05b模型下载 转化模型 创建虚拟环境 conda create --prefixD:\miniconda3\envs\llamacpp python3.10 conda activate D:\miniconda3\envs\llamacpp安装所需要的包 cd G:\Cpp\llama.cpp-master pip install -r requirements.txt python conver…...

    2024/5/1 13:25:36
  4. 面试算法-140-接雨水

    题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2…...

    2024/5/1 13:55:50
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/4 12:05:22
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/4 11:23:32
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/4 14:46:16
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/3 16:00:51
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/4 12:10:13
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/3 21:22:01
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/3 23:17:01
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/4 14:46:12
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/4 14:46:11
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/4 14:46:11
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/4 2:14:16
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/3 16:23:03
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/4 12:39:12
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/4 13:16:06
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/4 16:48:41
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/4 14:46:05
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/4 2:00:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/3 22:03:11
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/4 9:07:39
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/4 14:46:02
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57