注意力机制(Q,K,V)基本概念

transformer中对于QKV的个人理解 上面这个transformer中的注意力公式,相信大家不会陌生。公式并不复杂,但是why?为什么是这个公式,为什么大家都说之前了解transformer的时候,对于QKV的设定感到很奇怪,后来慢慢接受了这个设定,今天记录一下自己的理解。 总结一下核心是新词向量矩阵包含了位置编码和其他词的上下文信息的一组信息的词向量。 阅读详情
AI摘要

本文详细介绍了注意力机制的概念,包括注意力提示的自主性和非自主性、注意力汇聚的非参和带参数形式,以及评分函数如高斯核和加性/缩放点积的应用。还讨论了遮蔽softmax如何控制注意力范围。

一、注意力提示

我们使用偏日常的注意力提示引入注意力机制

1.1概念

  1. 查询 query
    =自主性的提示
    =随意的

  2. 键 key
    = 非自主性的提示
    =不随意的

  3. 值 value
    = 感觉输入
    值和键是成对的

注意:此处的随意/不随意中的意是意志的意

1.2生活中的注意力提示

  1. 非自主性提示
    在这里插入图片描述
  2. 自主性提示
    在这里插入图片描述
    人的意志就是自主性的提示,引导注意力指向了书。当无意识时,由于突出的非自主性提示(杯子),引导注意力指向了杯子。
    此时,人的意志为query,杯子、书等物品为key,最终注意力的去向为value

1.3注意力机制基本框架

在这里插入图片描述
注意力机制通过注意力汇聚将查询(自主性提示)和键(非自主性提示)结合在一起,实现对值(感官输入)的选择倾向

小结

  • 受试者使用非自主性和自主性提示有选择性地引导注意力。前者基于突出性,后者则依赖于意识。
  • 注意力机制与全连接的层或汇聚层的区别:增加了自主性提示

二、注意力汇聚

2.1概念

查询(自主提示)和键(非自主提示)之间的交互形成了注意力汇聚;注意力汇聚有选择地聚合了值(感官输入)以生成最终的输出

2.2非参注意力汇聚

2.2.1平均汇聚

  1. 公式
    f ( x ) = 1 n ∑ i = 1 n y i (1) f(x)={1\over n}\sum_{i=1}^n y_i \tag{1} f(x)=n1​i=1∑n​yi​(1)

  2. 结果
    在这里插入图片描述
    观察可知"查询-键"对越接近,注意力汇聚的注意力权值越高

  3. 缺点
    忽略了输入 x x x

2.2.2Nadaraya-Waston核回归

  1. 改进
    Nadaraya-Waston核回归比平均汇聚更优越的地方在于,其考虑了输入 x x x的位置。根据输入位置x对数据y进行加权
  2. 公式
    f ( x ) = ∑ i = 1 n K ( x − x i ) ∑ j = 1 n K ( x − x j ) y i , (2) f(x) = \sum_{i=1}^n \frac{K(x - x_i)}{\sum_{j=1}^n K(x - x_j)} y_i, \tag{2} f(x)=i=1∑n​∑j=1n​K(x−xj​)K(x−xi​)​yi​,(2)
    Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。
  3. 优点
    回归具有一致性:如果有足够的数据,模型将收敛到最优解(非参方法的特点)
    注意: 其中K为高斯核函数,可自定义

2.3通用注意力汇聚公式

受K核的启发,可以将注意力汇聚公式重写为更通用的形式(适用于非参、带参)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i , (3) f(x) = \sum_{i=1}^n \alpha(x, x_i) y_i,\tag{3} f(x)=i=1∑n​α(x,xi​)yi​,(3)
其中x是查询, ( x i , y i ) (x_i,y_i) (xi​,yi​)是键值对。 比较平均汇聚(1)和通用公式(3) , 注意力汇聚是 y i y_i yi​的加权平均。 将查询x和键 x i x_i xi​之间的关系建模为 注意力权重 α ( x , x i ) \alpha(x,x_i) α(x,xi​), 这个权重将被分配给每一个对应值 y i y_i yi​。

对于任何查询,模型在所有键值对注意力权重 α ( x , x i ) \alpha(x,x_i) α(x,xi​)都是一个有效的概率分布: 它们是非负的,并且总和为1。


