当前位置: 首页 > news >正文

Position Embedding总结和Pytorch实现

文章目录

  • 出现背景
  • PE
    • 位置编码公式
    • 思路
    • code

出现背景

自注意力机制处理数据,并不是采用类似RNN或者LSTM那种递归的结构,这使得模型虽然能够同时查看输入序列中的所有元素(即并行运算),但是也导致了没办法获取当前word在序列种的位置信息,使模型对顺序信息捕捉很差。

PE

位置编码公式

在这里插入图片描述

思路

采用sin和cos函数对word的每一维上进行唯一编码,这样每个word都得到了自己的位置编码信息,并且由于sin和cos都是连续函数,所以针对pos相近的word,他们的位置编码信息也是比较相近的,这样序列的顺序信息就能够获取到了。

TODO遗留问题:sin和cos都是周期函数,会存在位置编码信息重叠吗?

code

import torch
import torch.nn as nn
import mathclass PositionalEncoding(nn.Module):def __init__(self, d_model, max_len=5000):"""初始化位置编码模块。:param d_model: 嵌入的维度:param max_len: 最大序列长度"""super(PositionalEncoding, self).__init__()# 创建一个足够长的位置编码矩阵 [max_len, d_model]pe = torch.zeros(max_len, d_model)# 0 到 maxLen - 1 的 张量# unsqueeze(1): [maxLen,] => [maxLen, 1],即[0 到 maxLen] => [[0 到 maxLen]]position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)# 除数张量, [,maxLen]div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-math.log(10000.0) / d_model))# 奇数和偶数下标的分别处理pe[:, 0::2] = torch.sin(position * div_term) # 因为position是[maxLen, 1],所以会有广播机制pe[:, 1::2] = torch.cos(position * div_term)# 增加一个维度,将位置编码设置为不可训练pe = pe.unsqueeze(0).detach()# 注册缓冲区,这样pe不会在训练过程中被视为模型的可训练参数self.register_buffer('pe', pe)def forward(self, x):"""将位置编码添加到输入嵌入中。:param x: 输入嵌入,形状为 (Batch size, Sequence length, d_model)"""# x的形状是 [Batch size, Sequence length, d_model]# 从缓冲区中取出相应长度的pe,并添加到x上x = x + self.pe[:, :x.size(1)]return x

相关文章:

Position Embedding总结和Pytorch实现

文章目录 出现背景PE位置编码公式思路code 出现背景 自注意力机制处理数据,并不是采用类似RNN或者LSTM那种递归的结构,这使得模型虽然能够同时查看输入序列中的所有元素(即并行运算),但是也导致了没办法获取当前word在…...

【AIF-C01认证】亚马逊云科技生成式 AI 认证正式上线啦

文章目录 一、AIF-C01简介二、考试概览三、考试知识点3.1 AI 和 ML 基础知识3.2 生成式人工智能基础3.3 基础模型的应用3.4 负责任 AI 准则3.5 AI 解决方案的安全性、合规性和监管 四、备考课程4.1 「备考训练营」 在线直播课4.2 「SkillBuilder」学习课程 五、常见问题六、参考…...

C++ 素数的筛选法与穷举法

题目:素数大酬宾: 【问题描述】 某商场的仓库中有 n 种商品,每件商品按 1~n 依次编号。现在商场经理突发奇想,决定将编号为素数(质数)的所有商品拿出来搞优惠酬宾活动。请编程帮助仓库管理员将编号为素数的商品选出来…...

Spring Boot异步任务、任务调度与异步请求线程池的使用及原理

Spring Boot异步任务、任务调度与异步请求线程池的使用及原理 在Spring Boot应用程序中,异步任务、任务调度和异步请求线程池是提高系统性能和响应速度的重要工具。本文将详细讲解这些概念的使用及原理。 一、异步任务 异步任务是指可以在后台线程上执行的任务&a…...

Java爬虫之使用Selenium WebDriver 爬取数据

这里写自定义目录标题 Selenium WebDriver简介一、安装部署二、Java项目中使用1.引入依赖2.示例代码 三、WebDriver使用说明1.WebDriver定位器2.常用操作3.使用 cookie4.键盘与鼠标操作 Selenium WebDriver简介 Selenium WebDriver 是一种用于自动化测试 Web 应用程序的工具。…...

MyBatis 中updateByPrimaryKey和updateByPrimaryKeySelective区别

在 MyBatis 中,updateByPrimaryKey和updateByPrimaryKeySelective主要有以下区别: 一、功能 updateByPrimaryKey: 会根据传入的实体对象,将数据库表中对应主键的记录所有字段全部更新为实体对象中的值。即使实体对象中的某些字段…...

