9k字长文理解Transformer: Attention Is All You Need

news2024/11/25 20:31:51

作者:猛码Memmat

目录

  • Abstract
  • 1 Introduction
  • 2 Background
  • 3 Model Architecture
    • 3.1 Encoder and Decoder Stacks
    • 3.2 Attention
      • 3.2.1 Scaled Dot-Product Attention
      • 3.2.2 Multi-Head Attention
      • 3.2.3 Applications of Attention in our Model
    • 3.3 Position-wise Feed-Forward Networks
    • 3.4 Embeddings and Softmax
    • 3.5 Positional Encoding
  • 4 Why Self-Attention
  • 5 Training
    • 5.1 Training Data and Batching
    • 5.2 Hardware and Schedule
    • 5.3 Optimizer
    • 5.4 Regularization
  • 6 Results
    • 6.1 Machine Translation
    • 6.2 Model Variations
    • 6.3 English Constituency Parsing
  • Conclusion
  • Reference
  • Attention Visualizations

在这里插入图片描述

Abstract

在这里插入图片描述
主要的序列转导模型是基于复杂的循环或卷积神经网络,包括一个编码器和一个解码器。表现最好的模型还通过注意机制连接编码器和解码器。我们提出了一个新的简单的网络架构,Transformer,完全基于注意力机制,完全摒弃递归和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时更具并行性,并且需要更少的训练时间。我们的模型在WMT 2014英语-德语翻译任务上实现了28.4 BLEU,比现有的最佳结果(包括集合)提高了2个BLEU以上。在WMT 2014英法翻译任务中,我们的模型在8个gpu上训练3.5天后,建立了一个新的单模型最先进的BLEU分数41.8,这是文献中最佳模型训练成本的一小部分。我们通过将Transformer成功地应用于具有大量和有限训练数据的英语选区解析,证明了它可以很好地推广到其他任务。

1 Introduction

在这里插入图片描述
在这里插入图片描述
neural networks, long short-term memory [13] and gated recurrent [7] neural networks

我们提出了Transformer,这是一种模型架构,避免了递归,而是完全依靠注意力机制来绘制输入和输出之间的全局依赖关系。Transformer 允许更多的并行化,并且在八个 P100 GPU 上训练多达 12 小时后,可以在翻译质量方面达到新的技术水平。

2 Background

在这里插入图片描述
grows in the distance between positions, linearly for ConvS2S and logarithmically for ByteNet.

In the Transformer this is reduced to a constant number of operations
在Transformer中,这被减少为一个常数数量的操作,尽管代价是由于平均注意力加权位置而降低了有效分辨率,我们用Multi-Head Attention抵消了这一影响,如3.2节所述。

Self-attention, sometimes called intra-attention

the Transformer is the first transduction model relying entirely on self-attention to compute representations of its input and output without using sequencealigned RNNs or convolution.
然而,据我们所知,Transformer是第一个完全依靠自我注意来计算输入和输出表示的转导模型,而不使用序列对齐的rnn或卷积。在接下来的章节中,我们将描述Transformer,激发自我关注,并讨论它相对于[17,18]和[9]等模型的优势。

3 Model Architecture

在这里插入图片描述
At each step the model is auto-regressive [10], consuming the previously generated symbols as additional input when generating the next.
在每一步中,模型都是自动回归[10],在生成下一步时,将先前生成的符号作为额外的输入。
The Transformer follows this overall architecture using stacked self-attention and point-wise, fully connected layers for both the encoder and decoder, shown in the left and right halves of Figure 1, respectively.
Transformer遵循这种总体架构,为编码器和解码器使用了堆叠的自关注层和按点完全连接层,分别如图1的左右两部分所示。
在这里插入图片描述

3.1 Encoder and Decoder Stacks