例子

可以自定义一个高斯核为
K ( u ) = 1 2 π exp ⁡ ( − u 2 2 ) K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2}) K(u)=2π ​1​exp(−2u2​)
将其带入(3)中,可以得到注意力汇聚公式如(4)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( x − x i ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( x − x j ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( x − x i ) 2 ) y i . (4) \begin{split}\begin{aligned} f(x) &=\sum_{i=1}^n \alpha(x, x_i) y_i\\ &= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}(x - x_i)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}(x - x_j)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}(x - x_i)^2\right) y_i. \end{aligned}\end{split} \tag{4} f(x)​=i=1∑n​α(x,xi​)yi​=i=1∑n​∑j=1n​exp(−21​(x−xj​)2)exp(−21​(x−xi​)2)​yi​=i=1∑n​softmax(−21​(x−xi​)2)yi​.​​(4)
在(4)中,给出的查询x越接近某个键 x i x_i xi​,则分配给这个键对应值 y i y_i yi​的注意力权重就会越大,也就获得了更多的注意力。

特别的,Nadaraya-Watson核回归是一个非参数模型。因此将K带入后的通用注意力汇聚模型也为非参的模型。如果带入一个带参模型,则为带参的注意力汇聚模型。

2.4带参数注意力汇聚

将(3)带入一个带参模型,则为带参的注意力汇聚模型。如公式(5)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( ( x − x i ) w ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( ( x − x j ) w ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( ( x − x i ) w ) 2 ) y i . \begin{split}\begin{aligned}f(x) &= \sum_{i=1}^n \alpha(x, x_i) y_i \\&= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}((x - x_i)w)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}((x - x_j)w)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}((x - x_i)w)^2\right) y_i.\end{aligned}\end{split} f(x)​=i=1∑n​α(x,xi​)yi​=i=1∑n​∑j=1n​exp(−21​((x−xj​)w)2)exp(−21​((x−xi​)w)2)​yi​=i=1∑n​softmax(−21​((x−xi​)w)2)yi​.​​

小结

  1. 注意力汇聚可以分为非参数型和带参数型
  2. Nadaraya-Watson核回归中的高斯核函数为注意力汇聚函数
  3. Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。从注意力的角度来看,分配给每个值的注意力权重取决于将值所对应的键和查询作为输入的函数

至此注意力机制的基本概念介绍完毕,接下来介绍注意力机制的进阶概念


三、注意力评分函数

3.1概念

在通用注意力汇聚公式介绍时,我们自定义了一个高斯核,并将其带入通用注意力汇聚公式中
K ( u ) = 1 2 π exp ⁡ ( − u 2 2 ) K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2}) K(u)=2π ​1​exp(−2u2​)
将其带入(3)中,可以得到注意力汇聚公式如(4)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( x − x i ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( x − x j ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( x − x i ) 2 ) y i . (4) \begin{split}\begin{aligned} f(x) &=\sum_{i=1}^n \alpha(x, x_i) y_i\\ &= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}(x - x_i)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}(x - x_j)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}(x - x_i)^2\right) y_i. \end{aligned}\end{split} \tag{4} f(x)​=i=1∑n​α(x,xi​)yi​=i=1∑n​∑j=1n​exp(−21​(x−xj​)2)exp(−21​(x−xi​)2)​yi​=i=1∑n​softmax(−21​(x−xi​)2)yi​.​​(4)
其中x为查询, x i x_i xi​为键, y i y_i yi​为值

通过观察可得,可以将K的指数部分 − u 2 2 -\frac{u^2}{2} −2u2​视为注意力评分函数。
即注意力汇聚的输出可以分为以下三个步骤:

  1. 通过注意力评分函数计算键 x i x_i xi​和x的得分
  2. 将得分作为softmax函数的输入
  3. softmax计算后将得到与键对应的值的概率分布(即注意力权重)
  4. 计算注意力权重与值的加权和

引入注意力评分函数的注意力机制框架如图所示
引入注意力评分函数的注意力机制框架

3.2例子

除了高斯核函数K的指数部分外,还有加性注意力、缩放点积注意力可作为评分函数

  1. 加性注意力
  • 当查询和键是不同长度的矢量使适用
  1. 缩放点积注意力
  • 计算效率更高
  • 查询和键有相同长度

