transformer模型学习路线_transformer训练用的模型

Transformer学习路线

完全不懂transformer,最近小白来入门一下,下面就是本菜鸟学习路线。Transformer和CNN是两个分支!!因此要分开学习
Transformer是一个Seq2seq模型,而Seq2seq模型用到了self-attention机制,而self-attention机制又在Encoder、Decode中。
因此学习将从self-Attention->Seq2seq->Encoder-Decode->Transformer

1. 问题背景:

目前我们输入的都是一个向量,最后输出类别或者数值(例如一张图片分类或检测task)
假设现在输入变成一排向量,同时长度会改变,那该怎么解决呢?
在这里插入图片描述

【一一AGI大模型学习 所有资源获取处一一】

①人工智能/大模型学习路线

②AI产品经理入门指南

③大模型方向必读书籍PDF版

④超详细海量大模型实战项目

⑤LLM大模型系统学习教程

⑥640套-AI大模型报告合集

⑦从0-1入门大模型教程视频

⑧AGI大模型技术公开课名额

第一个例子:
词汇序列转换:一个单词对应一个向量,一个句子就是一排长度不一的向量,如何把一个单词表示成一个向量呢?
有两种做法:one-hot Encoding和Word Embeding
one-hot Encoding缺点是每个词汇之间我们看不到任何联系
Word Embedding每个词向量是有语义顺序的,画出来就会是动物在一块(dog,cat,rabbit),植物在一块(tree,flower)等
在这里插入图片描述

第二个例子:
一段声音其实就是一排向量,我们取一段语音信号作为窗口,把其中的信息描述为一个向量(帧),滑动这个窗口就得到这段语音的所有向量,一分钟有6000个声音向量
在这里插入图片描述

第三个例子:
图论、知识图谱也是一排向量,社交网络的每个节点就是一个人,节点之间的关系用线连接。每一个人就是一个向量
在这里插入图片描述

输入可以是一段文字、语音、图,那么输出是什么?

输出分为三种:

  • 一个单词/一小段语音对应一个label (下图第一行)
  • 一整个句子/语音对应一个label (下图第二行)
  • 输出多少由机器自己决定 (下图第三行)
    在这里插入图片描述
第一种:一对一(Sequence Labeling)

在这里插入图片描述

文字处理:序列标注POS tagging,每个输入的单词都输出对应的词性
语音处理:一段声音信号里面有一串向量,每个向量对应一个音标
图像处理:在社交网络中,推荐某个用户商品(可能会买或者不买)

序列标注(Sequence Labeling)问题

每个输入的单词都输出对应的词性,但是!!!当同一个单词有不同词性时,需要考虑前后文的语义(eg:I saw a saw .我看见一把锯子)
解决方法:利用滑动窗口,每个向量查看窗口中相邻的其他向量的性质。(例如红色方框的window)
但是,如果语句一长,这种方法不能解决整条语句的分析问题,即语义分析。
这就引出了 Self-attention 技术。
在这里插入图片描述

类型二:多对一

在这里插入图片描述

语义分析:一整个句子的正面评价、负面评价。
语音识别:一段语音整体识别某人的音色。
图像:给出分子的结构,判断其亲水性。

类型三:由模型自定 (seq2seq)

不知道应该输出多少个标签,机器自行决定。
翻译:语言A到语言B,单词字符数目不同
语音识别等


2.Self-Attention

与滑动窗最大的区别就是,所有单词通过Self-Attention考虑整个句子的语义
在这里插入图片描述

原理:

self-attention最终想要什么?
本质问题就是给一个输入,输出能看到所有输入的样本信息,然后计算相关性(不同权重)选择自己的注意力点。
原理:输入一个矩阵I(I可能包含多个向量a1,a2,a3,a4),分别乘以Wq,Wv,Wk得到三个矩阵QKV,每个向量a1,a2,a3,a4内部对应分别做Q*K计算相关度A,然后经过softmax转为权重A’,A’乘以V计算加权和就得到最终的结果了,最终的结果是一个数字(相关性权重)。

(此处I就相当于一个句子,而a1,a2,a3,a4就相当于句子中的每个单词)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

具体步骤参考:self-attention

