LibTorch:tensor.index_select()

2023-05-16

LibTorch中的tensor.index_select()方法与PyTorch中的用法类似,作用都是在指定的tensor维度dim上按照index值索引向量。先看一下在LibTorch中的声明:

inline Tensor Tensor::index_select(int64_t dim, const Tensor & index)

主要是两个参数,一个是要选择的维度,对于二维tensor来说,0代表按行索引,1代表按列索引,参数index代表索引值,这个参数要重点注意一下!首先index它本身就是一个tensor!另外,还得是int64(kLong)类型的tensor!

下面举例说明:

如果我们要获取一个[shape为(3, 2)]的二维tensor的第列维度上(dim=1)的数据(index=0,即第0列)[shape为(3, 1)]并打印,如果像下面这样写:(from_blob的作用是将数组转化为tensor)

#include "iostream"
#include "torch/script.h"
using namespace torch::indexing;
int main()
{
    float a[3][2] = {1};
    at::Tensor b = at::from_blob(a, {3, 2}, at::kFloat).index_select(1, at::tensor(0));
    std::cout << b << std::endl;
    return 0;
}

如果就这么运行,那么bug就会出现了。。。哈哈哈,先看看bug说的啥吧:

terminate called after throwing an instance of 'c10::Error'
  what():  index_select(): Expected dtype int64 for index (index_select_out_cpu_ at ../aten/src/ATen/native/TensorAdvancedIndexing.cpp:387)

发现问题没?上面不是说了嘛,index它本身就是一个tensor!另外,还得是int64(kLong)类型的tensor!所以我们还要对at::tensor(0)做一下数据类型的转换,如下面这段代码就正常了:

#include "iostream"
#include "torch/script.h"
using namespace torch::indexing;
int main()
{
    float a[3][2] = {{1,2},{3,4},{5,6}};
    at::Tensor b = at::from_blob(a, {3, 2}, at::kFloat).index_select(1, at::tensor(0).toType(at::kLong));
    std::cout << b << std::endl;
    return 0;
}

/*****************运行结果*******************/
 1
 3
 5