四、遮蔽softmax

并非所有值都应该被纳入到注意力汇聚中。可以指定一个有效序列长度,使masked_softmax滤去超出范围的部分

三+四小结

  1. 注意力汇聚从参数角度上可分为非参和带参。从结构上,注意力汇聚函数可以拆分为评分函数+softmax函数。注意力汇聚函数可以表示为
    h = ∑ i s o f t m a x ( s c o r e ( q , k i ) ) ∗ v i h=\sum_i softmax(score(q,k_i))*v_i h=i∑​softmax(score(q,ki​))∗vi​

  2. 将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作。

  3. 当查询和键是不同长度的矢量时,可以使用可加性注意力评分函数。当它们的长度相同时,使用缩放的“点-积”注意力评分函数的计算效率更高

Transformer 01:自注意力机制Q,K,V详解 在深度学习领域,一个神秘且强大的概念——自注意力机制(Self-Attention Mechanism),近年来成为了许多突破性成果的幕后英雄。从自然语言处理(NLP)到计算机视觉,自注意力机制正逐渐成为构建高效、强大模型的关键。但它究竟是什么?又是如何工作的?接下来将用通俗易懂的理解解释Transformer的工作原理。 阅读详情

相关推荐

注意力机制QKV在GAT(Graph Attention Network)的体现

GAT(Graph Attention Network)被称为注意力机制的一种图神经网络,它使用了注意力机制的思想。 在GAT中,每个节点与其邻居节点之间的关系被建模为具有不同权重的注意力权重。这就涉及到了注意力机制中的Q(查询)、K(键)和V(数值)的概念。 在GAT中,Q、K和V是通过线性变换从节点的特征向量中获得的,那么就和自注意力机制self-attention一样,是和节点的特征向量同源的,也就是Q、K、V都是来源于节点的特征向量,只不过Q、K、V是节点的特征向量的线性变换的产物罢了。 这些变换将

努力学习的DS 1503

transformer中QKV的通俗理解(渣男与备胎的故事)

transformer中QKV的通俗理解(渣男与备胎的故事) Attention is all you need

Weary_PJ的博客 7万+

《Attention Is All You Need》注意力机制公式中Q,K,V的理解

一、概述 《Attention Is All You Need》是一篇关于注意力机制里程碑的文章,从2017年发表至今2020年7月已经获得了上万的引用。该文的两大亮点一是提出了一个几乎仅依靠注意力来完成机器翻译的模型Transformer,推动了NLP的发展,另外一个亮点是改进了点积注意力(Dot-Product Attention),加入了一个缩放因子,提出了可伸缩点积注意力(Scaled Dot-Product Attention)。本人在阅读了《Attention Is All You Need》和

Chermack的博客 2万+

[LLM] 自然语言处理 ----- Attention机制中的Q,K,V介绍

注意力机制就是要通过训练得到一个加权,自注意力机制就是要通过权重矩阵来自发地找到词与词之间的关系。 Q就是词的查询向量,K是“被查”向量,V是内容向量。 简单来说一句话:Q是最适合查找目标的,K是最适合接收查找的,V就是内容,这三者不一定要一致,所以网络这么设置了三个向量,然后学习出最适合的Q, K, V,以此增强网络的能力。 因此肯定需要给每个input定义tensor,然后通过tensor间的乘法来得到input之间的关系。那这么说是不是给每个input定义...

摩登都市天空---专栏 2万+

如何具体理解Self Attention中的Q、K、V以及计算过程

如何具体理解Self Attention中的Q、K、V以及计算过程

xfysq_的博客 5406

固定资产报废的损失鉴定怎么做?

在社会生产的日常中,企业经常会遇到固定资产报废的损失鉴定,那么怎么去做鉴定?哪些情况下能申请固定资产报废损失鉴定呢? 今天,华碧鉴定就和大家说一说固定资产报废损失鉴定那些事儿。 符合下列条件之一的固定资产可申请报废: 1、使用年限过长,功能丧失,完全失去使用价值,或不能使用并无修复价值的; 2、产品技术落后,质量差,耗能高,效率低,已属淘汰且不适于继续使用,或技术指标已达不到使用要求的; 3、严重损坏,无法修复的或虽能修复,但累计修理费已接近或超过市场价值的; 4、主要附件损坏,无.

