transformer_位置编码代码笔记

transformer_位置编码代码笔记

transformer输入的序列中,不同位置的相同词汇可能会表达不同的含义,通过考虑位置信息的不同来区分序列中不同位置的相同词汇。

位置编码有多种方式,此处仅记录正余弦位置编码

正余弦位置编码公式如下:
在这里插入图片描述
代码如下:

import numpy as np
import torch

def positional_encoding(seq_len, d_model):
    # 创建一个形状为(seq_len, 1)的数组,其中的值为[0, 1, 2, ... seq_len-1]
    position = np.arange(seq_len)[:, np.newaxis]  # 使用np.newaxis增加列上的维度,position矩阵为seq_len×1

    # 计算除数,这里的除数将用于计算正弦和余弦的频率,div_term矩阵为1×d_model
    div_term = np.exp(np.arange(0, d_model, 2) * -(np.log(10000.0) / d_model))

    # 初始化位置编码矩阵为零,后续计算所有位置的位置编码并更新相对位置的初始化位置编码矩阵
    pe = np.zeros((seq_len, d_model))
    
    # 以下是针对偶数列使用正弦函数,奇数列使用余弦函数,最终输出的结果矩阵为seq_len×d_model
    # 对矩阵的偶数列机型正弦函数编码
    pe[:, 0::2] = np.sin(position * div_term)
    # 对矩阵的奇数列机型余弦函数编码
    pe[:, 1::2] = np.cos(position * div_term)

    # 返回位置编码矩阵,转换为PyTorch张量
    return torch.tensor(pe, dtype=torch.float32)

if __name__ == '__main__':
    # 使用示例
    seq_len = 50  # 定义序列长度
    d_model = 512  # 定义模型的embedding维度
    pe = positional_encoding(seq_len, d_model)  # 获得位置编码
    print(pe)

实际使用时代码如下:

# forward the GPT model itself
# token的embedding
tok_emb = self.transformer.wte(idx) # token embeddings of shape (b, t, n_embd)
# 位置的embedding
pos_emb = self.transformer.wpe(pos) # position embeddings of shape (1, t, n_embd)
# 将token的embedding与位置得到embedding相加
x = self.transformer.drop(tok_emb + pos_emb)

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

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

相关文章

大模型日报-20240201

大模型最新资讯 2024,AI for Science 如何赋能科研第一线?大模型也能切片,微软SliceGPT让LLAMA-2计算效率大增马斯克:Neuralink首次将芯片植入人体,产品已在路上小扎官宣Code Llama重量级更新,新增70B版本&…

科技云报道:云原生PaaS,如何让金融业数字化开出“繁花”?

科技云报道原创。 在中国金融业数字化转型的历史长卷中,过去十年无疑是一部磅礴的史诗。 2017年,南京银行第一次将传统线下金融业务搬到了线上。那一年,它的互联网金融信贷业务实现了过去10年的业务总额。 2021年,富滇银行通过…

分销商城---社区团购的货源是哪里来的?看这里!仅限小程序!

我们知道本地生活是一个“勤”行,所谓的市场红利期、爆发期都已逐步平稳,大浪淘沙下剩下来的都是在拼“苦活”。在低利润的情况下,现在的你有没有在考虑在2024年除了靠自身的能力和增值服务外,还能靠什么来提高自己的利润&#xf…

Wireshark网络协议分析 - TCP协议

在我的博客阅读本文 文章目录 1. 基础2. 实战2.1. 用Go写一个简单的TCP服务器与客户端2.2. Wireshark抓包分析2.3. 限制数据包的大小——MSS与MTU2.4. 保证TCP的有序传输——Seq,Len与Ack2.5. TCP头标志位——URG,ACK,PSH,RST&…

正则表达式 与文本三剑客(sed grep awk)

一,正则表达式 (一)正则表达式相关定义 1,正则表达式含义 REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意…

【GPU驱动开发】-LLVM和Clang环境部署

前言 不必害怕未知,无需恐惧犯错,做一个Creator! 一、下载LLVM源码 官网下载源码 https://github.com/llvm/llvm-project/releases/ 包含所有llvm版本的下载内容 win源码传到ubuntu 首先将虚拟机关机,在虚拟机设置中&#xff…

微服务—Docker

目录 初识Docker Docker与虚拟机的区别 镜像与容器 Docker架构 常见Docker命令 镜像命令 容器命令 数据卷挂载 直接挂载 初识Docker 在项目部署的过程中,如果出现大型项目组件较多,运行环境也较为复杂的情况,部署时会碰到一些问题&…

stm32--simulink开发之--timer的学习,硬件输入中断,触发事件

总体的参考链接是: https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ref/timer.html 输入: 1,配置项:Enable frequency input 缩写:freq conunt 说明:“freq count — Frequency…

