Transformer详解(2)-位置编码

位置编码公式

偶数位置用sin,奇数位置用cos. d_model 表示token的维度;pos表示token在序列中的位置;i表示每个token编码的第i个位置,属于[0,d_model)。

torch实现

import math
import torch
from torch import nn
from torch.autograd import Variable
import matplotlib.pyplot as pltclass PositionalEncoder(nn.Module):def __init__(self, max_seq_len=50, d_model=128):super().__init__()self.d_model = d_model  # d_model 表示token的维度pe = torch.zeros(max_seq_len, d_model)  # max_seq_len * d_model 的二维张量   例如: 50*128for pos in range(max_seq_len):  # 重新初始化for i in range(0, d_model, 2):pe[pos, i] = math.sin(pos / (10000 ** (i / d_model)))pe[pos, i + 1] = math.cos(pos / (10000 ** (i / d_model)))pe = pe.unsqueeze(0)  # 1*50*128self.register_buffer('pe', pe)def forward(self, x):x = x * math.sqrt(self.d_model)seq_len = x.size(1)x = x + Variable(self.pe[:, :seq_len], requires_grad=False).cuda()return xif __name__ == '__main__':positional_encoder = PositionalEncoder(50, 128)plt.pcolormesh(positional_encoder.pe.numpy()[0], cmap='RdBu')plt.xlabel('Depth')  # 50plt.xlim((0, 128))plt.ylabel('Position')  # 128plt.colorbar()plt.show() 

位置编码可视化

位置编码可视化

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

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

相关文章

pycharm配置python开发环境—miniconda+black+gitlab

下载miniconda管理python开发环境 miniconda下载地址:https://docs.anaconda.com/free/miniconda/ miniconda最新版本的python版本是python3.12.2,下载这个miniconda最新版本后,会导致执行conda create -n py31013 python3.10.13指令配置py…

如何设计电商 SaaS 系统中的免费服务和增值服务

随着电子商务的迅猛发展,越来越多的企业选择使用 SaaS(Software as a Service)平台来搭建自己的电商系统。为了吸引更多用户,电商 SaaS 系统通常会提供免费服务和增值服务。如何合理地设计这些服务,既能吸引新用户&…

使用HTTP长连接减少文件描述符和端口占用

在当今互联网技术飞速发展的背景下,高并发处理能力已经成为衡量服务器性能的一个重要标准。面对高并发场景,服务器需要同时应对大量的请求,这就带来了一个棘手的问题:资源有限。具体来说,文件描述符和端口号&#xff0…

ES实例演示一

温馨提示:本文所有API操作都是基于Elasticsearch 7.17 .8版本 1、文档的基本 CRUD 与批量操作 ############Create Document############ #create document. 自动生成 _id POST users/_doc {"user" : "Mike","post_date" : "20…

「公 告」根据中华人民共和国法律,Bing 在中国内地暂停 “搜索自动建议” 功能 30 天。

根据中华人民共和国法律,Bing 中国已经被政府有关部门要求在中国内地暂停 “搜索自动建议” 功能 30 天。作为全球性搜索平台,Bing 将持续致力于尊重法治与用户获取信息的权利,在遵守法律的前提下最大限度地帮助客户寻找所需信息。 Bing Chin…

数据结构---优先级队列(堆)

博主主页: 码农派大星. 数据结构专栏:Java数据结构 关注博主带你了解更多数据结构知识 1. 优先级队列 1.1 概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队 列时&am…

微软Copilot+ PC:Phi-Silica

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模…

Tkinter描述

Tkinter是Python中的一个标准GUI库,使用Tcl/Tk作为底层实现,提供了创建图形用户界面的工具。Tkinter提供了一组标准的GUI元素和布局管理器,帮助开发人员快速构建应用程序。使用Tkinter,可以快速创建简单的GUI应用程序,…

C++入门:从C语言到C++的过渡(2)