在这里插入图片描述
编码器由N = 6个相同层的堆栈组成。每一层有两个子层。第一个是一个多头自注意机制,第二个是一个简单的、按位置完全连接的前馈网络。我们在两个子层的每一层周围都使用了一个残余连接[11],然后是层规范化[1]。也就是说,每个子层的输出是LayerNorm(x + Sublayer(x)),其中Sublayer(x)是子层本身实现的函数。为了方便这些残余连接,模型中的所有子层以及嵌入层都会产生维度为 d m o d e l = 512 d_{model} = 512 dmodel=512的输出。

解码器也由N = 6个相同层的堆栈组成。除了每个编码器层中的两个子层外,解码器还插入第三个子层,该子层对编码器堆栈的输出执行多头注意。与编码器类似,我们在每个子层周围使用剩余连接,然后进行层归一化。我们还修改了解码器堆栈中的自关注子层,以防止位置关注后续位置。这种掩蔽,结合输出嵌入被一个位置抵消的事实,确保对位置i的预测只能依赖于小于i位置的已知输出。

3.2 Attention

在这里插入图片描述
mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors.
注意力函数可以描述为将查询和一组键-值对映射到输出,其中查询、键、值和输出都是向量。输出是按值的加权和计算的,其中分配给每个值的权重是通过查询与相应键的兼容性函数计算的。
在这里插入图片描述

3.2.1 Scaled Dot-Product Attention

在这里插入图片描述
我们称我们的特别注意为“缩放点积注意”(图2)。输入由维度dk的查询和键以及维度dv的值组成。我们计算查询的所有键的点积,每个键除以√dk,并应用softmax函数来获得值的权重。
在实践中,我们同时计算一组查询上的注意力函数,它们被打包成一个矩阵q。键和值也被打包成矩阵K和V。我们计算输出的矩阵为:

最常用的两个注意函数是加性注意[2]和点积注意(乘性注意)。点积注意与我们的算法相同,除了比例因子为1√dk。加性注意算法采用带有单一隐藏层的前馈网络计算兼容性函数。虽然两者在理论复杂性上相似,但点积注意在实践中要更快、更节省空间,因为它可以使用高度优化的矩阵乘法代码来实现。
当dk值较小时,两种机制表现相似,当dk[3]值较大时,加性注意在没有缩放的情况下优于点积注意。我们怀疑对于较大的dk值,点积的大小会变大,将softmax函数推到具有极小梯度4的区域。为了抵消这种影响,我们将点积乘以1√dk。

3.2.2 Multi-Head Attention

在这里插入图片描述
与使用dmodel维度的键、值和查询执行单一的注意力函数不同,我们发现将查询、键和值线性投影h次分别投影到dk、dk和dv维度是有益的。在这些查询、键和值的每个投影版本上,我们然后并行执行注意力函数,产生dv维输出值。这些值被连接起来并再次投影,得到最终值,如图2所示。

多头注意使模型能够共同关注来自不同位置的不同表示子空间的信息。如果只有一个注意力头,平均会抑制这一点。

投影是参数矩阵

在这项工作中,我们使用h = 8个平行注意层,或头部。对于每一个,我们使用dk = dv = dmodel/h = 64。由于每个头的维数减小,总的计算代价与全维的单头注意相似

3.2.3 Applications of Attention in our Model

在这里插入图片描述

  • 在“编码器-解码器注意”层中,查询来自前一个解码器层,内存键和值来自编码器的输出。这使得解码器中的每个位置都可以覆盖输入序列中的所有位置。这模拟了序列到序列模型中典型的编码器-解码器注意机制,如[38,2,9]。
  • 编码器包含自我注意层。在自注意层中,所有的键、值和查询都来自同一个地方,在这种情况下,就是编码器中前一层的输出。编码器中的每个位置都可以处理编码器前一层中的所有位置。
  • 类似地,解码器中的自注意层允许解码器中的每个位置关注解码器中直到并包括该位置的所有位置。我们需要防止信息在解码器中向左流动,以保持自回归特性。我们通过屏蔽(设置为−∞)softmax输入中对应非法连接的所有值来实现缩放点积注意。参见图2。

