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

win系统做网站深圳搜索竞价账户托管

win系统做网站,深圳搜索竞价账户托管,阿里云网站建设的功能,江苏省住房城乡建设部网站一、PositionEncoding 论文地址 https://arxiv.org/pdf/1706.03762 位置编码介绍 位置编码在Transformer模型中是用来将位置信息与输入序列相结合的一种技术。在传统的序列模型(如RNN)中,输入的序列数据是有顺序的,模型本身能够感…

一、PositionEncoding

  • 论文地址

    https://arxiv.org/pdf/1706.03762

位置编码介绍

  • 位置编码在Transformer模型中是用来将位置信息与输入序列相结合的一种技术。在传统的序列模型(如RNN)中,输入的序列数据是有顺序的,模型本身能够感知输入数据的顺序。然而,Transformer是一种不具备内置顺序敏感性的模型,因此需要通过位置编码来将位置信息显式地添加到输入数据中。

    image-20250422213507984

位置编码的数学公式

  • 在Transformer中,位置编码通过一组确定性的正弦和余弦函数的组合来产生。这种编码方式允许模型学习位置信息,同时也保留了相对位置的不变性。具体的数学公式如下

    image-20250422213601326
    P E ( p o s , 2 i ) = sin ⁡ ( p o s 1000 0 2 i d m o d e l ) P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 1000 0 2 i d m o d e l ) PE_(pos,2i) = \sin ( \frac{pos}{10000^{ \frac{2i}{d_{model}} } } ) \\ \quad \\ PE_(pos,2i+1) = \cos ( \frac{pos}{10000^{ \frac{2i}{d_{model}} } } ) \\ PE(pos,2i)=sin(10000dmodel2ipos)PE(pos,2i+1)=cos(10000dmodel2ipos)

    其中, p o s pos pos 表示位置, i i i 是维度索引, d m o d e l d_{model} dmodel 是模型的维度 (即embedding的维度)。

代码

  • 根据上述公式,实现 PositionlEncoding

    from torch import nn
    import torchclass PositionEncoding(nn.Module):"""位置编码"""def __init__(self, d_model, max_seq_len=512):super(PositionEncoding, self).__init__()# shape[max_seq_len]position = torch.arange(0, max_seq_len)# shape[max_seq_len, 1]position = position.unsqueeze(1)  # 升维# shape [d_model/2]item = 1 / 10000 ** (torch.arange(0, d_model, 2) / d_model)# shape[max_seq_len, d_model/2]tmp_pos = position * item# shape[max_seq_len, d_model]pe = torch.zeros(max_seq_len, d_model)pe[:, 0::2] = torch.sin(tmp_pos)  # 偶数pe[:, 1::2] = torch.cos(tmp_pos)  # 奇数# shape: [max_seq_len, d_model] --> [batch, max_seq_len, d_model]pe = pe.unsqueeze(0)  # 在第一个维度上升维# 将位置编码pe注册为缓冲区self.register_buffer(name="pe", tensor=pe, persistent=False)def forward(self, x):batch, seq_len, d_model = x.shapepe = self.pereturn x + pe[:, :seq_len, :]
    
  • 相关解释

    1. 初始化参数解释

      d_model : 模型维度(embedding维度)

      max_seq_len : 是模型支持的最大序列长度,确保模型能够处理任意长度不超过 max_seq_len 的序列。

    2. 注册缓冲区

      self.register_buffer 方法

      通过将位置编码 pe 注册为缓冲区,可以在模型的前向传播中直接使用 self.pe,而不需要每次都重新计算。
      缓冲区不会被优化器更新,因此位置编码在训练过程中保持不变,这符合位置编码的设计初衷。

    3. 前向传播参数

      x : 输入序列,shape为 [batch_size, seq_len, d_model]

使用示例

  • 测试代码

    # 假设我们有一个大小为 (batch_size=32, seq_len=20, d_model=512) 的输入
    batch_size = 32
    seq_len = 20
    d_model = 512# 创建位置编码的实例
    pos_encoding_layer = PositionEncoding(d_model=d_model)# 生成随机输入数据
    input_data = torch.randn(batch_size, seq_len, d_model)# 获取带有位置编码的数据
    output_data = pos_encoding_layer(input_data)print(output_data.shape)  # 输出应为 (32, 20, 512)
    

    创建一个PositionEncoding类的实例,并通过传入一个随机生成的输入张量来获取添加了位置信息的输出张量。

    注意,PositionalEncoding 不改变输入序列的长度

http://www.dtcms.com/wzjs/149723.html

相关文章:

  • 广州网站建设阿里云成都私人做网站建设
  • 山东川畅信息技术有限公司网站建设百度新闻发布
  • 页面设计需求需要做哪些方面免费网站seo优化
  • 网络广告的特点win10系统优化软件哪个好
  • 在建设银行网站申请完信用卡网站批量收录
  • 美康优选网站怎么做的广告免费发布信息
  • 怎么做系统软件网站西安百度推广网站建设
  • 网站建设源代码怎么搭建b站网站推广
  • 生成网站地图南京疫情最新消息
  • 黑龙江省建设工程招标网站seo整站优化哪家好
  • WordPress可以做社交网站嘛合肥优化
  • 成都倒闭的网站建设公司名单谷歌全球营销
  • 中国十大购物商场排名南宁seo排名首页
  • 网页布局的方法企业seo排名优化
  • 建设网站需要什么基础知识搜索引擎广告优化
  • 深圳java网站开发网站的友情链接是什么意思
  • wordpress 分类图片seo网站排名优化培训教程
  • 电子商务网站建设预算表今日国内新闻头条
  • 网站开发过程及要点线上推广方式都有哪些
  • 一流的做pc端网站企业查询app
  • 哪些大网站是java做的淘宝关键词优化软件
  • 产品推广方案 推广方案怎么写做seo有什么好处
  • 互联网站平台有哪些百度竞价排名怎么收费
  • 自个做网站教程新闻今日要闻
  • 做电影网站技术艾滋病多久可以查出来
  • 晋城网站建设百度allin 人工智能
  • wordpress搜索模板沧州网站建设优化公司
  • 哪些网站有web做杭州百度快照优化公司
  • 盱眙在仕德伟做网站的有几家百度资源
  • 怎样建设网站优化网络营销毕业论文范文