[Mac游戏]割绳子3 Cut the Rope 3 v1.3.0 for Mac 苹果电脑游戏

你准备好和Am Nom和迷人的Kus Nom一起去未开发的土地了吗?这场激动人心的冒险从一张旧地图和诱人的伟大发现开始。然后你们三个将带着狡猾的谜题去不可思议的地方旅行!解决所有问题,找到Nyammi的新物种,并成为伟大的先驱。 对于那…

收集子域名信息(三):Layer 工具(附链接)

一、介绍 Layer 子域名挖掘机是一款域名查询工具,可提供网站子域名查询服务;拥有简洁的界面、简单的操作模式,支持服务接口、暴力搜索、同服挖掘三种模式,支持打开网站、复制域名、复制 IP、复制 CDN、导出域名、导出 IP、导出域…

【SpringBoot系列】自动装配的魅力:Spring Boot vs 传统Spring

IT行业有哪些证书含金量高? 文章目录 IT行业有哪些证书含金量高?强烈推荐前言区别项目配置:依赖管理:内嵌服务器:开发体验: 实例Spring项目示例:Spring Boot项目示例: 总结强烈推荐专栏集锦写在最后 强烈…

SpringBoot后端接收Axios上传的文件

很多时候,我们项目开发的过程中,难免会遇到文件上传的需求 对于SpringBoot项目,我们该如何编写一个文件上传的接口呢? 这里我用的是阿里云OSS云服务器来作为上传文件的存储仓库,比起存储在电脑本地,云服务…

Histone H3K27ac Antibody, SNAP-ChIP® Certified

EpiCypher是一家为表观遗传学和染色质生物学研究提供高质量试剂和工具的专业制造商。EpiCypher(国内代理商欣博盛生物)推出的ChIP级别的Histone H3K27ac Antibody符合EpiCypher的“SNAP-ChIP Certified”标准,用于ChIP实验中的特异性和有效靶…

数据标准经验分享

给客户做数据类项目,在做数据标准时的经验分享 1. 收集本项目的数据范围内的数据 2. 整理本数据范围内的所有元数据 3. 观察该公司所有元数据的表命名、字段命名规律 4. 根据行业经验, 国标、行标, 也根据元数据范围,制定本公司…

elementUI实现selecttree自定义下拉框树形组件支持多选和搜索

elementUI实现selecttree自定义下拉框树形组件支持多选和搜索 效果图定义子组件父组件应用 效果图 定义子组件 主要结合el-select和el-tree两个组件改造的。 <template><div class"selectTree"><el-select filterable :filter-method"filterMe…

【HarmonyOS应用开发】ArkUI 开发框架-进阶篇-Video组件的使用(十)

一、Video组件的使用 1、概述 在手机、平板或是智慧屏这些终端设备上&#xff0c;媒体功能可以算作是我们最常用的场景之一。无论是实现音频的播放、录制、采集&#xff0c;还是视频的播放、切换、循环&#xff0c;亦或是相机的预览、拍照等功能&#xff0c;媒体组件都是必不可…

分割头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图

左图:ResNet 的一个模块。右图:复杂度大致相同的 ResNeXt 模块,基数(cardinality)为32。图中的一层表示为(输入通道数,滤波器大小,输出通道数)。 1. 思路 ResNeXt是微软研究院在2017年发表的成果。它的设计灵感来自于经典的ResNet模型,但ResNeXt有个特别之处:它采用…

EDI报文到Excel转换方案详解

EDI目前已广泛应用于电子、物流、汽车、零售等行业。 越来越多的交易伙伴要求建立EDI连接&#xff0c;通过EDI来对接上下游交易伙伴&#xff0c;收发业务单据。 当我们与新的交易伙伴建立EDI连接时&#xff0c;有多种实施方案可供选择&#xff0c;如果您的单据量较少&#xf…

游戏APP用户行为统计分析

文章目录 1.游戏业务数据分析如图所示的用户行为数据2.数据预处理2.1加载包2.2读取数据2.3查看安装信息2.4查看注册信息2.5查看安装信息表中的最大值&#xff0c;最小值等基本信息。2.6查看注册信息表中的最大值&#xff0c;最小值等基本信息。 3.数据分析3.1数据统一3.2安装信…

ADSelfService Plus 推出离线多因素身份验证以提升远程工作安全性

采用先进验证方法&#xff0c;确保在任何时间、地点或连接问题下对业务数据的合法访问即使远程用户未连接到身份验证服务器或互联网&#xff0c;也可通过MFA安全认证。 MFA 得克萨斯州德尔瓦雷 — 2023年5月3日 — Zoho Corporation 旗下的企业IT管理部门ManageEngine今日宣布…