如何计算相关性?
两种做法:1.做内积(最常用) 2.Additive
在这里插入图片描述


3. Multi-head Self-Attention

multi-head相当于两个输入ai,aj并行处理,有点类似CNN中的feature map多通道

分完段,各自算,再汇总, head1的qkv算head1的, 头与头之间在计算相似度时互不打扰, 每个段独立算完,再聚合

Multi-head的优点就是多样性:简单讲就是多head 计算中,每个head 可能计算 关注点不一样所看的不一样
在这里插入图片描述

在这里插入图片描述


4. Positional Encoding

对于Self-attention来说,并没有序列中字符位置的信息。例如动词是不太可能出现在句首的,因此可以降低动词在句首的可能性,但是自注意力机制并没有该能力。因此需要加入 Positional Encoding 的技术来标注每个词汇在句子中的位置信息。
原理:只需要加一个ei在输入ai上
在这里插入图片描述

那么Positional Encoding怎么获取?
1.可以通过数据训练学习得到positional encoding,类似于训练学习词向量,goole在之后的bert中的positional encoding便是由训练得到
2.正余弦位置编码。位置编码通过使用不同频率的正弦、余弦函数生成,然后和对应的位置的词向量相加,位置向量维度必须和词向量的维度一致。
在这里插入图片描述

pos表示单词在句子中的绝对位置,pos=0,1,2…,例如:Jerry在"Tom chase Jerry"中的pos=2;dmodel表示词向量的维度,在这里dmodel=512;2i和2i+1表示奇偶性,i表示词向量中的第几维,例如这里dmodel=512,故i=0,1,2…255。


对比之前没有self-attention的应用

  • 语音上
    之前使用Window滑动窗的方式来读取整段语音,要么一段语音对应一个label,要么一整段语音对应一个label,若语音片段很长,则参数量十分巨大滑动窗的方式就不适用,因此引入Self-Attention。
    将每个语音片段放入Self-Attention种来学习前后语音片段的语义38e48eba9154f2af7632f62.png)

- 图像上

CNN中一张图片可看做一个很长的向量。它也可看做一组向量:一张5 ∗ 10的RGB图像可以看做5 ∗ 10的三个(通道)矩阵,把三个通道的相同位置看做一个三维向量。
在这里插入图片描述

在这里插入图片描述

- 图论GNN
在这里插入图片描述

自注意力机制的缺点就是计算量非常大,因此如何优化其计算量是未来研究的重点。

5. Self-Attention VS CNN

Self-Attention在全局中找到相关的pixel,就好像CNN中的窗口(reception field)是自动学出来的一样

例如:1的那个pixel产生query,其他的各个pixel产生key。在做inner-product的时候,考虑的不是一个小的范围,而是一整张图片。
在这里插入图片描述

self-attention是一种复杂化的CNN,在做CNN的时候是只考虑感受野红框里面的资讯,而感受野的范围和大小是由人决定的,但是self-attention由attention找到相关的pixel,就好像是感受野的范围和大小是自动被学出来的
在这里插入图片描述

参考paper: On the Relationship between Self-Attention and Convolution Layers

如果用不同的数据量来训练CNN和self-attention,会出现不同的结果。
数据量少用CNN,数据量多用Self-Attention


6. Self-Attention VS RNN

RNN没有办法平行处理,只能存在Memory里一步步来回传递
而Self-Attention每个向量做QKV,只需要不同向量间相互match就可以,可以平行处理四个输出
在这里插入图片描述

------------------------------------------下面更新Transform--------------------------------------

1.Seq2seq

Transformer 就是一个 Seq2seq (Sequence-to-sequence) 的模型

Seq2seq属于第三种输出类别:Input a seqence,output a sequence(The output length is determined by model) 输入一排向量,输出长度任意由机器自己决定

1.1 背景

第一个例子
语音识别。输入的语音信号就是一串向量,输出就是语音信号对应的文字。但是语音信号的长度和输出的文字个数并无直接联系,因此需要机器自行决定。机器翻译、语音翻译也是如此
在这里插入图片描述