目录 1.缺省参数 1.1缺省参数的概念 1.2缺省参数的分类及使用 1.3注意点 2.函数重载 2.1函数重载的定义 2.2函数重载的情况分类 2.3注意 2.4函数名修饰规则 3.引用 3.1引用的概念 3.2注意事项 3.3常引用 4.4引用的使用场景 4.4.1作为函数的参数 4.4.2做函数返回…

【学习笔记】Windows GDI绘图目录

题外话 不知几时开始,觉得学习过程中将内容记录下来,有助于加强记忆,还方便后续查找,顺便帮助有需要的人,更有来自您阅读、点赞、收藏和评论时给我带来的动力与兴奋。 目录 【学习笔记】Windows GDI绘图(一)图形概述…

B站大数据分享视频创作300天100+原创内容4000+粉

以今年五一作为一个里程碑参考点,给明年一个可以比较的数据。 我正经发力创作是2023.06.17 (前面几个视频是试水),300天不到一年时间 创作了100原创数据相关视频,创作频率应该很高了,收获了下面几个数字,审视自身&…

如何建设高效的外贸自建站?

建设高效的外贸自建站,首先要从明确目标和受众开始。了解你的目标市场和潜在客户是关键,这样你可以有针对性地进行设计和内容创作。站点的设计应该简洁明了,导航要方便,确保访客户能够快速找到所需的信息。 而内容是网站的核心。…

Java基础的语法---String

Java的String类是不可变的,意味着一旦创建,其值就不能被改变。String类提供了丰富的API来操作字符串。 以下是一些常用的方法: 构造方法: 有以下几种常见的: public class stringlearn {public static void main(S…

LNWT--篇章二小测

问题1: Transformer中的softmax计算为什么需要除以$d_k$? 为了稳定数值计算和防止梯度消失或爆炸问题 问题2: Transformer中attention score计算时候如何mask掉padding位置? 将掩码矩阵添加到缩放后的注意力分数上。由于我们使用了负无穷,经过softma…

ATmega328P加硬件看门狗MAX824L看门狗

void Reversewdt(){ //硬件喂狗,11PIN接MAX824L芯片WDIif (digitalRead(11) HIGH) {digitalWrite(11, LOW); //低电平} else {digitalWrite(11, HIGH); //高电平 }loop增加喂狗调用 void loop() { …… Reversewdt();//喂狗 }

从0到1!得物如何打造通用大模型训练和推理平台

1.背景 近期,GPT大模型的发布给自然语言处理(NLP)领域带来了令人震撼的体验。随着这一事件的发生,一系列开源大模型也迅速崛起。依据一些评估机构的评估,这些开源模型大模型的表现也相当不错。一些大模型的评测情况可…

ggml文件格式

ggml文件格式 其中模型文件使用 ggml/examples/gpt-2/download-model.sh 脚本下载 我下载的是gpt-2 117M 这个 模型词汇编码表 encoder.json : {"!": 0,"\"": 1,"#": 2,"$": 3,"%": 4,"&":…

佩戴安全头盔监测识别摄像机

佩戴安全头盔是重要的安全措施,尤其在工地、建筑工程和工业生产等领域,安全头盔的佩戴对于工人的生命安全至关重要。为了更好地管理和监控佩戴安全头盔的情况,监测识别摄像机成为了一项重要的工具。监测识别摄像机可以通过智能技术监测并记录…

Java系统学习资料(备忘)

本文记录下一下优秀的Java系统学习的资料: java程序员从小工到专家成神之路(2024版) | 程序那些事 Java技能树

JavaScript-数组的增删改查

数组的操作一共有四种: 查询数组数据修改数组中元素的值数组添加新的数据删除数组中的元素 数组的初始化 有些编程语言的数组初始化是用{}包着的,而JS的数组初始化用[] let num[2,6,1,77,52,25,7]; 数组的查询 想要具体查询数组中的某个元素 可以用数…