PyTorch基础(19)-- torch.take_along_dim()方法

一、前言

在深挖ML4CO的代码过程中,遇到了torch.take_along_dim()这个方法,影响到我后续的代码阅读;加之在上网搜索资料的过程中,网络上对此函数的介绍文章少之又少,即使有,也是对torch官网文档中的解释进行英译汉或对函数的轻描淡写,看完解析后,对该函数的认识并没有因此而深刻。故在此谈一下自己的理解。
温馨提示:由于torch.take_along_dim函数与torch.gather函数的功能大同小异,因此在阅读这篇文章前,建议先阅读torch.gather()函数的解析PyTorch基础(16)-- torch.gather()。

二、方法解析

首先,我们需要看一下torch官方对于该函数的解释。白话解释为:我有一个tensor为input,沿着给定的input的维度(dim),给定取值的索引(indices),从input取出我想要的值。嗯……跟torch.gather方法不能说一模一样,只能说完全相同啊。
这个函数如何使用,直接通过案例来解释。
在这里插入图片描述

三、案例分析

3.1 案例1(不指定dim)

值得注意的是:不指定dim时,该方法会将input展开为一个一维tensor,然后根据indices进行取值。

import torch
t = torch.tensor([[1,2,3],[4,5,6],[7,8,9]])
index = torch.tensor([[2,0,2],[1,2,0],[1,1,1]])
t1 = torch.take_along_dim(t, index)
t1

输出为:
在这里插入图片描述
在这里插入图片描述

3.2 案例2(dim=0)

import torch
t = torch.tensor([[1,2,3],[4,5,6],[7,8,9]])
index = torch.tensor([[2,0,2],[1,2,0],[1,1,1]])
t1 = torch.take_along_dim(t, index, dim=0)
t1

在这里插入图片描述
在这里插入图片描述

3.3 案例3(dim=1)

import torch
t = torch.tensor([[1,2,3],[4,5,6],[7,8,9]])
index = torch.tensor([[2,0,2],[1,2,0],[1,1,1]])
t1 = torch.take_along_dim(t, index, dim=1)
t1

在这里插入图片描述
在这里插入图片描述

参考文献

  • https://pytorch.org/docs/stable/generated/torch.take_along_dim.html#torch.take_along_dim
  • https://blog.csdn.net/dongjinkun/article/details/132299818?spm=1001.2014.3001.5501

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity | Shader基础知识(第十集:shader常用外部资产单词速成)

目录 一、外部资产简介 二、常用的外部资产单词 三、常用的外部资产单词和引入内部 四、图片资产外部调整的具体讲解 1.Tiling,中文:铺地砖 2.Offset,中文:偏移 五、作者的话 一、外部资产简介 在第六集中,我们…

理解TCP Socket编程模型和I/O多路复用技术

最基本Socket模型 基本只能一对一通信,因为使用的是同步阻塞的方式,当服务端在还没处理完一个客户端的网络 I/O 时,或者 读写操作发生阻塞时,其他客户端是无法与服务端连接的。 多进程模型 基于最原始的阻塞网络 I/O&#xff0c…

【InternLM 实战营笔记】基于 InternLM 和 LangChain 搭建MindSpore知识库

InternLM 模型部署 准备环境 拷贝环境 /root/share/install_conda_env_internlm_base.sh InternLM激活环境 conda activate InternLM安装依赖 # 升级pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install str…

Node.js基础---npm与包

包 概念:Node.js 中的第三方模块又叫做包 来源:由第三方个人或团队开发出来的,免费使用,且为开源 为什么需要:Node.js的内置模块只有一些底层API,开发效率低 包是基于内置模块封装出来的,提供更…

音频筑基:CD还是HiRes?高清音频分类一文说透

音频筑基:CD还是HiRes?高清音频分类一文说透 前言音乐品质分类相关资料 前言 音频信号中,经常遇到高清音乐、无损音质、CD、HiRes等说法,本文主要在纯数字信号级别,从音源分类和编码质量两个维度,做一个分析…

使用 MongoDB Atlas 无服务器实例更高效地开发应用程序

使用 MongoDB Atlas无服务器实例更高效地开发应用程序 身为开发者,数据库并不一定需要您来操心。您可不想耗费时间来预配置集群或调整集群大小。同样地,您也不想操心因未能正确扩展而导致经费超标。 MongoDB Atlas 可为您提供多个数据库部署选项。虽然…

每日一题——LeetCode1544.整理字符串

方法一 字符串转数组删除元素 将字符串转为数组&#xff0c;遍历数组&#xff0c;如果碰到同一字母大写小写连续出现就原地删除这两个元素&#xff0c;最后把数组转回字符串并返回 var makeGood function(s) {let arrs.split()for(let i0;i<s.length-1;i){if(arr[i]!arr[…