同时,seq2seq也可以训练聊天机器人,输入一个‘Hi’,Seq2seq输出一长句‘Hello!How are you today’
在这里插入图片描述
各式各样的NLP问题,往往都可以看作QA问题,例如问答系统(QA),让机器读一篇文章,读入一个问题,就输出一个答案。而该问题就可以用 Seq2seq 的模型来解决:
在这里插入图片描述

第二个例子
语法剖析:
输入一段文字,机器要做的就是产生一个树状结构,告诉我们哪些文字或单词组合起来是名词,哪些组合是形容词等
在这里插入图片描述

第三个例子
多标签分类 (Multi-label Classification)
每个事物可以对应很多种类
比如输入一篇文章,机器帮你自己决定它属于多少个class(class9,class7,class13)
在这里插入图片描述

2. seq2seq原理(Encoder-Decoder)

一般Seq2seq会分成两部分:Encoder、Decoder

2.1 Encoder部分:

Encoder 要做的事情就是给一排向量,输出一排向量
Encode这部分可利用多种模型实现,如 CNN, RNN 等。(左上角图)
本文只讲Transformer 中的 Encoder ,Bert就是Transformer的Encoder,里面由多个Block组成进行不断输入输出一排向量(右上角图)

我自己简单概括就是:(左下,右下两张图)
输入一排向量和Positional Encoding位置信息------>送入Multi-head Attention----->输入的这排向量做self-attention(拿一个head举例)与输入做残差和Layer Norm-------->送入FC----->再将FC的输入和输出做残差和Layer Norm------>最终输出一排向量(多次重复Block就得到了输出)

整张图流程如下:图很重要!!!!!!!在这里插入图片描述

在Transformer Encode里每一个Block具体步骤如下:
1.输入一排向量B后送入Self-Attention得到输出一排向量A,两者做残差A+B
2.将得到的A+B的结果做Layer Norm(LN与BN区别:BN是按维度计算,LN是按行计算)

在这里插入图片描述

3.将LN归一的结果送入FC层,并且也做残差,将FC做完残差的结果送入LN层,最后LN输出的结果就是最终Encode输出的结果
在这里插入图片描述

Tips:
1.残差结构是为了解决梯度消失问题,可以增加模型的复杂性。
2.batchnorm是对一批样本中进行归一化,而layernorm是对每一个样本进行一次归一化
3.Encoder的输入包含两个,是一个序列 + positional embedding,用正余弦函数对序列中的位置进行计算(偶数位置用正弦,奇数位置用余弦)

LN与BN:一个按行,一个按列
在这里插入图片描述

参考paper:为什么要用LN而不用BN?最后提出PowerNorm
PowerNorm:Rethinking BatchNormalization in Transformers


2.2 Decoder部分:

先假设Decoder是一个独立的块,研究它的输入和输出。

Decoder的输入分为两个:一个是Encoder部分的输出,另一个是begin token(类似于标志位,用one-hot表示)
输出是:对应位置的输出词的概率。

Decoder分为两种模式:Autoregression (AT) / Non-Autoregression (NAT),而Transformer中用的是Autoregression(AT), NAT部分可选择不看

1. Autoregressive(自归)
如果把decoder当成一个黑匣子,这个黑匣子先接受一个特殊符号start,把 Encoder 的输出先读进去,依次向decoder输入其中的向量,经过decoder产生一个向量,通过softmax得到一个向量的score,选取score最高的就是这个输出,再接着Decoder的输入将是自己前一个输出(有点类似RNN记住前一个信息),最终输出一个end Token终止符号

输入:一个是Encoder部分的输出,另一个是begin token
输出是:对应位置的输出词的概率。
在这里插入图片描述

但是当有一个文字输出错误,接下来Decoder就会用这个错误的结果【一步错步步错】:
在这里插入图片描述

而Teacher Forcing 最常见带来的问题就是 Exposure Bias,解决方法在第四点

2. Not-Autoregressive (NAT 非自归)
Autoregressive是一个一个输入一个一个输出
Not-Autoregressive是输入一排start,最后直接输出一整个句子
那么如何确定NAT decoder的输出长度呢?
1.可以用一个预测网络预测输出的长度,再进行句子的输出
2.也可以一直进行输出,然后通过end来把句子截断
在这里插入图片描述

