Tensor列表索引本质

张量列表索引本质
单列表索引

将原张量shape对应位置数字更改为索引列表的形状

data = torch.randn((9, 512, 30))
index_list = [0, 1, 3]
print(data[:, index_list].shape)
'''
[[9, 3, 30]]
'''# torch.Size([1, 6, 5])
index2_list = torch.IntTensor([[[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8]]])
print(data[:, index2_list].shape)
# torch.Size([6, 1, 6, 5, 30])
多列表索引

双列表索引本质就是索引列表之间通过广播机制,达成一致。

data = torch.randn((6, 512, 30))
# index1: torch.Size([1, 6, 5])
index1 = torch.IntTensor([[[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8],[4, 5, 6, 7, 8]]])# index2: torch.Size([5])
index2 = torch.IntTensor([0, 1, 2, 3, 4])# 双列表索引
print(data[index1, index2].size())
'''
torch.Size([1, 6, 5, 30])
'''# 三列表索引
print(data[index1, index2, index1].size())
'''
torch.Size([1, 6, 5])
'''
列表索引本质

多列表是先广播。

如果是单列表:

  • [1] 返回:[data[1]]

  • [1, 2, 3], 返回:[data[1], data[2], data[3]]

  • [[1, 2, 3]],返回: [ [ data[1], data[2], data[3] ] ]

如果是双列表:

  • [1], [2] : 返回:[ data[1, 2] ]
  • [[1]], [1, 2] : 先广播:[[1, 1]], [[1, 2]] 重叠 [[(1,1), (1, 2)]] 返回: [ [ data[1, 1], data[1,2] ] ]

多列表以此类推。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++高阶】哈希函数底层原理探索:从算法设计到实现优化

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:模拟实现 map与set 🌹🌹期待您的关注 🌹🌹 ❀哈希 📚1. unord…

比较 WordPress 、 Baklib 和 BetterDocs

对于希望管理其产品和服务的在线文档或知识库以支持其客户和员工的组织来说,市场上有太多的平台和工具。一些组织使用 WordPress 作为 Web 内容管理,并打算使用可用的插件。如果您是这样的组织之一,正在考虑使用广泛使用的 WordPress 插件之一…

(ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类

文章目录 Robust deep alignment network with remote sensing knowledge graph for zero-shot and generalized zero-shot remote sensing image scene classification相关资料摘要引言遥感知识图谱的表示学习遥感知识图谱的构建实体和关系的语义表示学习创建遥感场景类别的语…

ts踩坑!vue3中ts文件用export导出公共方法的ts类型定义

当我们有一个ts文件,定义并export出该function,其中方法里边有定义的变量,方法、钩子函数等多种,并最终return出该变量、方法。 此时 ts规则校验会让我们返回该函数类型。如下 export default function () {const chart ref();c…

Java基础-序列化、泛型、1.8新特性、其他

目录 序列化 什么是序列化?什么是反序列化? Serializable 接口有什么用? serialVersionUID 又有什么用? Java 序列化不包含静态变量吗? 如果有些变量不想序列化,怎么办? 说说有几种序列化…

为什么 centos 下使用 tree 命令看不见 .env 文件

CentOS 下使用 tree 命令看不到 .env 文件主要有两个可能的原因: 默认情况下,tree 命令不显示隐藏文件。在 Linux 系统中,以点(.)开头的文件或目录被视为隐藏文件。.env 文件就属于这种隐藏文件。 您可能没有安装 tree 命令。如果在 CentOS …

Yolo-World网络模型结构及原理分析(一)——YOLO检测器

文章目录 概要一、整体架构分析二、详细结构分析YOLO检测器1. Backbone2. Head3.各模块的过程和作用Conv卷积模块C2F模块BottleNeck模块SPPF模块Upsampling模块Concat模块 概要 尽管YOLO(You Only Look Once)系列的对象检测器在效率和实用性方面表现出色…

计网:物理层

写在开头:物理层就负责传送比特0和1, 本质上理解物理层就是理解传输介质哪个表示比特0和1,如:高电平表示1、低电平表示0等 物理层主要任务: 机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固…

【BUG】已解决:requests.exceptions.ProxyError: HTTPSConnectionPool

已解决:requests.exceptions.ProxyError: HTTPSConnectionPool 目录 已解决:requests.exceptions.ProxyError: HTTPSConnectionPool 【常见模块错误】 原因分析 解决方案 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&am…

Android Studio 输出信息出现乱码

现象 解决办法 一、第一步 二、第二步 添加如下代码: 直接复制进去即可 -Dfile.encodingUTF-8 注意 :最后,添加后重新编译工程,如果还是发现乱码,则需要关闭Android Studio重新启即可

Spring Security之安全异常处理

前言 在我们的安全框架中,不管是什么框架(包括通过过滤器自定义)都需要处理涉及安全相关的异常,例如:登录失败要跳转到登录页,访问权限不足要返回页面亦或是json。接下来,我们就看看Spring Sec…

Docker核心技术:容器技术要解决哪些问题

云原生学习路线导航页(持续更新中) 本文是 Docker核心技术 系列文章:容器技术要解决哪些问题,其他文章快捷链接如下: 应用架构演进容器技术要解决哪些问题(本文)Docker的基本使用Docker是如何实…

【AI大模型】生成式AI的未来——CHAT还是AGENT?

【AI大模型】CHAt还是AGENt? 最近,许多人工智能公司或者部门都在针对Agent——人工智能体有所动作。 例如: 文心一言智能体 Gnomic智能体 英伟达视觉AI代理 那么人工智能概念中的智能体Agent到底是什么呢?它又为何会突然在人工智…

虚拟化环境中如何实现以业务为中心的网络隔离?Everoute 推出虚拟专有云网络(VPC)功能

目前,不少企业都利用云计算和虚拟化技术提升 IT 系统灵活性、敏捷性和成本效益。然而,云环境的“多租户”特性也为业务安全带来了新的挑战,如何保障不同业务主体或租户之间的数据安全和网络隔离,成为企业关注的焦点。 作为 Smart…

可控硅触发板选型指南

可控硅触发板(SCR Trigger Board)是一种用于触发和控制可控硅(SCR)导通的电子设备。在电力控制、电机驱动、变频调速等领域中,可控硅触发板发挥着至关重要的作用。它通过精确的触发信号,实现对可控硅的启动和控制,从而实现对电路的开关和电流…

【ROS2】高级:安全-理解安全密钥库

目标:探索位于 ROS 2 安全密钥库中的文件。 教程级别:高级 时间:15 分钟 内容 背景安全工件位置 公钥材料 私钥材料域治理政策 安全飞地 参加测验! 背景 在继续之前,请确保您已完成设置安全教程。 sros2 包可以用来创…

昇思25天学习打卡营第25天 | RNN实现情感分类

学习心得:RNN实现情感分类 在自然语言处理(NLP)的领域中,情感分类是一个极具挑战性的任务,它要求模型能够准确地从文本中识别出情感倾向。通过使用MindSpore框架和RNN模型进行情感分类,我获得了许多有关构…

如何理解String的不可变性

一、缓存角度 在Java中对于字符串的处理,是利用字符串池去存储Java中的字符串,在字符串池中,俩个内容相同的字符串变量,可以从池中指向同一个对象,这样就节省了空间资源。 public class Main {public static void ma…

如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)

我们可以简单的通过next start,来启动next.js的application。不过在实际的使用中,面对更大的访问压力,通过多进程的方式来部署next.js呢? 我们可以首先通过pm2的cluster mode来完成这个事情。cluster mode是nodejs非常给力的一种…

web服务器测试

[rootlocalhost ~]# vim /etc/nginx/conf.d/test_ test_ip.conf test_name.conf test_virtualdir.conf [rootlocalhost ~]# vim /etc/nginx/conf.d/test_name.conf [rootlocalhost ~]# tree /www/