1:10 点赞

16:00

我爱你

你爱我

1401

class PositionalEncoding(nn.Module):

    def __init__(self, dim, dropout, max_len=5000):
super(PositionalEncoding, self).__init__() if dim % 2 != 0:
raise ValueError("Cannot use sin/cos positional encoding with "
"odd dim (got dim={:d})".format(dim)) """
构建位置编码pe
pe公式为:
PE(pos,2i/2i+1) = sin/cos(pos/10000^{2i/d_{model}})
"""
pe = torch.zeros(max_len, dim) # max_len 是解码器生成句子的最长的长度,假设是 10
position = torch.arange(0, max_len).unsqueeze(1)
div_term = torch.exp((torch.arange(0, dim, 2, dtype=torch.float) *
-(math.log(10000.0) / dim))) pe[:, 0::2] = torch.sin(position.float() * div_term)
pe[:, 1::2] = torch.cos(position.float() * div_term)
pe = pe.unsqueeze(1)
self.register_buffer('pe', pe)
self.drop_out = nn.Dropout(p=dropout)
self.dim = dim def forward(self, emb, step=None): emb = emb * math.sqrt(self.dim) if step is None:
emb = emb + self.pe[:emb.size(0)]
else:
emb = emb + self.pe[step]
emb = self.drop_out(emb)
return emb

04 Transformer 中的位置编码的 Pytorch 实现的更多相关文章

  1. ICCV2021 | Vision Transformer中相对位置编码的反思与改进

    ​前言  在计算机视觉中,相对位置编码的有效性还没有得到很好的研究,甚至仍然存在争议,本文分析了相对位置编码中的几个关键因素,提出了一种新的针对2D图像的相对位置编码方法,称为图像RPE(IRPE). ...

  2. 中文NER的那些事儿5. Transformer相对位置编码&TENER代码实现

    这一章我们主要关注transformer在序列标注任务上的应用,作为2017年后最热的模型结构之一,在序列标注任务上原生transformer的表现并不尽如人意,效果比bilstm还要差不少,这背后有 ...

  3. 第五课第四周实验一:Embedding_plus_Positional_encoding 嵌入向量加入位置编码

    目录 变压器预处理 包 1 - 位置编码 1.1 - 位置编码可视化 1.2 - 比较位置编码 1.2.1 - 相关性 1.2.2 - 欧几里得距离 2 - 语义嵌入 2.1 - 加载预训练嵌入 2. ...

  4. 【译】在Transformer中加入相对位置信息

    目录 引言 动机 解决方案 概览 注释 实现 高效实现 结果 结论 参考文献 本文翻译自How Self-Attention with Relative Position Representation ...

  5. [NLP] 相对位置编码(一) Relative Position Representatitons (RPR) - Transformer

    对于Transformer模型的positional encoding,最初在Attention is all you need的文章中提出的是进行绝对位置编码,之后Shaw在2018年的文章中提出了 ...

  6. Pytorch中的自编码(autoencoder)

    Pytorch中的自编码(autoencoder) 本文资料来源:https://www.bilibili.com/video/av15997678/?p=25 什么是自编码 先压缩原数据.提取出最有 ...

  7. [NLP] 相对位置编码(二) Relative Positional Encodings - Transformer-XL

    参考: 1. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context https://arxiv.org/pdf ...

  8. 浅析白盒审计中的字符编码及SQL注入

    尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...

  9. php 字符串截取,支持中文和其他编码

    function.php //使用方法 $content= mb_substr($content,0,25,'utf-8'); /** * 字符串截取,支持中文和其他编码 * @static * @a ...

  10. 多媒体开发之--- rtsp 中的H264 编码+打包+解码相关知识es、pes、ts...

    1)ES流(Elementary Stream): 也叫基本码流,包含视频.音频或数据的连续码流. 2)PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的 ...

随机推荐

  1. 【Redis】03 Redis 数据类型、相关补充、常用命令

    redis的数据类型 1,概述 使用Redis进行应用设计和开发的一个核心概念是数据类型. 与关系数据库不同,在Redis中不存在需要我们担心的表, 在使用Redis进行应用设计和开发时,我们首先应该 ...

  2. 创绘-AI一键小说转漫画视频

    创绘-AI一键小说转漫画视频 创绘简介 一键智能AI推理提示词,自动关联上下文,画面匹配度更高 一键批量绘图,同时支持本地和云端模式(没有显卡也能畅享绘图) 一键导出剪映草稿,自动生成关键帧,快速图文 ...

  3. baselines算法库run.py模块分析

    baselines算法库地址: https://gitee.com/devilmaycry812839668/baselines =================================== ...

  4. JavaFx加载本地工程图片报错

    原因有两点: 1.png或者其他格式的图片文件没有放在src的直接目录下 2.路径填错,多了个符号等 正确姿势应该是 package com.fubao.tools.fx.Stage; import ...

  5. @ComponentScan

    @ComponentScan 是一个注解,用于Spring框架,它允许开发者指定Spring应该扫描哪个包或包下的子包来寻找组件(如@Component.@Service.@Repository等注解 ...

  6. RabbitMq消息可靠性之回退模式 通俗易懂 超详细 【内含案例】

    RabbitMq保证消息可靠性之回退模式 介绍 生产者生产的消息没有正确的到达队列就会触发回退模式,进行二次发送 前提 完成SpringBoot 整合 RabbitMq 中的Topic通配符模式 一. ...

  7. 我当年如何入门Linux的?-zdc的那些往事

    一.通信当年的疯狂 还记得09年初, 山寨机横行, 市场上手机主要还是塞班os, 小灵通还没有退出市场, 基于安卓的智能手机陆续推出. 没有王者荣耀,更没有微信, 小米的米聊还在ppt里: 那个时候网 ...

  8. Jetpack架构组件学习(5)——Hilt 注入框架使用

    原文: Jetpack架构组件学习(5)--Hilt 注入框架使用-Stars-One的杂货小窝 本篇需要有Kotlin基础知识,否则可能阅读本篇会有所困难! 介绍说明 实际上,郭霖那篇文章已经讲得比 ...

  9. Vue 项目 毒鸡汤 壮士可要来一碗!

    项目灵感来自"聆听远方"的毒鸡汤 非常简单 适合 Vue 新童鞋 按国际惯例 先上图 来不及解释了 快把代码复制走 poison-soup.html <!DOCTYPE ht ...

  10. 删除链表倒数第N个节点(19)

    双指针法 双指针法主要是最开始有两个指针fast,slow都指向链表的虚拟头节点dummy,然后快指针先移动,这里需要先向后移动n+1位(因为你最终是要找到目标节点的前一个节点),然后slow和fas ...