3.3 Position-wise Feed-Forward Networks

在这里插入图片描述
除了注意力子层,编码器和解码器中的每一层都包含一个完全连接的前馈网络,该网络分别且相同地应用于每个位置。这包括两个线性转换,中间有一个ReLU激活。

虽然线性变换在不同位置上是相同的,但它们在不同层之间使用不同的参数。另一种描述方法是两个核大小为1的卷积。输入输出维数为dmodel = 512,内层维数为dimensionality d f f d_{ff} dff = 2048。

3.4 Embeddings and Softmax

在这里插入图片描述
与其他序列转导模型类似,我们使用学习嵌入将输入标记和输出标记转换为维度为dmodel的向量。我们还使用常用的学习线性变换和softmax函数将解码器输出转换为预测的下一个令牌概率。在我们的模型中,我们在两个嵌入层之间共享相同的权重矩阵和pre-softmax线性变换,类似于[30]。在嵌入层中,我们将这些权重乘以√dmodel。

3.5 Positional Encoding

在这里插入图片描述
由于我们的模型不包含递归和卷积,为了使模型利用序列的顺序,我们必须注入一些关于的相对或绝对位置的信息。为此,我们将“位置编码”添加到编码器和解码器堆栈底部的输入嵌入中。位置编码具有与嵌入相同的维数dmodel,因此两者可以相加。有许多位置编码的选择,学习和固定[9]。
在这项工作中,我们使用了不同频率的正弦和余弦函数:
pos是位置,I是维度。也就是说,位置编码的每个维度都对应一个正弦波。波长形成从2π到10000·2π的几何级数。我们选择这个函数是因为我们假设它可以让模型很容易地学会通过相对位置来参与,因为对于任何固定的偏移k, P Epos+k可以表示为P Epos的线性函数。
我们还尝试使用习得位置嵌入[9],并发现这两个版本产生了几乎相同的结果(见表3 (E)行)。我们选择了正弦版本,因为它可以允许模型外推到比训练期间遇到的序列长度更长的序列。

4 Why Self-Attention

在这里插入图片描述
在这里插入图片描述
在本节中,我们将自我注意层的各个方面与循环层和卷积层进行比较,这些层通常用于映射一个可变长度的符号表示序列(x1,…, xn)到另一个等长序列(z1,…, zn), xi, zi∈Rd,如典型序列转导编码器或解码器中的隐层。激发我们使用自我关注的动机有三个。

一个是每层的总计算复杂度。另一个是可以并行化的计算量,可以通过所需的最小顺序操作数量来衡量。

第三个是网络中长期依赖关系之间的路径长度。在许多序列转导任务中,学习长期依赖关系是一个关键的挑战。影响学习这种依赖关系能力的一个关键因素是向前和向后信号在网络中必须遍历的路径长度。输入和输出序列中任意位置组合之间的路径越短,就越容易学习长期依赖关系[12]。因此,我们还比较了由不同层类型组成的网络中任意两个输入和输出位置之间的最大路径长度。

如表1所示,自注意层将所有位置与常数数量的顺序执行操作连接起来,而循环层需要O(n)个顺序操作。在计算复杂度方面,当序列长度n小于表示维数d时,自注意层比循环层更快,这是机器翻译中最先进模型使用的句子表示的最常见情况,例如单词块[38]和字节对[31]表示。为了提高涉及很长序列的任务的计算性能,自我注意可以限制为只考虑大小为r的邻域以各自的输出位置为中心的输入序列。这将使最大路径长度增加到O(n/r)。我们计划在未来的工作中进一步研究这种方法。

一个核宽k < n的卷积层不能连接所有的输入和输出位置对。这样做需要一个O(n/k)的卷积层堆栈,如果是连续的内核,或者O(logk(n))的扩张卷积[18],增加网络中任意两个位置之间的最长路径的长度。卷积层通常比循环层昂贵k倍。然而,可分离卷积[6]大大降低了复杂度,降至O(k·n·d + n·d2)。然而,即使k = n,可分离卷积的复杂性也等于自注意层和点前馈层的组合,这是我们在模型中采用的方法。