weixin_50362670的博客 2114

注意力机制

它需要三个指定的输入Q(query)、k(key)、V(value),然后通过公式得到注意力的计算结果,这个结果代表 query 在 key 和 value 作用下的表示。通常这个计算表达式是多样的Q、K、V的比喻解释假如有一个问题:给出一段文本,使用一些关键词对它进行描述为了方便统一正确的答案,这道题可能预先已经给大家写出一些关键字作为提示。其中这些给定的提示词就可以看作为 key,而整个文本信息就相当于是 query。而 value 可以比作你看到这段文本信息之后自己得到的答案信息。

qq_51691366的博客 781

从DMD芯片到3D视觉革命:揭秘DLP工业投影光机的核心技术

本文深入解析了DMD芯片在DLP工业投影光机中的核心技术应用,揭示了其如何通过3D结构光技术实现微米级精度。从DMD芯片的机械设计到工业级光机的特殊优化,再到光固化3D打印和系统集成,展现了DLP技术在工业自动化和智能制造中的革命性作用。

weixin_29048775的博客 509

注意力机制介绍

注意力机制介绍 什么是注意力: 我们观察事物时,之所以能够快速判断一种事物(当然允许判断是错误的), 是因为我们大脑能够很快把注意力放在事物最具有辨识度的部分从而作出判断,而并非是从头到尾的观察一遍事物后,才能有判断结果. 正是基于这样的理论,就产生了注意力机制. 什么是注意力计算规则: 它需要三个指定的输入Q(query), K(key), V(value), 然后通过计算公式得到注意力的结果, 这个结果代表query在key和value作用下的注意力表示. 当输入的Q=K=V时, 称作

junjunzai123的博客 2279

Linux-BSP-WIFI驱动移植与调试实战——以RTL8189FS为例

本文以RTL8189FS为例,详细介绍了Linux BSP中WiFi驱动移植与调试的全流程。涵盖硬件原理图分析、内核配置、设备树适配、驱动编译加载及问题排查等关键步骤,提供实用的调试技巧和解决方案,帮助开发者高效完成嵌入式WiFi驱动开发。

moon9的博客 396

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4494

Transformer核心—自注意力机制

本文介绍了Transformer模型中的核心机制——自注意力机制。首先分析了传统RNN和CNN在处理序列数据时的局限性,进而引出注意力机制的创新思路。自注意力机制通过Query、Key、Value三个向量分别表示查询、标识和内容角色,计算词与词之间的相似度得分,经softmax归一化后加权求和得到最终输出。文章还详细阐述了多头注意力机制,通过将注意力分成多个"头"来捕捉不同特征,提高模型表达能力。最后展示了PyTorch中多头注意力层的实现代码。全文清晰阐述了自注意力机制的计算过程及其优

2302_80945043的博客 955

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

算法如诗的博客 5583

Transformer多头注意力机制中Q,K,V分别代表什么?

最近在学习Transformer这一深度学习模型架构,随手记录一下知识点,以防忘记,在阅读本篇文章前,读者需事先了解Transformer的基本结构和概念。

weixin_45720876的博客 3310

Codex 100个真实案例 - 用AI自动生成API测试用例(接口测试全覆盖)

API 测试是保障后端质量的关键环节,但手写测试用例既枯燥又容易遗漏。本案例将展示如何用 Codex 从 Swagger/OpenAPI 规范文档自动生成 pytest 测试用例——包括正常流程测试、边界值测试、异常参数测试、性能压力测试,还能自动生成 Mock 数据和精美的 HTML 测试报告。全程自然语言驱动,让 API 测试覆盖率从 0 飙到 90%+!

yueyeguzhuo的专栏 269

Python 3.13.7 (64-bit)安装弹窗提示:Setup failed:0x80070643 - 安装时发生严重错误...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 2109

通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?