基于SSM SpringBoot vue物流配送人员管理系统

基于SSM SpringBoot vue物流配送人员管理系统 系统功能 登录注册 个人中心 员工管理 考勤信息管理 小区信息管理 打卡信息管理 出勤统计管理 派单信息管理 工资结算管理 任务统计管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: SSM(Spring SpringMVC Mybaits)或…

Java反射机制底层原理

反射机制 这篇文章我是参考了Java 中的反射机制&#xff08;两万字超全详解&#xff09;_java反射-CSDN博客 然后我在这里做一下总结&#xff0c;因为原文章真的很好&#xff0c;我才疏学浅没什么进行补充&#xff0c;只能做出自己的总结并且写一下自己对这个的理解。 原理&…

有效果的新闻软文推广都是怎么做的?

新闻软文推广能够在短时间内提高产品知名度&#xff0c;塑造品牌的美誉度与公信力&#xff0c;并且效果不是短期的&#xff0c;有一定的持续性&#xff0c;是数字化时代下品牌进行宣传的主要方式之一&#xff0c;受到很多企业的青睐&#xff0c;今天媒介盒子就来和大家聊聊&…

网络编程第二天

1.基于TCP的通信(面向连接的通信) 服务器代码实现&#xff1a; #include <myhead.h> #define IP "192.168.126.91" #define PORT 9999 int main(int argc, const char *argv[]) {//1、创建套接字int sfd-1;if((sfdsocket(AF_INET,SOCK_STREAM,0))-1){perror(…

Python学习DAY09_文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景&#xff0c;而实现数据持久化最直接简单的方式就是将数据保存到文件中。 在 Python 中实现文件的读写操作其实非常简单&#xff0c;通过 Python 内置的 open 函数&#xff0c;我们可以指定文件名、操作模式、编码信…

定时任务调动框架Quartz+SpringBoot集成

Quartz 是一个基于 Java 的广泛使用的开源的任务调度框架 官网&#xff1a; http://www.quartz-scheduler.org/ 源码&#xff1a; https://github.com/quartz-scheduler/quartz 整个 Quartz 的代码流程基本基本如下&#xff1a; 1、首先需要创建我们的任务(Job)&#xff0c…

【重要公告】BSV区块链协会宣布将启动多项动态安全增强措施

​​发表时间&#xff1a;2024年2月16日 2024年2月16日&#xff0c;瑞士楚格 - BSV区块链协议的管理机构BSV区块链协会&#xff08;以下简称“BSV协会”&#xff09;宣布对其运营模式实施全新的安全架构&#xff0c;其中包括引入网络访问规则和数字资产找回协议&#xff0c;以及…

【Go语言】Go语言中的字典

Go语言中的字典 字典就是存储键值对映射关系的集合&#xff0c;在Go语言中&#xff0c;需要在声明时指定键和值的类型&#xff0c;此外Go语言中的字典是个无序集合&#xff0c;底层不会按照元素添加顺序维护元素的存储顺序。 如下所示&#xff0c;Go语言中字典的简单示例&…

Linux系统Docker部署Nexus Maven并实现远程访问本地管理界面

文章目录 1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus Nexus是一个仓库管理工具&#xff0c;用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关&#xff0c;可…

如果大数据中多头借贷风险严重怎么办呢?

在大数据报告中&#xff0c;多头借贷风险、逾期风险、联系人风险、司法风险等是大数据评分评级的重要组成部分&#xff0c;大数据多头借贷风险也是很多银行和金融平台比较看重的&#xff0c;那如果大数据中多头借贷风险严重怎么办呢?本文详细为大家讲讲。 大数据多头风险是什么…

Niginx介绍和安装使用

Nginx是什么&#xff1f; Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的&#xff0c;第一…

代码随想录算法训练营第二十一天|530.二叉搜索树的最小绝对差、 501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先

530.二叉搜索树的最小绝对差 题目链接/文章讲解&#xff1a; 代码随想录 视频讲解&#xff1a;二叉搜索树中&#xff0c;需要掌握如何双指针遍历&#xff01;| LeetCode&#xff1a;530.二叉搜索树的最小绝对差_哔哩哔哩_bilibili 1.方法1 1.1分析及思路 了解到差值最小的数…

DevEco Studio下载与安装(Windows)

下载地址&#xff1a; HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 安装时直接点击 next 即可。 运⾏已安装的DevEco Studio&#xff0c;⾸次使⽤&#xff0c;请选择Do not import settings&#xff0c;单击OK。 1.安装Node.js 如果本地有下载&#xff0c;可以…