作为附带的好处,自我关注可以产生更多可解释的模型。我们检查了我们的模型的注意力分布,并在附录中介绍和讨论了示例。不仅每个注意头都能清楚地学习执行不同的任务,许多注意头还表现出与句子的句法和语义结构相关的行为。

5 Training

This section describes the training regime for our models.

5.1 Training Data and Batching

在这里插入图片描述
我们使用标准的WMT 2014英德数据集进行训练,该数据集包含大约450万句对。句子使用字节对编码[3]进行编码,它具有约37000个标记的共享源目标词汇表。对于英语-法语,我们使用了更大的WMT 2014英语-法语数据集,该数据集包含3600万个句子,并将标记分割成32000个单词-词汇表[38]。句子对按近似序列长度分批排列。每个训练批包含一组句子对,其中包含大约25000个源标记和25000个目标标记。

5.2 Hardware and Schedule

在这里插入图片描述
我们在一台有8个NVIDIA P100 gpu的机器上训练我们的模型。对于使用本文中描述的超参数的基本模型,每个训练步骤大约花费0.4秒。我们总共训练了基础模型100,000步或12小时。对于我们的大型模型(表3的底线描述),步长为1.0秒。这些大模型被训练了30万步(3.5天)。

5.3 Optimizer

在这里插入图片描述
我们使用Adam优化器[20],β1 = 0.9, β2 = 0.98和= 10−9。在整个训练过程中,我们根据以下公式改变学习率:

5.4 Regularization

在这里插入图片描述
我们在训练中使用了三种类型的正则化:

Residual Dropout 我们将dropout[33]应用于每个子层的输出,然后将其添加到子层输入并标准化。此外,我们将dropout应用于编码器和解码器堆栈中的嵌入和和和位置编码。对于基本模型,我们使用pdrop = 0.1的速率。

Label Smoothing在训练中,我们使用值ls = 0.1[36]的标签平滑。这伤害了困惑,因为模型学会了更不确定,但提高了准确性和BLEU得分。

6 Results

6.1 Machine Translation

在这里插入图片描述
在WMT 2014英语到德语的翻译任务中,大transformer模型(表2中的变压器(大))比之前报道的最好的模型(包括集成)表现超过2.0BLEU,建立了一个新的最先进的BLEU评分28.4。这个模型的配置列在表3的底部。训练时间为3.5天,使用8个P100 gpu。甚至我们的基础模型也超过了所有以前发表的模型和集合,而训练成本只是任何竞争模型的一小部分。

在WMT 2014英语到法语的翻译任务中,我们的大模型达到了41.0的BLEU分数,超过了之前发表的所有单一模型,而训练成本不到之前最先进模型的1/4。用英语-法语训练的TransFormer (大) 模型使用的辍学率Pdrop = 0.1,而不是0.3。

对于基本模型,我们使用了通过平均最后5个检查点获得的单个模型,这些检查点以10分钟的间隔写入。对于大型模型,我们平均了最后20个检查点。我们使用束流搜索,束流大小为4,长度惩罚α = 0.6[38]。这些超参数是在开发集实验后选择的。我们在推理期间将最大输出长度设置为输入长度+ 50,但在可能的情况下提前终止[38]。

表2总结了我们的结果,并将我们的翻译质量和培训成本与文献中的其他模型架构进行了比较。我们通过将训练时间、使用的GPU数量和每个GPU 5的持续单精度浮点容量的估计值相乘来估计用于训练模型的浮点运算的数量。
在这里插入图片描述

6.2 Model Variations