说一下Attention中的QKV是什么,再举点例子说明QKV怎么得到。还是结合例子明白的快。 Attention中Q、K、V是什么? 首先Attention的任务是获取局部关注的信息。Attention的引入让我们知道输入数据中,哪些地方更值得关注。 对于Q(uery)、K(ey)、V(alue)的解释,知其然而知其所以然。 首先Q、K、V都源于输入特征本身,是根据输入特征产生的向量,但目前我们现在无需关注是如何产生这组向量的。 V可以看做表示单个输入特征的向量。当我们直接把一组V输入到网络中进行训练,那

weixin_44371912的博客 5万+

Xilinx DDR3 MIG IP核设计--汇总导航

快速上手Xilinx DDR3 IP核----汇总篇

孤独的单刀 2万+

【注意力机制2-2】-深入理解 注意力机制 的 Q、K、V 机制

Transformer 是现代自然语言处理(NLP)和计算机视觉(CV)任务中的核心架构,而其自注意力(Self-Attention)机制是 Transformer 成功的关键。本文将重点解析 Q(Query)、K(Key)、V(Value)三个矩阵的作用及其计算方法。

wangshangshang09的博客 6607

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Transformer的Q、K、V和Mutil-Head Self-Attention(超详细解读)

举个例子我们在某宝上搜索东西,输入的搜索关键词就是Q,商品对应的描述就是K,Q与K匹配成功后搜索出来的商品就是V。Q、K、V经过Linear然后经过h个Self-Attention,得到h个输出,其中h指的是注意力的头数。更多的头数意味着更强大的模型能力,比如LLM大模型Baichuan-13B中的head数目是40,而Baichuan-7B中的head数目是32。是三个可训练的参数矩阵,输入矩阵X分别与三个矩阵参数进行相乘,相当于进行一次线性变换,得到了Q、K、V。,那Q、K、V是怎么来的呢?

weixin_45303602的博客 4万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

如何理解attention中的Q、K、V

Q:QueryK:KeyV:Value其实是三个矩阵,矩阵如果表示为LxD,L是句子中词的个数,D是嵌入维度,在自注意力机制里,QKV是表示同一个句子的矩阵,否则KV一般是来自一个句子,而Q来自其他句子可以通过这三个线性变换query,key,value得到我们想要的QKV,其中三个变换的输入都是768维,输出都是768维将该矩阵输入上面的三个线性转换,就可以得到三个矩阵KQV,,维度其实没有改变。

m0_51474171的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

attention中Q,K,V的理解

1.首先定义三个线性变换矩阵,query,key,value: 注意,这里的query, key, value只是一种操作(线性变换)的名称,实际的Q/K/V是它们三个的输出 2.假设三种操作的输入都是同一个矩阵,这里暂且定长度为L的句子,每个token的特征维度是768,那输入就是(L,768),每一行就是一个字,像这样:乘以上面三种操作就得到了Q、K、V,(L,768)*(768,768)=(L,768),维度其实没变,即此刻的Q、K、V分别为:代码为: 3.然后实现这个操作:① 首先是Q和K矩

Angelina_Jolie的博客 2062

Transfermer的Q、K、V设计的底层逻辑

​ 虽然从数学的角度来看,Q和K在计算过程中是对称的,从数学公式上看,Q和K可以互换,但实际上它们在模型中扮演的角色是不同的。Q是当前元素的表示,而K是序列中其他元素的表示。这种区分是必要的,因为它们在模型中的作用和意义不同。将它们视为不同的实体有助于我们更好地理解和设计模型。

qq191513的博客 2538

字节三面:attention中的Q,K,V怎么来的?

其实有一种办法很简单,就是给文章中所有 token 都分别分配一个向量,让它们满足 [cls] 的向量同“佛、跳、墙”的三个向量的距离都很小,同除了它们三个之外的其它 token 的向量的距离都很大。按照前面提到的方法,首先我们计算 [cls] 的 Q 向量和所有 token 的 A 向量之间的距离,然后筛选出距离小的那些,最后把它们的 A 向量加起来。其实是能的,只要让“佛”先查询“跳、墙”,再让 [cls] 查询“佛、跳、墙”就行了。的距离也很近,那岂不是说“跳、墙”和“祖”的距离也很近了?

具身机器人和通用AI 865
上一篇: Transforme原理--全局解读
下一篇: 多头注意力机制基本概念
快苏排序OAO
博客等级 码龄5年 273粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快苏排序OAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值