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

【python】高级切片语法/多维张量索引

整体上下文

# 核心代码
pe[0, :, 0::2] = torch.sin(position * div_term)    # even index
pe[0, :, 1::2] = torch.cos(position * div_term)    # odd index

语法详解

1. 多维张量索引语法

pe[0, :, 0::2]

这是一个三维张量索引,各部分含义:

  • pe: 三维张量,形状 (batch_size, sequence_length, d_model)
  • [0, :, 0::2]: 索引操作符,包含三个维度索引

维度详解

  • 第一个索引 0: 批次维度(batch dimension)
    • 获取第0个批次(如果批次大小为1,则索引0有效)
  • 第二个索引 :: 序列长度维度(sequence dimension)
    • : 表示取该维度的所有元素(所有位置)
    • 相当于 0:max_len
  • 第三个索引 0::2: 特征维度(feature dimension)
    • 步长切片(step slicing)

2. 步长切片语法 start:stop:step

# 基本语法
[start:stop:step]  # 从start开始,到stop结束(不包含),步长为step# 示例
pe[0, :, 0::2]  # 从索引0开始,步长为2(所有偶数索引)
pe[0, :, 1::2]  # 从索引1开始,步长为2(所有奇数索引)

详细说明

  • 0::2:

    • 0: 起始索引
    • 省略的: : 表示到该维度结束
    • 2: 步长(每2个取一个)
    • 相当于 0, 2, 4, 6, 8, ...
  • 1::2:

    • 1: 起始索引
    • 2: 步长
    • 相当于 1, 3, 5, 7, 9, ...

3. 广播机制的应用

torch.sin(position * div_term)

这里涉及广播乘法

  • position: 形状 (max_len, 1)
  • div_term: 形状 (d_model/2,)

广播过程

  1. position 形状变为 (max_len, 1)
  2. div_term 形状变为 (1, d_model/2)
  3. 结果形状:(max_len, d_model/2)
# 具体示例
max_len = 5
d_model = 8  # 所以 d_model/2 = 4position = torch.tensor([[0], [1], [2], [3], [4]])  # (5, 1)
div_term = torch.tensor([1.0, 0.1, 0.01, 0.001])    # (4,)# 广播后相乘
result = position * div_term  # 形状: (5, 4)
# 等价于:
# [[0*1.0, 0*0.1, 0*0.01, 0*0.001],
#  [1*1.0, 1*0.1, 1*0.01, 1*0.001],
#  [2*1.0, 2*0.1, 2*0.01, 2*0.001],
#  [3*1.0, 3*0.1, 3*0.01, 3*0.001],
#  [4*1.0, 4*0.1, 4*0.01, 4*0.001]]

4. 赋值操作的形状匹配

pe[0, :, 0::2] = torch.sin(position * div_term)

形状分析

  • 左侧 pe[0, :, 0::2]:

    • pe 形状: (1, max_len, d_model)
    • pe[0, :, 0::2] 形状: (max_len, d_model/2)
      • 第0维: max_len(所有序列位置)
      • 第1维: d_model/2(偶数索引的特征)
  • 右侧 torch.sin(position * div_term):

    • 形状: (max_len, d_model/2)

形状完全匹配,可以赋值。

http://www.jsqmd.com/news/347011/

相关文章:

  • 实用指南:JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
  • 2026男士持久留香沐浴露种草指南:选对香氛,全天清爽不尴尬 - 品牌测评鉴赏家
  • 男士护肤新宠!温和洗面奶大揭秘 - 品牌测评鉴赏家
  • 2026年变压器厂家推荐排行榜:干式/油浸式/光伏/充电桩变压器,S20/S22一级能耗与SCB14/SCB18干式变压器实力品牌深度解析 - 品牌企业推荐师(官方)
  • 男士洗面奶口碑品牌大全!油皮/敏肌闭眼入,清爽型男必备 - 品牌测评鉴赏家
  • 男士必看!告别螨虫困扰,这些沐浴露温和又有效 - 品牌测评鉴赏家
  • 2026年圆钢厂家实力推荐榜:热轧/冷拉/冷拔/合金圆钢,Q235/Q345/45#等全规格优质品牌深度解析与采购指南 - 品牌企业推荐师(官方)
  • 油皮男士洗面奶指南+宝藏:告别油光,洗出清爽型男肌 - 品牌测评鉴赏家
  • 2026年 隔音设备厂家推荐排行榜:隔音箱/隔音房/隔音舱/声纹采集室,专业降噪与精密测试解决方案深度解析 - 品牌企业推荐师(官方)
  • 2026.2.5 做题记录
  • 男士痘肌洗面奶封神榜!油痘肌闭眼入,洗出清爽净透脸 - 品牌测评鉴赏家
  • 2026.2.4 做题记录
  • 德语不规则的现在时变位单词总结 三个tier
  • 乔尔·格林布拉特的价值投资实证研究
  • 大数据工程中的数据血缘分析工具比较
  • 千问AI全面融入阿里生态:从“聊天”到“办事”,品牌如何抓住AI推荐新红利? - 品牌2026
  • 2026年 室内门厂家推荐排行榜:极简铝木/实木/铝龙骨/铝蜂窝室内门,家装门窗品质与设计美学深度解析 - 品牌企业推荐师(官方)
  • 2026年 分散剂厂家推荐排行榜:造纸涂料/无机颜料助磨/轻钙助滤打散/氧化钙专用/重钙研磨改性/食品级碳酸钙/高比表氢氧化钙/盾构机冲洗分散剂专业解析 - 品牌企业推荐师(官方)
  • 代码源广附
  • 平衡二叉搜索树:AVL树和红黑树
  • 2026年裁刀厂家推荐排行榜:金刚石裁刀、钨钢裁刀、锋钢裁刀、铜箔裁刀,精密耐用工业切割利器精选 - 品牌企业推荐师(官方)
  • 实战|AI应用架构师用GNN构建智能供应链的架构实践
  • 【python】广播语法
  • P4147 玉蟾宫
  • 在REMIX中运用OpenZeppelin集成透明升级合约和在HARDHAT中集成透明升级合约演示
  • 三种机器深度学习神经网络模型实现(课程报告+数据+源代码)CNN、VGG-16、LSTM
  • 代码源广附2026寒
  • 三端毕设项目推荐-springboot基于B_S架构的积分制零食自选平台基于web的积分制零食自选销售平台【附源码+文档,调试定制服务】
  • 理论+实战:通过开发一个LabVIEW TCP Server端工具来学习下TCP的通信
  • 信息安全毕业设计创新的项目选题怎么选