在这里插入图片描述
为了评估Transformer不同组件的重要性,我们以不同的方式改变了我们的基础模型,在开发集newstest2013上测量英语到德语翻译的性能变化。我们使用了前一节中描述的光束搜索,但没有使用检查点平均。我们在表3中展示了这些结果。
在表3 (A)行中,我们改变注意头的数量以及注意键和值维度,保持计算量不变,如第3.2.2节所述。虽然单头注意力比最佳设置差0.9 BLEU,但如果人头太多,质量也会下降。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在表3 (B)行中,我们观察到减少注意键的大小 d k d_{k} dk会损害模型的质量。这表明,确定兼容性并不容易,而比点积更复杂的兼容性函数可能是有益的。我们在©和(D)行中进一步观察到,正如预期的那样,越大的模型越好,dropout对于避免过拟合非常有帮助。在第(E)行中,我们将正弦位置编码替换为学习位置嵌入[9],并观察到与基本模型几乎相同的结果。

6.3 English Constituency Parsing

在这里插入图片描述
为了评估Transformer是否可以推广到其他任务,我们进行了关于英语选区解析的实验。这项任务提出了具体的挑战:产出受制于强大的结构性约束,并且明显长于输入。此外,RNN序列对序列模型还不能在小数据系统[37]中获得最先进的结果。

我们在Penn Treebank[25]的Wall Street Journal (WSJ)部分上训练了一个dmodel = 1024的4层转换器,大约40K个训练句子。我们还在半监督环境中训练它,使用更大的高置信度和BerkleyParser语料库,从大约17M个句子[37]。对于仅用于WSJ的设置,我们使用了16Ktoken的词汇表,对于半监督设置,我们使用了32Ktoken的词汇表。

我们只进行了少量的实验,以选择第22节展开集上的辍学率、注意力和残差(第5.4节)、学习率和波束大小,所有其他参数与英语-德语基础翻译模型保持不变。在推理过程中,我们将最大输出长度增加到输入长度+ 300。我们使用的束尺寸为21,α = 0.3的WSJ和半监督设置。

我们在表4中的结果表明,尽管缺乏特定于任务的调优,但我们的模型表现得令人惊讶地好,产生了比之前报道的所有模型(循环神经网络语法[8]除外)更好的结果。

与RNN序列到序列模型[37]相比,即使仅在40K句的WSJ训练集上训练,Transformer的性能也优于BerkeleyParser[29]。

Conclusion

在这里插入图片描述
在这项工作中,我们提出了Transformer,这是第一个完全基于注意力的序列转导模型,用多头自注意力取代了编码器-解码器架构中最常用的循环层。

对于翻译任务,Transformer的训练速度比基于循环层或卷积层的架构快得多。在WMT 2014英语到德语和WMT 2014英语到法语的翻译任务中,我们都达到了一个新的艺术境界。在前一项任务中,我们最好的模型甚至优于所有以前报告的集合。

我们对基于注意力的模型的未来感到兴奋,并计划将其应用于其他任务。我们计划将Transformer扩展到涉及文本以外的输入和输出模式的问题,并研究局部的受限注意力机制,以有效地处理大量输入和输出,如图像、音频和视频。使生成不那么连续是我们的另一个研究目标。

The code we used to train and evaluate our models is available at https://github.com/ tensorflow/tensor2tensor.

We are grateful to Nal Kalchbrenner and Stephan Gouws for their fruitful comments, corrections and inspiration.

Reference

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Attention Visualizations

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

来源:

