pytorch.gather()函数

pytorch.gather()函数

官方文档

参考评论

直接举例子
import torch

tensor_0 = torch.arange(3, 12).view(3, 3)
print(tensor_0)
tensor([[ 3,  4,  5],
        [ 6,  7,  8],
        [ 9, 10, 11]])
index矩阵为(维度需要与原tensor一致)
index=[ [x1,x2,x2],
        [y1,y2,y2],
        [z1,z2,z3] ]
1. 如果dim=0,新tensor为
[ [(x1,0),(x2,1),(x3,2)]
  [(y1,0),(y2,1),(y3,2)]
  [(z1,0),(z2,1),(z3,2)] ]
eg:
index = torch.tensor([[2, 1, 0],
                      [1, 2, 0],
                      [0, 1, 2]  ])
tensor_1 = tensor_0.gather(0, index)
print(tensor_1)
tensor([[ 9,  7,  5],
        [ 6, 10,  5],
        [ 3,  7, 11]])
2. 如果dim=1,新tensor为
[ [(0,x1),(0,x2),(0,x3)]
  [(1,y1),(1,y2),(1,y3)]
  [(2,z1),(2,z2),(2,z3)] ]
eg:
index = torch.tensor([[2, 1, 0],
                      [1, 2, 0],
                      [0, 1, 2]  ])
tensor_2 = tensor_0.gather(1, index)
print(tensor_2)
tensor([[ 5,  4,  3],
        [ 7,  8,  6],
        [ 9, 10, 11]])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值