NAT优点:并行处理(可以一起输入,然后一起进行输出),速度快;输出长度可控。
缺点:NAT的表现往往逊色于AT:多模态问题 Multi-modality.

可以认为AT和NAT在Encoder端是完全一样的,只是在Decoder端不同,AT在Decoder时通过此前所有时刻的结果来预测下一时刻的生成词,而NAT在Decoder时通过一个隐变量来生成每一时刻的结果,使得整个解码过程独立并行,关键就在于怎么定义这个隐变量。

实际上Decoder并不是一个独立的块,它是与Encoder连起来的,下面研究在Transformer中是怎么连接起来的,参考下面第二点的Cross Attention。


3. Transformer 中Encoder和 Decoder如何连接

下图就是Transformer具体结构,采用Encoder-Decoder架构
在这里插入图片描述

Transformer的Decoder与Encoder的不同在于两个地方:
1.Self-Attention变成了Masked Self-Attention
2.Decoder多一层Cross Attention

1.Self-Attention变成了Masked Self-Attention

普通的Self-Attention是整个一排向量送进去,输出是整个一排向量,而Masked Self-Attention输入是一个一个输进去,输出只能考虑先前输入向量,不考虑之后的,是一个一个输出的
例如,想要输出b2时,Masked Self-Attention只考虑a1,a2的输入,a3,a4在b2输出之后因此不考虑
在这里插入图片描述

2、Decoder多一层Cross Attention

Encoder和Decoder如何相互连接?

Cross Attention 位于Decoder内,是连接Encoder和Decoder的桥梁,它有三个输入,其中两个来自于Encoder,一个来自Decoder。
两个encoder的输出+一个decoder的输入送到Multi-head self-Attention中
在这里插入图片描述

Cross Attention 跨越注意力
Cross Attention 机制不是 Transformer,其先于 Transformer 出现,后来出现了 Self-attention 才有了 Transformer
Decoder这边输入Start到Masked Self-Attention中产生一个Q,这个Q与Encoder部分做self-Attention后产生的K计算相关性得到α,α再和v做点乘后得到的结果送入FC
在这里插入图片描述


4. 训练和推理

Transformer的Decoder需要分为_训练部分推理部分_来讨论。

Encoder模块的执行过程相同,Encoder可以并行计算,一次性Encoding出来.
Decoder模块的执行过程不同,训练流程是一次输出b个序列中所有的单词的预测结果,而推理流程则是一次生成b个序列中一个单词的预测,需要多步来预测序列中所有的单词。

自己理解就是训练时的输入是Ground Truth,预测的输入是上一时刻的输出,训练使用 Teacher Forcing 并行训练,推理时串行

1.训练部分
Decoder在训练时会输入Groud Truth,叫做Teacher Forcing
Train类似于分类,输出类别最大的,引入交叉熵cross entropy记录预测的字和真实label
在这里插入图片描述

2.推理部分:
Decoder在推理时会输入上一次Decode的输出
Decoder推理不是一次把所有序列解出来的,而是一个一个解出来的,因为要用上一个位置的输出当作attention的Q

举例子:训练和推理阶段
在这里插入图片描述

Step 1:
初始输入: 起始符start + Positional Encoding(位置编码)
中间输入:Encoder Embedding
最终输出:产生预测“机”

Step 2:
初始输入:起始符start + “机”+ Positonal Encoding
中间输入:Encoder Embedding
最终输出:产生预测“器”

Step 3:
初始输入:起始符start + “机”+ “器”+ Positonal Encoding
中间输入:Encoder Embedding
最终输出:产生预测“学”

Step 4:
初始输入:起始符start + “机”+ “器”+ “学” +Positonal Encoding
中间输入:Encoder Embedding
最终输出:产生预测“习”

训练阶段相当于step1-4可以同时进行,因为我们知道最终输出是“机器学习”,而在推理阶段只能一步一步进行,只能根据上一步来预测下一步,因为不知道最终输出是什么

在这里插入图片描述


5. Tips

1.Copy Mechanism 复制机制
对很多任务而言,也许Decoder无需产生输出,也许是从输出里面“复制”一些东西出来。
例如在聊天机器人中,对于用户输入的某人名字,机器无需进行处理,直接输出即可(比如库洛洛);或者复述一段不能识别的文字;亦或是提取大量文章中的摘要
在这里插入图片描述