@article{vaswani2017attention,
title={Attention is all you need},
author={Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N and Kaiser, {\L}ukasz and Polosukhin, Illia},
journal={Advances in neural information processing systems},
volume={30},
year={2017}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 数据库 MySQL

Linux系统分类 ^ 数据库的分类 Linux系统 Centos(获取软件包使用yum、dnf) Ubuntu(获取软件包使用apt-get) Suse 国产系统 华为 欧拉 阿里 龙蜥 腾讯 tencentOS 麒麟&#xff08;银河麒麟、中标麒麟->基于centos 优麒麟-> 基于Ubuntu &#xff09; 统…

流计算、Flink和图计算

流计算 流计算流计算概述静态数据和流数据批量计算和实时计算流计算概念流计算与Hadoop流计算框架 流计算处理流程数据处理流程数据实时采集数据实时计算实时查询服务 流计算的应用开源流计算框架StormStorm简介Storm的特点 FlinkFlink简介为什么选择Flink传统数据处理架构大数…

三年 Android 开发的技术人生,浅谈自身面试的感悟

文章素材来源于网友 本篇主要记录了一个 Android 菜瓜三年的面试之旅&#xff0c;希望对大家面试、跳槽有所帮助。 一些唠叨 从进入这行开始&#xff0c;就是听说Android端凉了&#xff0c;寒冬这又如何那又如何的事情&#xff0c;很多的风言风语缠绕着这个圈子。但是老弟觉得…

电商系统架构设计系列(三):关于「订单系统」有哪些问题是要特别考虑的?

订单系统是整个电商系统中最重要的一个子系统&#xff0c;订单数据也就是电商企业最重要的数据资产。 上篇文章中&#xff0c;我给你留了一个思考题&#xff1a;当系统在创建和更新订单时&#xff0c;如何保证数据准确无误呢&#xff1f; 今天这篇文章&#xff0c;主要聊一下&…

DM8:达梦数据库开启SQL日志sqllog

DM8:达梦数据库开启SQL日志sqllog 环境介绍1 修改配置文件sqllog.ini2 开启与关闭 DMSQLLOG2.1 开启 sql 日志记录功能2.2 查询 sql 日志记录是否开启&#xff1a;0 关闭&#xff0c;1/2/3开启);2.3 关闭 sql 日志记录功能 3 sqllog.ini 详细介绍4 更多达梦数据库使用经验总结 …

辅助驾驶功能开发-功能算法篇(3)-ACC-弯道速度辅助

1、功能架构:ACC弯道速度辅助(CSA) 2、CSA功能控制 2.1 要求 2.1.1 CSA ASM:弯道速度辅助 1. 模式管理器:驾驶员应能够激活/关闭功能 应存在处理 CSA 功能的模式管理器。模式管理器由驾驶员输入和系统状态控制。 模式管理器有两个由 CSAStatus 定义的状态。状态转换定义…

ubuntu 系统解决GitHub无法访问问题

先后试了网上两个教程,终于解决。通过修改host文件实现访问。 教程1: 1)终端输入: sudo gedit /etc/hosts 打开hosts文件; 2)使用ip查找工具查询 http://github.com和IP:http://github.global.ssl.fastly.net的ip地址并添加到hosts文件末尾; 3)关掉hosts文件,在终端…

HTTPS协议-保障数据安全【安全篇】

我们都知道由于HTTP是明文的&#xff0c;整个传输过程完全透明&#xff0c;任何人都能够在链路中监听、修改、伪造请求/响应报文。所以不能满足我们的安全要求。比我如我们上网的信息会被轻易的截获&#xff0c;所浏览的网站真实性也无法验证。黑客可以伪装成银行、购物网站来盗…

接口测试常见接口类型?

常见接口类型 1.根据协议区分 1、webService接口:是走soap协议通过http传输请求报文和返回报文都是xml格式的&#xff0c;我们在测试的时候都用通过工具才能进行调用&#xff0c;测试。可以使用的工具有Soapul、jmeter、loadrunner等; 2、http接口:是走http协议&#xff0c;…

Vue向pdf文件中添加二维码

这两天刚看到一个需求&#xff0c;简单描述一下&#xff0c;就是我们拿到一个pdf文件流&#xff08;文件流可以是后端返回的&#xff0c;也可以是从自己本地选的&#xff09;和一个url链接 &#xff0c;现在要将url链接生成二维码&#xff0c;并将这个二维码添加到这个pdf文件中…

一元线性回归分析

