首页 > 其他分享 >Transformer 模型中的positional encoding(位置编码)计算理解(2)

Transformer 模型中的positional encoding(位置编码)计算理解(2)

时间:2023-05-09 22:35:46浏览次数:38  
标签:dim Transformer seq encoding ## pos len positional PE

 

 

 

 

 

 

 

 以下(以上)内容来自(参考):

https://www.bilibili.com/video/BV1Di4y1c7Zm?p=2&vd_source=6292df769fba3b00eb2ff1859b99d79e

 

 

import numpy as np

def getPositionEncoding(seq_len,dim,n=10000):
    ## seq_len: 序列长度
    ## dim 词向量的维度
    ## n 为固定的值
    PE = np.zeros(shape=(seq_len,dim)) ## 为序列的每一个词算一个位置向量 seq_len*dim
    for pos in range(seq_len): ## 为序列的每一个词算一个位置向量
        #print("词的位置为", pos) ## 0,1,2,3.。。
        for i in range(int(dim/2)): ## 每次循环计算两个值,因此,循环次数要减半
            #print("i=",i)
            denominator = np.power(n, 2*i/dim)
            PE[pos,2*i] = np.sin(pos/denominator) #; print("PE[pos,2*i]=",PE[pos,2*i])
            PE[pos,2*i+1] = np.cos(pos/denominator)#; print("PE[pos,2*i+1]=",PE[pos,2*i+1])

    return PE


import matplotlib.pyplot as plt
P = getPositionEncoding(seq_len=100, dim=512, n=10000)
cax = plt.matshow(P)
plt.gcf().colorbar(cax)
plt.show()

 

 

import numpy as np

def getPositionEncoding(seq_len,dim,n=10000):
    ## seq_len: 序列长度
    ## dim 词向量的维度
    ## n 为固定的值
    PE = np.zeros(shape=(seq_len,dim)) ## 为序列的每一个词算一个位置向量 seq_len*dim
    for pos in range(seq_len): ## 为序列的每一个词算一个位置向量
        #print("词的位置为", pos) ## 0,1,2,3.。。
        for i in range(int(dim/2)): ## 每次循环计算两个值,因此,循环次数要减半
            #print("i=",i)
            denominator = np.power(n, 2*i/dim)
            PE[pos,2*i] = np.sin(pos/denominator) #; print("PE[pos,2*i]=",PE[pos,2*i])
            PE[pos,2*i+1] = np.cos(pos/denominator)#; print("PE[pos,2*i+1]=",PE[pos,2*i+1])

    return PE


import matplotlib.pyplot as plt
P = getPositionEncoding(seq_len=300, dim=512, n=10000)
cax = plt.matshow(P)
plt.gcf().colorbar(cax)
plt.show()

 

 

标签:dim,Transformer,seq,encoding,##,pos,len,positional,PE
From: https://www.cnblogs.com/emanlee/p/17138599.html

相关文章

  • Transformers回顾 :从BERT到GPT4
    人工智能已成为近年来最受关注的话题之一,由于神经网络的发展,曾经被认为纯粹是科幻小说中的服务现在正在成为现实。从对话代理到媒体内容生成,人工智能正在改变我们与技术互动的方式。特别是机器学习(ML)模型在自然语言处理(NLP)领域取得了重大进展。一个关键的突破是引入了“自......
  • Transformer 估算 101
    Transformer估算101 本文主要介绍用于估算transformer类模型计算量需求和内存需求的相关数学方法。引言其实,很多有关transformer语言模型的一些基本且重要的信息都可以用很简单的方法估算出来。不幸的是,这些公式在NLP社区中鲜为人知。本文的目的是总结这些公式,阐明......
  • transformers在ctr中的应用
    文章目录1.背景2.相关论文解析2.1《AutoInt:AutomaticFeatureInteractionLearningviaSelf-AttentiveNeuralNetworks》2.1.1论文贡献2.1.2模型结构2.1.2.1输入2.1.2.2注意力机制层2.1.3实验结果2.2《BehaviorSequenceTransformerforE-commerceRecommendationin......
  • 2023AAAI_Ultra-High-Definition Low-Light Image Enhancement: A Benchmark and Tran
    一.motivition1.之前的数据集分辨率较低二.contribution1.提出两个超高清数据集UHD-4k和UHD-8k2.网络结构LLFormer(网络结构类似2022CVPR_Restormer:EffificientTransformerforHigh-ResolutionImageRestoration.)三.Network 网络架构类似于:2022CVPR_Restormer:......
  • Transformer学习
    Transformer学习此帖用于整理回顾自己学transformer的一些问题和知识极好的博客和资料:Transformer模型详解-CSDN博客:原理讲的很清楚举个例子讲下transformer的输入输出细节及其他-知乎(zhihu.com):讲的是输入输出的细节Transformer论文逐段精读【论文精读】B站:李沐dalao......
  • Ruby安装错误:in `encode': U+00CD to IBM437 in conversion from UTF-16LE to UTF-8 t
    解决方法:去本地路径下修改编码,这么提示是因为编码不一致导致的。  修改registry文件中的编码:  修改后就没有问题了。 来源:https://www.cnblogs.com/py-tiger/p/5372258.html......
  • 凭“难听”上热搜的 idol 们,不如考虑下让 Transformer 帮您作曲?
    视频制作|白鹡鸰编|小轶考虑到“AI音乐”这一主题的特殊性,唯有多媒体的视频形式才能更好地给大家带来视听上的多重感受。于是,小屋的白鸟鸟同学在科研间隙连续肝了好几个晚上,才得以完成这次视频。然而在上周的推送中,不知道微信出了什么bug,最最精华的视频部分居然消失了!所以今......
  • 李宏毅transformer笔记
     首先这里解决的问题是Seq2Seq列出各种场景,语音识别,机器翻译,chatbot 当前现在NLP模型之所以这么重要,在于他的通用能力,很多场景都可以转换成Seq2Seqsummary,情感分析啊,只要你能通过QA和机器交互的场景都可以是Seq2Seq这里的例子,语法树解析,多元分类,甚至是对象识别Seq2Seq......
  • An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale
    模型如下图所示:将H×W×C的图像reshape成了N×(P2×C),其中(H,W)是图像的原始分辨率,C是通道数,(P,P)是每个图像块的分辨率,N=H×W/P2为图像块的数量,将一个图像块使用可学习的线性层映射到维度为D的隐藏向量,如式(1)所示,线性映射的输出称为patchembeddings.在patchembeddin......
  • 【阅读】Transformer
    参考AttentionIsAllYouNeedAGeneralSurveyonAttentionMechanismsinDeepLearning注意力足矣(AttentionIsAllYouNeed)一般注意力模型这个模型接受一个输入,执行指定的任务,然后产生所需的输出输入\(X_{d_x\timesn_x}=[{\boldsymbolx}_1,\dots,{\bold......