torch.gather以及torch,searchsorted使用示例

本文介绍了PyTorch中的两个重要函数:torch.gather和torch.searchsorted。torch.gather用于根据指定的索引从输入张量中收集元素,而torch.searchsorted则是在排序后的张量中找到另一个张量元素应插入的位置,返回值为一个与原张量形状相同的索引张量。这两个函数在处理张量数据时非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

torch.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 = torch.tensor([[2, 1, 0]]).t()
tensor_1 = tensor_0.gather(1, index)
print(tensor_1)

在这里插入图片描述**

torch.searchsorted使用

**

import torch.nn as nn
import torch


def main():
        x = torch.linspace(1, 11, 10)
        y = torch.linspace(2, 12, 10)
        x=x.unsqueeze(-1).expand(x.size(0),10)
        y=y.unsqueeze(-1).expand(y.size(0),100)
        print(x.shape,y.shape)
        res1 = torch.searchsorted(x, y)
        print(res1)
main()
# torch.Size([10, 10]) torch.Size([10, 100])
# tensor([[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
#         ...
#         [[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
#         10, 10, 10, 10, 10, 10, 10, 10, 10, 10]])

torch.searchsorted()函数的作用是x经过排序过后,y在x中寻找自己的每个元素的位置,输出的维度与y保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生成滞涨网络~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值