一元线性回归分析&#xff1a; &#xff08;1&#xff09;假设X与Y有线性相关关系&#xff0c;求Y与X样本回归直线方程&#xff0c;并求 的无偏估计&#xff1b; &#xff08;2&#xff09;检验Y和X之间的线性关系是否显著(α0.05)&#xff1b; &#xff08;3&#xff09;当Xx0…

通过电脑屏幕传输文件

简介 本文介绍一套用于通过屏幕传输文件信息的软件。 通过屏幕传输文件&#xff0c;即非接触式&#xff0c;非插入式传递文件&#xff0c;是除了常用的网络传输&#xff0c;硬盘类介质拷贝之外的文件信息传输方式&#xff0c;基本原理就是将待传输的文件转换为二维码&#xf…

SkipList(跳表)

基本概述 SkipList&#xff08;跳表&#xff09;首先是链表&#xff0c;但与传统链表相比有几点差异&#xff1a; 元素按照升序排列存储节点可能包含多个指针&#xff0c;指针跨度不同【根据元素个数不同&#xff0c;可以建立多级指针&#xff08;最多可以建立32级指针&#…

liunx优化命令之free命令

free 这里写目录标题 一、free命令描述&#xff1a;1.free命令的语法&#xff1a;2.free命令的选项&#xff1a;3.free命令的输出格式&#xff1a; 二、压力测试工具stress&#xff1a;1.工具简介&#xff1a;2.参数详解&#xff1a;3.下载压力测试工具&#xff1a; 三、模拟实…

基于51单片机设计的红外遥控器

一、项目介绍 遥控器是现代生活中必不可少的电子产品之一,目前市面上的遥控器种类繁多,应用范围广泛。而 NEC 红外遥控器协议则是目前应用最为广泛的一种协议之一,几乎所有的电视、空调等家用电器都支持该协议。 本项目是基于 51 单片机设计支持 NEC 协议的红外遥控器,实…

TPU-MLIR的环境搭建和使用

1、开发环境配置 Linux开发环境 一台安装了Ubuntu16.04/18.04/20.04的x86主机&#xff0c;运行内存建议12GB以上下载SophonSDK开发包(v23.03.01) &#xff08;1&#xff09;解压缩SDK包 sudo apt-get install p7zip sudo apt-get install p7zip-full 7z x Release_<date&…

docker数据管理---数据卷,数据卷容器

在Docker中&#xff0c;数据卷&#xff08;data volumes&#xff09;和数据卷容器&#xff08;data volume containers&#xff09;是用于在容器之间共享和持久化数据的两种不同的机制。 一、数据卷 数据卷是一个特殊的目录或目录&#xff0c;可以绕过容器文件系统的常规层&a…

CSDN 周赛 58 期

CSDN 周赛 58 期 前言1、题目名称&#xff1a;打家劫舍2、题目名称&#xff1a;小Q的鲜榨柠檬汁3、题目名称&#xff1a;收件邮箱4、题目名称&#xff1a;莫名其妙的键盘后记 前言 很多人都知道&#xff0c;CSDN 周赛的题目出自每日一练&#xff0c;甚至连用例都不会变动&…

【一起啃书】《机器学习》第九章 聚类

文章目录 第九章 聚类9.1 聚类任务9.2 性能度量9.2.1 外部指标9.2.2 内部指标 9.3 距离计算9.3.1 欧氏距离9.3.2 曼哈顿距离9.3.3 切比雪夫距离9.3.4 闵可夫斯基距离9.3.5 标准化的欧几里得距离9.3.6 马氏距离9.3.7 兰氏距离9.3.8 余弦距离9.3.9 汉明距离9.3.10 编辑距离 9.4 原…

替换CentOS 6.x系统中 X11图形界面的启动logo

这个属于定制一个系统的logo了。 网上有很多方法&#xff0c;直接修改一个是最简单的了。 看操作&#xff1a; 下载CentOS 的主题&#xff0c;网上自己搜一个喜欢的就行了。 [rootlocalhost Downloads]# tar zxvf vizta-use-it.tar.gz [rootlocalhost Downloads]# cd vizta …