pytorch取每行给定位置的数字

本文介绍了PyTorch中的gather和scatter操作,通过示例展示了如何使用这两个函数来选取和设置张量的特定元素。文章还强调了理解张量维度的重要性,并提供了加深理解的额外资源。
部署运行你感兴趣的模型镜像
  • 有发现gather就可以实现,哭笑.jpg
import torch

a = torch.arange(24).view(4,6)
b = torch.tensor([4,0,5,2])
c = a.gather(dim=-1,index=b.unsqueeze(1)).squeeze(1)
  • 以下是原文
import torch

a = torch.arange(24).view(4,6)
print(a)
b = torch.tensor([4,0,5,2])
mask = torch.zeros_like(a)
bb = b.unsqueeze(1)
print(bb)
mask = mask.scatter_(1, bb, torch.ones_like(bb))
res = a[mask.bool()]
print(res)
  • 输出
tensor([[ 0,  1,  2,  3,  4,  5],
        [ 6,  7,  8,  9, 10, 11],
        [12, 13, 14, 15, 16, 17],
        [18, 19, 20, 21, 22, 23]])
tensor([[4],
        [0],
        [5],
        [2]])
tensor([ 4,  6, 17, 20])
  • 另外,还有对pytorch维度的理解:从unsqueeze可以看出,对n维向量,从外到里是从0到n-1。这篇也有维度的事情,可以看看,互相参照,加强理解和记忆。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值