[ CPUFloatType{3,1} ]

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LibTorch:tensor.index_select() 的相关文章

  • jQuery:如何仅根据表标题从表的列中选择值

    我有一个带有标题 ID 的表 我需要选择此标题下的所有字段 我无权访问源代码 并且该表中没有使用任何类 关于如何完成这件事有什么想法吗 要获取第一列 function var col td nth child 1
  • 何时在 mysql 中使用 Union [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于 Union 您会在什么现实情况下使用它 因为对我来说 对具有不同列用途 含义的两个表中的两个选择查询使用联合是没有意义的 例如
  • codeigniter,获取mysql表列中的最大值

    我正在使用 codeigniter 2 我有一个 mysql 表列 存储每个学生所用的时间 例如 1 2327 0 6547 1 9876 我想获得最大值 值该列 这是我的代码 this gt db gt select max time t
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • 在一个查询中对同一个表进行多个 COUNT SELECT

    对于某些人来说 这可能看起来很简单 但我就是无法理解 我一遍又一遍地从同一个表中进行多个 MS SQL SELECT 查询 SELECT count Page as tAEC FROM someTable WHERE Page LIKE A
  • 查询获取每条记录的最小日期[重复]

    这个问题在这里已经有答案了 我想获取表中每条记录的最小日期 该表具有多个带有一个主键的日期条目 看看我的桌子 CaseNo Entry date ABC 001 2 12 13 ABC 002 2 09 13 ABC 001 1 01 13
  • HTML 选择框,从 servlet 中选择数据

    再会 我在 html 中的选择框上遇到问题 我位于简单 CRUD 项目的编辑部分 在用户可以编辑之前 将首先显示所选数据 然后我通过 servlet 在数据库中检索它 现在我希望我检索的数据成为我的选择框中选定的数据 默认 product
  • 什么是更好的?子查询或内连接十个表?

    一个旧系统已抵达我们的办公室进行一些更改和修复 但它也存在性能问题 我们并不确切知道这种缓慢的根源是什么 当我们重构旧代码时 我们发现了几个具有以下模式的 sql 查询 出于示例目的 简化了查询 SELECT SELECT X FROM A
  • 获取 ddSlick 下拉列表中所选

    当前返回未定义 注释行中应该包含什么内容来提醒当前的值 1 2 3 或 4
  • 如何在 Eigen3 中重塑张量?

    我从 C 中的张量流会话的输出向量中获得了一些 Eigen TensorMap 我想对 Eigen TensorMap 进行一些操作 重塑和连接等 但是 由于一些奇怪的错误 我的代码无法编译 我尝试用纯 Eigen3 代码重现它 inclu
  • 在 SELECT 中将列值拆分为两列?

    我在 varchar 列中有一个字符串值 它是一个由两部分组成的字符串 在它到达数据库之前分割它不是一个选择 该列的值如下所示 one column part1 part2 part1 part2 所以我想要的是一个如下所示的结果集 col
  • 在 SQL Server 中执行嵌套 case 语句逻辑的最佳方法

    我正在编写一个 SQL 查询 其中返回的一些列需要根据很多条件进行计算 我目前正在使用嵌套的 case 语句 但它变得混乱 有更好的 更有组织性和 或可读性 方法吗 我使用的是 Microsoft SQL Server 2005 一个简化的
  • 选择时的套接字阻塞和超时

    我目前正在创建一个回显服务器 该服务器在空闲 maxWaitTime 后断开客户端连接 我希望程序会阻塞套接字 直到客户端发送数据 但是当我在 gdb 中运行该程序时 它会通过 select 并阻塞 Readline 我知道 retval
  • MySQL SELECT 输出同一行中每个 id 的下一个日期

    我查询的表结构如下 ID Date Before value After value 1 2014 04 25 Win Loss 1 2014 04 30 Loss Win 1 2014 08 18 Win Loss 1 2014 08 2
  • 覆盖 Enter 键的 SELECT 行为

    使用 HTML 控件 其操作或多或少类似于电子表格 具有可编辑数据单元格的矩阵 当涉及从 SELECT 派生的单元格时 当选择该类型的单元格进行编辑时 我遇到了获得正确行为的问题 如果我使用默认格式 大小 0 渲染 Select 则用户会得
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • 神经网络 - 我的网络似乎训练得很好,但在分类报告中它是完全随机的

    我正在训练一个模型来对 3 种类型的车辆进行分类 一切看起来都很顺利 直到我尝试用我的模型预测任何事情 预测结果是完全随机的 我使用 3 个类别的 15000 张图像 每个类别 5000 个 进行训练 并使用 3 个类别的 6000 个图像
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 选择具有 SQL Server XML 列类型的特定行

    我正在尝试从类似于以下定义的表中选择数据 Column Data Type Id Int DataType Int LoggedData XML 但我只想选择具有特定 DataType 值并且在 LoggedData 列中包含字符串 或评估

随机推荐

  • SpringCloud(九)GateWay服务网关

    文章目录 1 概述简介1 官网2 是什么3 能干嘛4 微服务架构中网关在哪里5 有Zuul了怎么有出来gateway 2 三大核心概念3 Gateway工作流程4 入门配置1 新建Module2 POM文件3 YML4 主启动类5 9527
  • SpringSecurity框架介绍

    文章目录 1 概要2 历史3 同款产品对比1 Spring Security2 Shiro 4 模块划分 1 概要 Spring 是非常流行和成功的 Java 应用开发框架 xff0c Spring Security 正是 Spring 家
  • SpringSecurity入门案例

    文章目录 1 入门案例演示1 创建一个Springboot项目2 引入相关依赖3 编写Controller进行测试4 运行项目 2 权限管理中的相关概念1 主体2 认证3 授权 3 SpringSecurity 基本原理4 UserDeta
  • SpringSecurity Web 权限方案

    文章目录 1 设置登录系统的账号 密码2 实现数据库认证来完成用户登录1 准备sql2 添加依赖3 编写实体类4 整合 MybatisPlus 制作 mapper5 编写登录实现类6 测试访问 3 自定义设置登录页面 xff0c 不需要认证
  • SpringSecurity 微服务对权限的整合

    文章目录 1 微服务认证与授权实现思路2 权限管理数据模型3 项目结构和功能说明3 核心业务1 代码结构图说明2 创建认证授权相关的工具类 xff08 1 xff09 DefaultPasswordEncoder xff1a 密码处理工具类
  • Idea配置热部署

    一 概念 热部署就是正在运行状态的应用 xff0c 修改了他的源码之后 xff0c 在不重新启动的情况下能够自动把增量内容编译并部署到服务器上 xff0c 使得修改立即生效 热部署为了解决的问题有两个 xff0c 一是在开发的时候 xff0
  • Vue CLI(脚手架)

    文章目录 一 Vue CLI21 Vue CLI使用前提 xff0c 需要安装NodeJS和Webpack2 Vue CLI的使用3 Vue CLI2详解4 Runtime Compiler和Runtime only的区别5 使用 npm
  • vue-router 详解

    文章目录 1 认识vue router2 安装和使用vue router3 路由的默认路径4 HTML5的History模式5 router link属性介绍6 路由代码跳转7 动态路由8 路由懒加载9 嵌套路由实现10 传递参数的方式11
  • LibTorch对tensor的索引/切片/掩码操作:对比PyTorch

    目录 一 通过索引获取值 二 通过索引设置值 三 掩码操作 在PyTorch C 43 43 API xff08 libtorch xff09 中对张量进行索引的方式与Python API的方式很相似 诸如None integer bool
  • 小米商城项目(springboot+thymeleaf)

    starsea mall 项目是一套电商系统 xff0c 包括 starsea mall 商城前台系统及商城后台系统 xff0c 基于 Spring Boot 2 X 及相关技术栈开发 前台商城系统包含首页登录 商品分类 新品上线 首页轮播
  • Idea解决SVN的代码冲突

    解决冲突 当B用户代码提交发生冲突后 xff0c 可以再次选择更新 xff1a 选择OK xff1a 弹窗如下 xff1a 如果选择Merge xff0c 则弹出版本差异的窗口 xff0c 让用户自行查看差异后再选择以哪个版本的修改为准 x
  • Axiso解决跨域访问

    首先请检查下你的 Vue 版本 xff0c Vue2 和 Vue3 跨域方式不同 xff1a vue V 2 X or 3 X 一 Vue2 版本 这里以访问 Ve2x 的一个公告API为例 xff0c 直接访问如下 xff1a span
  • SpringBoot集成Spring Security(1)——入门程序

    本篇文章环境 xff1a SpringBoot 2 0 43 Mybatis 43 Spring Security 5 0 注意 xff1a SpringSecurity 5 0 43 版本变动较多 xff0c 且不兼容之前版本 xff0c
  • Windows下MongoDB 3.x 的安装及配置

    一 登录Mongodb官网 https www mongodb com try download community 下载安装包 二 安装MongoDB 安装比较简单 xff0c 类似于QQ xff0c 微信等软件 xff0c 中间主要是选
  • 如何获取 OSS AccessKeyId、AccessKeySecret

    开通阿里云oss xff1a https www aliyun com 1 点击概览 AccessKey oss控制台官网链接 xff1a https oss console aliyun com overview 2 出现下图 xff0c
  • vscode怎么使用git

    1 clone代码库 在vscode中输入快捷键 Ctrl 43 Shift 43 P 打开vscode的命令框 xff0c 在框中输入 git clone 并回车 xff0c 然后在文本框中输入git代码库的地址 2 修改clone下来的
  • Json与Java对象相互转化

    出现问题的原因 xff1a 在做项目中 xff0c 我们使用Hutool工具的Http请求调用远程服务器的接口 xff0c 返回Json字符串 xff0c 现在要把Json字符串转化为对象进行存储 xff0c 传给前端vue 访问远程返回的
  • 微信小程序基础

    文章目录 一 微信小程序介绍1 为什么是微信 程序2 官 微信 程序体验 二 微信小程序准备工作1 注册账号2 登录小程序3 获取APPID4 开发工具 三 第 个微信 程序1 打开微信开发者 具2 新建 程序项 3 填写项 信息4 成功5
  • 微信小程序之动态添加、删除指定view和获取input值

    遇到的问题 xff1a 动态的添加指定的view内容 嗯 很简单 wx for就搞定 xff01 xff01 动态添加的内容中有input xff0c 最终获取值的时候 xff0c 要获取到所有input的值并且是一个数组 动态删除指定的已
  • LibTorch:tensor.index_select()

    LibTorch中的tensor index select 方法与PyTorch中的用法类似 xff0c 作用都是在指定的tensor维度dim上按照index值索引向量 先看一下在LibTorch中的声明 xff1a inline Ten