JavaScript下载文件(简单模式、跨域问题、文件压缩)

文章目录 简介简单文件下载通过模拟form表单提交通过XMLHttpRequest方式 跨域(oss)下载并压缩文件完整示例文件压缩跨域设置 简介 相信各位开发朋友都遇到过下载的文件的需求,有的非常简单,基本链接的形式就可以。 有的就比较复杂,涉及跨域…...

Django 定义使用模型,并添加数据

教材: Python web企业级项目开发教程(黑马程序员)第三章 模型 实验步骤: 1.创建项目和应用 前置步骤可看前文,进入到指定文件位置后创建 django-admin startproject mysite python manage.py startapp app01 2.注册…...

联名物料常泄漏?一端叠满“安全buff”

前段时间,一则关于爆火影视剧与知名茶饮品牌联名的消息在社交平台上迅速传播,宣传物料的照片也随之曝光——门店尚未上新,“小道消息”便已被疯传。但这种情况并非首次发生,让众多网友不禁猜想:这究竟是一场精心策划的…...

Flutter UI组件库(JUI)

Flutter UI组件库 (JUI) 介绍 您是否正在寻找一种方法来简化Flutter开发过程,并创建美观、一致的用户界面?您的搜索到此为止!我们的Flutter UI组件库(JUI)提供了广泛的预构建、可自定义组件,帮助您快速构建…...

国外电商系统开发-运维系统远程文件

设计初衷是为了让所有人都能方便的打开网页,就能查看Linux系统文件内容,而不再用cat、vim、more等命令去打开文件,这对于我们一个普通的研发或者是财务人员来说,显得太繁琐,因为他们很可能不会这些命令,其次…...

4. Node.js Path模块

2.3Path模块 2.3.1获取js文件的绝对路径 console.log(__dirname) //js文件所在的文件夹的绝对路径 console.log(__filename) //js文件的绝对路径输出: G:\py_project\nodejs_study G:\py_project\nodejs_study\file.js2.3.2拼接规范的绝对路径path.r…...

重构长方法之分解条件表达式

分解条件表达式 是一种重构长方法中常用的技术,它适用于复杂的条件逻辑。在方法中,条件分支(if-else 或 switch)有时会变得条件非常多,非常复杂,难以理解和维护。通过分解条件逻辑,可以让代码更…...

蚁群算法养老服务人员智能调度系统

养老行业近年来越发热门,如何有效调配服务人员成为许多机构的痛点。我们结合智能算法技术,开发出了一款专为养老行业量身打造的“蚁群算法养老服务人员调度系统”,能够精准、高效地为机构分配人员,从此告别人力资源调度难题。 系…...

java使用 IDEA自动补全功能 AI 插件

国内插件: CodeGeeX: 功能特性: 由国内团队开发,是一款智能编程助手插件。它集成了多种人工智能技术,能够在多个编程语言中提供智能代码补全、代码生成、代码优化和注释生成等功能。该插件特别适用于常见的编程任务…...

【ShuQiHere】 AI与自我意识:能否创造真正的自觉机器人?

🤖【ShuQiHere】 📜 目录 引言人类意识的探索机器意识的五大理论 功能主义(Functionalism)信息整合(Information Integration)体现主义(Embodiment)行动主义(Enaction&…...

【Linux 从基础到进阶】CPU性能调优与监控

CPU性能调优与监控 1. 引言 在计算机系统中,CPU是核心组件之一,其性能直接影响系统的整体表现和响应速度。无论是在企业服务器环境、虚拟化环境,还是大数据计算场景,优化和监控CPU性能都至关重要。通过合理的调优策略和监控工具…...

Centos基线自动化检查脚本

此脚本是一个用于检查Linux系统安全配置的Bash脚本。它通过多项安全标准对系统进行评估,主要检查以下内容: IP地址获取:脚本首先获取主机的IP地址,确保其以10.115开头。 密码策略检查: 检查最小密码长度(P…...

OpenCV答题卡识别

文章目录 一、基本流程二、代码实现1.定义函数2.图像预处理(1)高斯模糊、边缘检测(2)轮廓检测(3)透视变换(4)阈值处理和轮廓检测 3.筛选和排序选项轮廓4.判断答案5.显示结果 三、总结…...

通用数据库对象设计

1. 公共属性 这里的数据模型以陈品山的实体-关系模型为基础,增加了两点修改。一是用“组”的概念表达实体间关系,并将组作为一种特殊实体。二是采用继承的思想,将实体的公共属性提取出来,放到统一表中。实体的特有属性保存在单独…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...