网站建设企业资质等级,网站开发需求说明书模板,怎么设置网站支付功能,客户管理软件有哪些一、前言
在深挖ML4CO的代码过程中#xff0c;遇到了torch.take_along_dim()这个方法#xff0c;影响到我后续的代码阅读#xff1b;加之在上网搜索资料的过程中#xff0c;网络上对此函数的介绍文章少之又少#xff0c;即使有#xff0c;也是对torch官网文档中的解释进…一、前言
在深挖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 案例2dim0
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, dim0)
t13.3 案例3dim1
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, dim1)
t1参考文献
https://pytorch.org/docs/stable/generated/torch.take_along_dim.html#torch.take_along_dimhttps://blog.csdn.net/dongjinkun/article/details/132299818?spm1001.2014.3001.5501