参考paper: Get To The Point: Summarization with Pointer-Generator Networks

2.Guided Attention 语音识别
常用于语音识别、语音合成
机器连读四个单词可能发音没有问题,单独读一个单词可能会产生漏读,因此就需要Guided Attention,要求机器在做Attention时是有固定方式的
例如:要求语音合成时,机器是从左向右而不是乱序的
在这里插入图片描述

具体做法: Monotonic Attention , Location-aware attention

3. Beam Search 束搜索
每次找分数最高的,连成的红色路径叫做Greedy Decoding
若稍微损失点最开始的输入,但最终结果是绿色路径比红色好,因此这个技术叫Beam Search
在这里插入图片描述

4.Exposure Bias
Teacher Forcing 最常见的问题就是 Exposure Bias
当Train时,Decoder看到Ground Truth ,而在test时,Decoder看到错误的东西,这种不一致的现象叫做 Exposure Bias
在这里插入图片描述

如何解决 Teacher Forcing 带来的问题?
————Scheduled Sampling
在train中加一些错误就好了,类似“加入扰动”的方式来解决——scheduled sampling(定时采样),这种方式会影响Transformer的并行化。

参考paper:
1.Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks
2. Scheduled Sampling for Transformers
3.Bridging the Gap between Training and Inference for Neural Machine Translation

Related:

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解
  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望
阶段3:AI大模型应用架构实践
  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景
学习计划:
  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

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

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

相关文章

Python | Leetcode Python题解之第205题同构字符串

