这六大方法,如何让 Transformer 轻松应对高难度长文本序列?
2020-06-08 05:24:09
编译 | Mr Bear
编辑 | 丛末
众所周知,多头注意力机制 (Multi-Head Self-Attention) 的计算开销很大。在处理长度为 n 的序列时,其
的时间复杂度会使得原始的 Transformer 模型难以处理长文本序列。在过去的两年里,已经出现了多种有效的方法来应对多头注意力机制的复杂度问题,本文将重点讨论在模型规模方面很有发展前景的方法。 1
密集型多头注意力的时空复杂度
多头自注意力机制扩展到长文本序列的能力很差,原因有二:
第一,计算注意力矩阵所要求的每秒浮点运算数(FLOPs)与序列长度的平方成正比,导致单个序列上的自注意力运算的计算复杂度为
,其中 h 是注意力头的数量,d 是键向量和查询向量的维数,n 是序列的长度。另一件糟糕的事是:点积自注意力运算的空间复杂度也与序列长度的平方成正比。计算注意力矩阵的空间复杂度为
,其中 hdn 是存储键和查询所需的内存的阶,而
是指存储每个注意力头产生的标量注意力值所需内存的阶。
我们用 BERT-Base 中的一些具体数字来解释一下复杂度到底有多高。BERT-Base 序列输入的最大长度为 512,768 个的隐藏维度和 12 个注意力头,这意味着每个注意力头有 64 维(768/12)。在这种设定下,需要 393,216 个浮点数(约为 1.5MB)(12 个注意力头* 64 注意力头的维度* 512 序列长度)来存储键和值,而存储所有注意力头得到的标量注意力值所需的内存将达到 3,145,728 个浮点数(12 * 512 * 512)或约 12MB 的设备内存,这里所需的内存几乎是将键存储在长度为 512 个词的上下文时的 10 倍。
为了进行梯度运算,必须在训练过程中缓存激活值,除非使用诸如梯度检查点之类的重计算策略,因此对于每个示例来说,存储所有 12 层 BERT base 的注意力矩阵就需要大概 150MB 的内存。当序列长度为 1024 时,内存需求则变为约 600MB,而序列长度为 2048 时,对于每个示例的注意矩阵而言,内存需求就已达到约 2.4GB。这意味着在训练时可以使用的批处理规模较小,并行性较差,并会进一步阻碍我们训练该模型处理长上下文的能力。
2
稀疏 Transformer
Rewon Child,Scott Gray,Alec Radford 和 Ilya Sutskever 在论文 "Generating Long Sequences with Sparse Transformers" 中提到,可以通过因式分解解决多头自注意力 的高时间和空间复杂度的问题。
论文地址:
https://arxiv.org/abs/1904.105091、分解后的注意力
在典型的自注意力机制中,其输入序列中的每一项都要计算与输入序列中的其它项之间形成的注意力,从而得到如下所示的注意力模式:
图 1:以一种自回归的形式组织的传统自注意力机制的连接模式。深蓝色方块代表「查询」向量,而浅蓝色方块代表「键」向量。
传统自我注意力机制的一大好处是,高度的连通性使词例 (token) 之间的信息容易流通,仅需一层即可聚合来自任何两个词例的信息。但是,如果放宽此约束,并确保任意两个词例之间的信息只能在经过两层之后才可以流通,则可以极大地降低长序列带来的复杂性。稀疏 Transformer 通过编写利用固定注意力模式的自定义核来实现此目标。
图 2:稀疏 Transformer 的固定注意力变体。最深的蓝色方块代表「查询」向量,较浅的蓝色方块代表被奇数层注意的「键」向量索引,最浅的蓝色方块代表被偶数层注意的「键」向量索引。
一半的注意力头只关注较短的局部上下文中的项,而剩余的一半注意力头关注的是预先指定好的在整个序列中均匀分布的索引。通过根据这些聚合索引确定信息流动路径,网络仍然能够使得相距较远的词例间传递信息,并使用长距离上下文,同时将时间和内存复杂性降低到
。重要的是,它只需要两层就可以让任意词例考虑来自任何其它词例的信息。2、实验结果
值得注意的是,分解后的注意力结构似乎不会对语言建模的性能产生负面影响,反而惊人地令每个字符需要的比特数比密集的注意力机制(原始 Transformer)在 Enwiki8 语料环境下要少一些,并且可以在包含多达 12,228 个词例的上下文中得到高效的注意力。
可以想象的到,稀疏 transformer 之所以起作用,部分原因是它学到的的注意力模式与实际学习的密集注意力模式并没有什么不同。在 Kevin Clark 等人发表的文章"What Does BERT Look At? An Analysis of BERT’s Attention"中,作者探索了密集注意力学习到的模式,想要找到注意力在transformer 中起什么作用。他们发现关注紧密相连的前面的词例(类似于稀疏注意力机制中的局部注意力模式)以及关注特定聚合词例(如 [SEP] 和句号)的注意力头有重要作用。因此,可能编码在稀疏 transformer 注意模式中的归纳偏置是有积极作用的。
论文地址:
https://arxiv.org/abs/1906.04341
图 3:BERT 学到的注意力模式示意图,线的深度表明了注意力权重的强度(其中有一些注意力权重太小,以至于线变成了透明的)
要在自己的项目中使用固定注意力kernel,请查看OpenAI的blocksparse库和作者作为开源发布的附带示例。
3
自适应跨度 Transformer
Sainbayar Sukhbaatar 等人在论文"Adaptive Attention Span in Transformers"中选择了另一种办法来解决这个问题。和前一篇"What Does Bert Look At?"的类似,他们也观察了 Transformer 中起作用的组件。
论文地址:
https://arxiv.org/abs/1905.07799
值得注意的是,尽管密集注意力机制让每个注意力头可以关注整个上下文,但很多注意力头只考虑局部上下文,而其它注意力头则考虑了整个可用序列。他们建议通过使用一种自注意力的变体来利用这种观察结果,这种变体允许模型选择它的上下文大小。
1、自适应掩模
Adaptive Span Transformer 通过实现这一点的方式是:通过对序列进行掩模运算,使得学习到的每个注意力头的上下文之外的词例的贡献迅速降为零。mask(M)与 softmax 操作的分对数相乘,从而将某些词例对当前隐藏状态 x 的贡献归零,超参数 R 控制最小跨度的大小。
图 4:"Adaptive Attention Span in Transformers" 采用的 soft-masking 函数
他们应用了一个学习到的z值的
惩罚项,以鼓励模型仅在有益的情况下使用额外的上下文。2、对注意力的思考和实验结果
由于这些限制,大多数注意力头只关注少于100 字符的上下文,而只有少数(主要是在网络的后几层)选择添加一个 惩罚项,从而学习大于 1000 个字符的上下文。
图 5:注意力跨度随层数变化的示意图
除了采用巧妙的缓存策略,这种对长距离上下文的惩罚项使得跨度自适应 Transformer 可以使用使用高达 8k 个字符的注意力跨度,同时仍然保持模型的总体计算开销较低。此外,模型在基准对比测试中的性能仍然很高,在 Enwiki8 数据集上达到每字符占用 0.98 比特,在 text8 数据集上则达到每字符 1.07 比特。
然而,可变跨度大小的注意力在并行性方面并不理想,因为我们通常希望使用密集、大小一致的矩阵,从而获得最佳性能。虽然这种方法可以显著减少在预测时计算前向传播所需的每秒浮点运算次数,但作者只给出了模糊的性能估计,声明自适应跨度的实现使我们可以以与 2,048 个上下文词例的上下文大小固定的模型相近的速率处理长达 8,192 个词例的上下文。
Facebook AI 研究院也开源了他们的成果——代码和预训练模型请参阅以下链接:github.com/Facebook Research/adaptive-spans
4
Transformer-XL
相比于降低密集型注意力操作复杂度的方式,Zihang Dai 等人受 RNN 的启发,在 transformer 的自注意机制之外引入了一种循环机制。他们的论文 "Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context" (论文地址:
https://arxiv.org/abs/1901.02860)介绍了两个新概念:(1)一种新的组件,它将先前「段落」的隐藏状态作为循环段落层的输入;(2)使这种策略容易实现的相对位置编码方案。
1、段落循环
标准 transformer 的上下文大小是固定的,要想处理长的输入需要将输入分成块(段落),并分别处理每个块(段落)。
然而,这种方法存在一个限制:前面段落的信息不能流向当前的词例。这种段与段之间的独立性在某种程度上有益于高效地对段落进行批处理,但从长距离一致性的角度出发,这又变成了一个主要限制因素。
图 6:在 Transformer XL 的论文中,在一个自回归 transformer 中的词例注意力结构示意图
Transformer XL 通过强制地使段落被串行处理来解决这一限制。处理完成第一个段之后,先前段的激活值将作为上下文传递给后续段的注意力,因此始终有 512 个紧邻的字符的上下文被记录。这意味着跨度为 N 个上下文大小 * L 层的信息可以传播到给定的词例。假设上下文大小为 640,并且模型有 16 层,那么 Transformer XL 理论上至多可以考虑 10,240 个字符的信号。
图7:Transformer-XL 中的词例注意力模式,其中端的长度为 4
为了避免存储先前所有段的激活值,作者阻止了梯度流向前面的段。
2、引入相对位置
Transformer-XL 还引入了一种新的位置编码方案,即“相对位置编码”。这种方案不再简单地将内容和绝对位置嵌入的总和作为网络输入,而是对每层的注意力操进行分解,其中一部分基于内容执行注意力,另一部分基于相对位置执行注意力。因此,块中的第 512 个词例会注意到第 511 个词例,在这里会采用 相对位置 -1 相应的嵌入。
为了使相对位置编码易于处理,他们将生成注意力权重的操作和键和生成查询向量、键向量的操作分离。对于典型的密集注意力机制,进行 softmax 计算之前的注意力可以被分解如下:
在上面的公式中,
表示基于内容的注意力在位置 i 处的词例的嵌入 ,
是词例 j 的位置编码嵌入。其中,每一项的含义如下:
a)基于键内容的查询内容“寻址”
b)基于键位置的查询内容位置偏置
c)根据键的内容的查询位置偏置
d)根据键的位置的查询位置偏置
使用相对位置嵌入时,公式被改写为:
对于包含在查询的位置中的项(c 和 d),我们使用两个新的可学习参数 u 和 v 替代了
矩阵。这些向量可以被理解为两个偏置,它们并不依赖于查询的特征。c 促使模型对某些项的注意力程度比对其它项更高,而 d 促使模型对某些相对位置的注意力程度比对其它位置更高。这种替代的方式受到了下面这一事实的启发:查询相对于自己的相对位置始终保持不变。3、对注意力的思考和实验结果
为了使 Transformer-XL 模型能够使用长距离的上下文,每层中至少有一个注意力头必须利用其注意力跨度内的全部上下文。平均注意权重图显示,每一层都有一些注意力头,注意到先前许多的位置。
图 8:在前面 640 个词例上的平均注意力,其中每行对应于一个注意力头,每列对应于一个相对位置。图中共有 160 个注意力头,每十个注意力头同属于同一层。颜色越深代表注意力值越大。
另外,Transformer-XL 的原始论文测量了有效上下文长度对困惑度(perplexity,交叉熵的指数形式)的影响。作者发现,增加上下文长度(上下文长度高达九百个词例)会得到更好的困惑度分数(预测样本更准确),这进一步证明了循环机制不仅理论上可行,而且实际上也十分有效。
如果想要开始将 Transformer-XL用于自己的项目:
源代码请参见 Kimi Young 的 github:
https://github.com/kimiyoung/transformer-xl或查看HuggingFace 的实现:
https://huggingface.co/transformers/model_doc/transformerxl.html
5
压缩 Transformer
接下来我们将介绍压缩 Transformer(Compressive Transformer),它是建立在 Transformer-XL 的架构之上的。压缩 Transformer 使用了一个压缩损失对 Transformer-XL 进行了拓展,考虑了更长的序列长度。在论文“Compressive Transformers for Long-Range Sequence Modelling”中,来自 DeepMind 的 Jack 等人详细描述了一种模型架构,该架构能够处理与整本书一样长的序列。
论文地址:
https://arxiv.org/abs/1911.055071、压缩的 Transformer 注意力
图 9:压缩 Transformer 保留了过去的激活值的细粒度内存,它们随后被压缩到粒度较粗的压缩内存中。上图中的模型有一个三层的结构:(1)一个长度为 3 的序列(2)一个长度为 6 的内存(3)长度为 6 的压缩内存。高亮显示的内存在每层中被一种压缩函数 f_c 压缩到单个压缩内存中,而不是直接被接下来的序列忽略。在本例中,压缩比为 c=3。
遵循着 Transformer-XL 的设定,序列可以注意到一组存储下来的之前段的激活值。另外,在相同的多头注意里操作中,当前段中的词例可以注意到存储在「压缩内存」中的第二组状态。
在每一个时间步上,最早的一个压缩内存会被丢弃,压缩内存的索引会回退一位。接着,常规的内存段中最早的 n 个状态会被压缩,并且被转移到压缩内存中新开的槽中。
图 10:将过去存储的内存逐渐压缩到压缩内存中。
DeepMind 的研究团队尝试使用了各种各样的压缩操作(包括平均池化、最大池化、学习到的卷积操作等对比基线),但是他们最终决定训练一个辅助网络,该网络被用于重建基于内容的被压缩的内存的注意力矩阵。换而言之,他们学习了一种函数
,该函数通过最小化压缩内存上的注意力
与被压缩的常规内存中状态的注意力之间的差异,将最早的 n 个内存状态压缩到了单个压缩后的内存状态中:
由于让状态容易被压缩与减小语言模型的损失是相矛盾的,他们选择在一个独立的优化循环中更新压缩网络,而不是同时训练这种压缩操作和主要的语言模型。
2、实验结果
在实验中,他们设置压缩内存的大小为 512,正规内存的大小为 512,滑动窗口大小为 512,压缩率为 2(这意味着最早的 2 个内存状态会在压缩步骤中被压缩到单个状态中)。在这样的实验环境下,他们取得了目前最好的实验结果——在 WikiText-103 数据集上取得了 17.1 的困惑度。
由于通过利用更长的序列所获得的收益往往是符合长尾分布的,他们专门关注了由词频刻画的离散特征的困惑度,并指出最稀有的词例带来的收益是最显著的:
图 11:通过词频刻画的离散特征桶(bucket)的困惑度
尽管他们的源代码至今还没有公开,DeepMind 已经开源了它们研发压缩 Transformer 时所使用的数据集 PG-19。PG-19 是 Gutenberg 计划的衍生品,旨在进一步研究长距离注意力。
数据集地址:
https://github.com/deepmind/pg19
6
哈希注意力 Reformer
接下来,我们继续关注由 Nikita Kitaev 等人完成的工作“Reformer:The Efficient Transformer”。Reformer 对于长度增长的序列采用了另一种策略,他们选择通过局部敏感哈希技术将每个词例的注意力范围变窄,而不是引入循环机制或压缩内存。
论文地址:
https://arxiv.org/abs/2001.04451
局部敏感哈希,是一类将高维向量映射到一组离散值(桶/聚类簇)上的方法。在大多数情况下,它被用作一种近似的最近邻搜索方法。
Reformer 的作者针对注意力操作的键向量和查询向量使用了一种单一投影,他们使用了一种基于随机旋转的局部敏感哈希方法,将共享的键/查询聚集到至多几百个词例的桶。哈希方法的示意图如下:
图12:角度局部敏感哈希算法示意图。图中显示了三轮哈希,每轮哈希中将空间分成了 4 个桶。在下面一排示意图的三轮哈希中中,向量都被映射到了同一个桶中,因为它们在输入中也相近;而在上面一排的第一次哈希和第三次哈希中,向量映射到了不同的桶中。
它们计算了每个桶中的注意力矩阵,并对相应的值进行加权。由于它们只能注意到给定的中的元素,当选取的桶大小合适时,这样做可以将注意力操作的整体空间复杂度从
降低到
。由于这里的分桶(bucketing)处理是随机并且基于随机旋转的,他们计算了若干次哈希,从而保证具有相近的「键-查询」嵌入的词例最终很有可能被分在同一个桶中。
他们额外地使用了 "The Reversible Residual Network: Backpropagation Without Storing Activations" 中提出的技术将训练时的内存消耗维持在可控范围内。逆残差层使用了非常巧妙的架构,使模型可以容易地根据层的输出重构层的输入,并以额外的计算换取网络深度不变的内存复杂性。
论文地址:
https://arxiv.org/abs/1707.04585
尽管 Reformer 论文中给出的在 Enwiki-8 数据集上 1.05 比特每字符的性能比本文中给出的其它一些模型稍弱,但是 Reformer 仍然提出了一种令人耳目一新的机制引入了长距离上下文,人们期待看到 Reformer 进一步的拓展。
如果你有兴趣更深入地探索 Reformer 架构,请参阅博文「 A Deep Dive into the Reformer」:
https://www.pragmatic.ml/reformer-deep-dive/Google/jax
Github 代码仓库中的 Reformer 的开源实现链接如下:
https://github.com/google/trax/tree/master/trax/models/reformer
一种 Phil Wang 训练的 PyTorch 版的实现链接如下:
https://github.com/lucidrains/reformer-pytorch
7
路由Transformer
Aurko Roy 等人于 ICLR 2020 上发表的工作 "Efficient Content-Based Sparse Attention with 路由Transformers"与前文提到的 Reformer 有一些异曲同工之妙。它们将该问题建模为了一个路由问题,目的是让模型学会选择词例的稀疏聚类
(将其作为内容 x 的函数)。论文地址:
https://openreview.net/profile?email=grangier%40google.com
在下面的图表中,作者描述了他们的方法。他们并不只关注局部元素或每 n 个元素来增加稀疏性,而是学习了通过下图 c 中的颜色表示的需要关注的聚类簇。重要的是,这些簇是关于每个键和查询的内容的函数,而不仅仅与它们的绝对或相对位置相关。
图 13:这里的图形显示了路由 Transformer 与局部注意力机制和 Child 等人于 2019 年提出的跨步注意力机制的对比结果。每一行代表输出,每一列代表输入。对于局部注意力机制和跨步注意力机制来说,着色的方块代表每一个输出行注意到的元素。对于路由注意力机制来说,不同的颜色代表输出词例的聚类中的成员。
1、路由注意力确保每个键和查询向量都具有单位大小后,他们使用了一种公共的随机权重矩阵对键和查询的值进行投影,投影的尺寸为
,其中D_K 是键和查询的隐藏维度。
随后,R 中的向量会根据一组 k-均值聚类中心 C 被聚类到 k 个簇中。K-均值聚类中心是通过使用每个批(batch)中的 K-均值更新学习到的,它与梯度下降过程相独立。
在给定的聚类簇 C_i 中,他们使用了一种标准的加权求和方法,计算了一组新的上下文嵌入,其中每个注意力值 A_i 是使用标准的点乘自注意力计算而来的。
由于密集型注意力机制中的注意力模式往往由少数的关键元素,并且分配聚类的过程需要将具有高注意力权重的键和查询分到同一个聚类簇中,作者认为这样做保留了关键的信息。这说明
应用的密集型操作计算开销过高。最终,他们选择了大约
个聚类,因此他们稀疏的基于内容的注意力机制的整体复杂度为
。为了让整个过程易于并行化计算,并且可以处理统一大小的矩阵,作者使用了最接近每个聚类中心的前 k 个项来代替真正的 k-均值聚类。
除了基于内容的路由注意力机制,路由Transformer 还在一个大小为 256 的内容窗口上执行了局部注意力。
2、实验结果
路由Transformer 在计算效率方面取得了提升,从而使模型在 Wikitext-103 上(一种单词级别的语言建模对比基准)取得了在困惑度指标上性能的提升,他们的性能大大超过了上文介绍的 Tranformer-XL 模型。
表 1:在 Wikitext-103 数据集上的语言建模结果。Local Transformer 指的是由 Vaswani 等人于 2017 年提出的 Transformer,它用到了相对位置编码和局部注意力。表中给出了测试集上的困惑度。
在 Enwiki-8 数据集上,路由Transformer 的性能也非常出色(尽管其性能稍微落后于自适应跨度 Transformer)。
表 2:在 Enwiki-8 数据集上的语言建模结果。Local Transformer 指的是由 Vaswani 等人于 2017 年提出的 Transformer,它用到了相对位置编码和局部注意力。表中给出了测试集上的比特每字节(bpc)。
路由Transformer 的源代码链接如下:
https://storage.googleapis.com/routing_transformers_iclr20/routing_transformers_iclr20.zip
8
其它处理 Transformer 长文本序列方法
如果你想进一步了解其它处理 Transformer 长文本序列方法,可以参阅下列文章:
- Efficient Content-Based Sparse Attention with Routing Transformers,https://openreview.net/forum?id=B1gjs6EtDr
- Adaptively Sparse Transformers,https://arxiv.org/abs/1909.00015
- BP-Transformer: Modelling Long-Range Context via Binary Partitioning,https://arxiv.org/abs/1911.04070v1
- Scaling Laws for Neural Language Models,https://arxiv.org/abs/2001.08361
via https://www.pragmatic.ml/a-survey-of-methods-for-incorporating-long-term-context/
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- codeforces round #648 (div2)总结
2020.6.8 最近连续两场翻车让我不得不加紧了一下训练。前几天没再划水了,昨天上午去医院看完奶奶下午回来锻炼完就坐在电脑前刷题,把二分做了做,重点练了下手动模拟,还是蛮重要的,因为前几场就是吃了手动模拟的亏,手速太慢导致明明ac/wa/tle情况一样别人涨分我掉分的情况…...
2024/4/27 22:03:11 - 常用命令记录
# 1. 查找命令所在目录> which 命令名称 # 2. 查看当前使用的shell> echo $SHELL# 3. 查看当前系统可以使用的shell> cat /etc/shells# 4. 切换到root账号.exit 退出> sudo su...
2024/4/27 0:21:11 - MatLab 图像基本处理[1 2 3]源代码
MatLab 图像基本处理[1 2 3]源代码 %--------------------原图像显示-------------------------% [f_name,p_name] = uigetfile(*.jpg; *.bmp; *.png); %<1> picture_read = imread(f_name);%<2> %or delete <1><2> ,change: picture_read = imread(yo…...
2024/4/27 23:32:45 - 【报错】UOS系统安装库提示错误
UOS上搭建qt环境,安装opengl等相关的依赖提示“下列软件包有未满足的依赖关系”“E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”。缺少各种依赖,根本无法安装,出现这种问题一般都是包源的问题,包源没有相关的依赖或者改包源的一些库…...
2024/4/27 23:12:05 - leetcode 112 Path Sum 详细解答
leetcode 112 Path Sum 详细解答解法1 递归: 这里递归的出口就是当节点为空时,返回False. 当叶子节点的值等于sum值时返回True。 代码如下:解法2 迭代: 迭代的思路也比较简单,相当于从上往下,把每一条路径走一遍,这需要申请一个队列用以保存节点和节点到根节点的值的和。…...
2024/4/28 15:39:00 - ISO/OSI 参考模型和 TCP/IP 模型
ISO/OSI 参考模型和 TCP/IP 模型物理层 (Physical Layer)数据链珞层 (Da切LinkLayer)网络层 (Network Layer)传输层 (Transport Layer)会话层 (Session Layer)表示层 (Pres ntation Layer)应用层 (Application Layer)TCP/IP 模型OSI 层,自下而上依次为物理层、数据链路层、网…...
2024/4/28 5:09:33 - 数据结构-逆转链表
下列代码的功能是返回带头结点的单链表L的逆转链表。List Reverse( List L ) {Position Old_head, New_head, Temp;New_head = NULL;Old_head = L->Next;while ( Old_head ) {Temp = Old_head->Next;old_head->next=new_head; //空1 New_head = Old_head; Old_h…...
2024/4/28 8:13:08 - SpringMVC框架:View视图类型,配置文件路径设置,编码过滤器
分类/** View作用:处理模型数据,实现页面的跳转(转发和重定向)* View类型:* InternalResourceView:转发视图* JstlView:转发视图* RedirectView:重定向视图*/@RequestMapping(value = "/param",method = RequestMethod.POST)public String param(){ // return "…...
2024/4/28 14:41:00 - Vue框架SSR自制轮子
使用Vue + Koa搭建服务端渲染 (项目使用包管理工具yarn)服务端渲染简介: 客户端渲染不利于SEO优化 服务端渲染是可以被爬虫抓取到的,客户端异步渲染则难以被爬虫抓取 SSR直接将渲染好的html字符传递给浏览器, 大大加快了首屏加载的时间 SSR会占用服务端更多的CPU和内存资源 …...
2024/4/28 13:03:47 - java反射的简单使用
1、定义Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被…...
2024/4/24 11:44:00 - Git用户名的查看和修改
查看用户名和邮箱地址 $ git config user.name $ git config user.email修改全局用户名和邮箱地址 $ git config --global user.name "username" $ git config --global user.email "email"修改局部用户名和邮箱地址 $ cd ~/you project …...
2024/4/23 13:33:08 - c#枚举(enum)究竟是什么?它有什么用处?什么情况下使用?如何使用?
c#中枚举究竟是什么,它有什么用处,什么情况下使用?如何使用? 本片文章详细讲解c#中枚举(enum)中的基础知识,主要深入讲解什么是枚举,枚举有什么作用,枚举在什么情况下使用、枚举的规则,枚举的定义以及使用,枚举类型的转换等知识。 1、什么是枚举? 枚举是一种值…...
2024/4/24 11:44:05 - 《羊卓的杨的算法笔记》_Quentin
羊卓的杨的算法笔记 说明:我刚刚开始学习算法~,然后会把我学到的东西用博客记录下来,也就做出了这一个《羊卓的杨的算法笔记》专栏,欢迎广大网友斧正赐教。每一篇算法博文以以下格式呈现:1.算法概念2.使用条件3.算法优点4.算法缺点5.例题讲解本文中会有很多可点击链接!!…...
2024/4/24 11:43:59 - 列表插入 描述 输入一个字符串 s 和一个非负整数 i, 列表 ls
列表插入 描述 输入一个字符串 s 和一个非负整数 i, 列表 ls = [‘2’, ‘3’, ‘0’, ‘1’, ‘5’],在指定的位置 i 和 列表末尾分别插入用户输入的字符串 s。当 i >=5 时,相当于在列表末尾插入两次字符串 s 。…...
2024/4/24 11:43:59 - 【数据结构】串的定义
定义 串(String)是由零个或者多个字符组成的有限序列,又名叫字符串。 一般记为s=“a1a2……an”(n>=0) 其中s是串的名称,用双引号括起来括起来的字符序列是串的值,引号不属于串的内容。ai(1=< i <=i)可以是字母,数字或者其他字符,i就是该字符在串中的位置。…...
2024/4/24 11:43:55 - 一些科研知识点的小tips
常规PCA具有足够的强大功能来构建合适的形状和纹理模型,但由于其高斯特性,它通常无法捕获高频细节并最终导致纹理模糊。这在纹理建模中变得更加明显,纹理建模是3D重建中保留身份以及真实感的关键组成部分。GAN被证明在捕获此类细节方面非常有效。但是,当训练图像为半对齐时…...
2024/4/24 11:43:56 - 分享几个学习日语的方法,日语初学者
零基础学日语,bai学习初级语法要做的du工作,这些必不可少在能力考zhi的学习dao备考当中,语法学习是其中很重要的一部分。日语小知识日语的语法其实说起来说难不难,说简单也不简单。作为外语来讲日语是跟汉语关系最近的语言之一。但日语的语法结构跟汉语有着较大的区别。汉语…...
2024/4/25 11:36:20 - 网络维护笔记(纯技术)——交换机
1、调试交换机用什么软件呢? 超级终端,IPOP,SecureCRT 2、笔记本调试交换机要用到的工具是什么? RS232串口蓝牙模块 3、DNS是什么? 域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。 4、域名是…...
2024/4/24 1:01:32 - 时间复杂度_《羊卓的杨的算法笔记》_Quentin
时间复杂度 时间复杂度是什么?可以理解为程序中的基本操作要执行的次数,而并非是真正以时间为单位的量,一般用默认是最坏情况下程序要执行的次数。时间复杂度用O(……)来表示。 时间复杂度的分类:O(1)常数型、O(n)平方型、O(n)立方型、O(log n)对数型、O(n*log n) 、O(n)…...
2024/4/15 4:58:31 - minikube执行yaml,部署一个nginx
一、管理员权限进入cmd。二、如果minikube没有启动,则输入minikube start。三、输入minikube ssh进入minikube。四、输入minikube sersion,查看minikube版本号。五、下载对应于当前minikube的kubectl.exe(下载地址,例如v1.18.0:Linux https://storage.googleapis.com/kube…...
2024/4/15 4:58:30
最新文章
- python—字符串与正则表达式
1、编写程序,生成一个由15个不重复的大小写字母组成的列表。 (1)源代码: import random import string list1 [] while len(list1) < 15: x random.choice(string.ascii_letters) if x not in list1: list1.append(x) print…...
2024/4/28 20:12:53 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - audio_video_img图片音视频异步可视化加载
最近在做即时消息,消息类型除了文字还有音频、视频、图片展示,如果消息很多,在切换聊天框时,会有明显卡顿,后续做了懒加载,方案是只加载用户能看到的资源,看不到的先不加载; LazyAud…...
2024/4/27 13:10:31 - Kafka入门到实战-第五弹
Kafka入门到实战 Kafka常见操作官网地址Kafka概述Kafka的基础操作更新计划 Kafka常见操作 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件流平台&…...
2024/4/26 16:59:59 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/28 13:52:11 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/28 3:28:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/28 13:51:37 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/28 15:57:13 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) 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 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在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