题目: 题解: class Solution:def isIsomorphic(self, s: str, t: str) -> bool:dicts Counter(s)dictt Counter(t) if list(dicts.values()) ! list(dictt.values()):return Falsefor i in range(len(s)):inds list(dicts.keys()).index(s…

【postgresql】 数据类型

数字类型 名字存储尺寸描述范围smallint2字节小范围整数-32768 ~32767integer4字节整数的典型选择-2147483648 ~ 2147483647bigint8字节大范围整数-9223372036854775808 ~ 9223372036854775807decimal可变用户指定精度,精确最高小数点前131072位,以及小…

python sklearn机械学习模型-回归

🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…

使用SpringBoot整合Servlet

一、SpringBoot和Servlet的整合 1、用注解WebServlet配置Servlet映射 创建一个SpringBoot的web工程,在工程用创建一个Servlet 2、在SpringBoot的启动类上加注解ServletComponentScan 二、额外的方式 1、不使用WebServlet配置Servlet映射 创建一个SpringBoot工…

数据资产治理的智能化探索:结合云计算、大数据、人工智能等先进技术,探讨数据资产治理的智能化方法,为企业提供可靠、高效的数据资产解决方案,助力企业提升竞争力

一、引言 在信息化时代,数据已成为企业最重要的资产之一。随着云计算、大数据、人工智能等先进技术的飞速发展,数据资产治理面临着前所未有的机遇与挑战。本文旨在探讨如何结合这些先进技术,实现数据资产治理的智能化,为企业提供…

零知识学习之DPDK与RDMA(3)—— 认识DPDK(3)

接前一篇文章:零知识学习之DPDK与RDMA(2)—— 认识DPDK(2) 本文内容参考: 《Linux高性能网络详解 从DPDK、RDMA到XDP》 刘伟著 人民邮电出版社 https://blog.51cto.com/u_15301988/5181201 特此致谢&…

微软账户和本地账户有什么区别?如何切换登录账户?

Windows 操作系统是目前世界上比较流行的操作系统之一,在使用 Windows 系统的时候都需要我们进行登录,其中我们可以使用微软账户或者本地账户进行登录,那本地账户和微软账户有什么区别?下面就带大家了解一下微软账户和本地账户。 …

【Threejs进阶教程-着色器篇】2. Uniform的基本用法与Uniform的调试

Uniform的基本用法与Uniform的调试 关于本Shader教程优化上一篇的效果优化光栅栏高度让透明度和颜色变的更平滑pow()函数借助数学工具更好的理解函数 Unifoms简介编写uniforms修改片元着色器代码借助lil.gui调试uniforms使用uniform控制颜色继续在uniforms添加颜色在着色器中接…

git配置ssh-keygen -t rsa -c“xxxx@xxxx.com.cn出现Too many arguments.解决办法

git配置ssh-keygen -t rsa -c"xxxxxxxx.com.cn出现Too many arguments.解决办法 问题描述 配置Git公钥私钥时候输入命令ssh-keygen -t rsa -c"xxxxxxxx.com.cn出现Too many arguments. 解决办法: 提示输入的参数格式不正确,需要注意这几个地…

甄选版“论软件系统架构评估”,软考高级论文,系统架构设计师论文

论文真题 对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,…

HexPlane: A Fast Representation for Dynamic Scenes(总结图)

图1。用于动态三维场景的 Hex刨面。我们没有从深度 MLP 中回归颜色和不透明度,而是通过 HexPlann 显式地计算时空点的特征。配对一个微小的 MLP,它允许以上100倍加速匹配的质量。 图2。方法概述。Hex刨包含六个特征平面,跨越每对坐标轴(例如…

四个Python代码片段,全面掌握下划线 “_”的妙用!

在Python的世界里,下划线“_”不仅是一个简单的符号,它还承载了许多编程的小技巧,可以让你的编码工作变得更加轻松和高效。 1、快速回顾:下划线在控制台的神秘力量 当你在Python控制台进行连续计算时,知道如何快速引…

【C语言】顺序表经典算法

本文介绍的是两道顺序表经典算法题目。 移除元素 (来源:LeetCode) 题目 分析 我们很容易想到的办法是去申请一个新的数组,遍历原数组不等于val就把它拿到新数组里。但是题目的要求是不使用额外空间,所以这种方法我们…

【Koa】KOA 基础-掌握基于koa2搭建web应用的基础

目录 KOA 基础框架介绍与环境搭建koa2 基本介绍Node.JS 环境安装创建 Hello World 程序 Web 应用开发基础处理get请求参数处理post请求参数响应一个页面处理静态资源 中间件基本概念和执行过程中间件概念理解Koa 中间件执行模型-洋葱圈模型Koa洋葱圈设计理解 用 koa-body 处理 …

Tekla Structures钢结构详图设计软件下载;Tekla Structures高效、准确的合作平台

Tekla Structures,它不仅集成了先进的三维建模技术,还融入了丰富的工程实践经验,为设计师、工程师和建筑商提供了一个高效、准确的合作平台。 在建筑项目的整个生命周期中,Tekla Structures都发挥着举足轻重的作用。从规划阶段开始…

朋友圈运营必备!一键转发和自动转发轻松搞定!

你还在手动发布多个微信号的朋友圈吗? 现在,就教你一招,让你轻松实现一键转发和自动转发朋友圈! 首先,我们需要在个微管理系统上登录自己的微信号,以便进行统一管理。这个系统可以多个微信号同时登录&…

【长亭WAF(雷池)——网站保护之“动态防护”】

在当今的网络安全环境中,Web应用防火墙(WAF)扮演着至关重要的角色。 它们不仅能够防御常见的Web攻击,如SQL注入、跨站脚本攻击(XSS)等,还能够应对日益复杂的网络威胁。 作为业内领先的Web安全解…

苹果手机怎么刷机?适合小白的刷机办法!

自己的苹果手机用时间长了,有些人想要为自己的手机重新刷新一下,但又不知道怎么刷机。不要慌现在就来给大家详细介绍一下苹果手机怎么刷机,希望可以帮助到大家。 iPhone常见的刷机方式,分为iTunes官方和第三方软件两种刷机方式。 …

cv2.cvtColor的示例用法

-------------OpenCV教程集合------------- Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库) OpenCV教程01:图像的操作(读取显示保存属性获取和修改像素值) OpenCV教程02:图像处理…

代码随想录Day70(图论Part06)

108.冗余连接 题目:108. 冗余连接 (kamacoder.com) 思路:每次更新输出的边,来保证删除的是输入中最后出现的那条边。关键是,我要知道哪条边可以删除,而且是在join的时候就判断 尝试(难得AC) im…