二维张量中的Pyrotch值指数

2024-06-26 00:03:44 发布

您现在位置:Python中文网/ 问答频道 /正文

给定以下张量(或任意二维随机张量),我想得到'101'的索引:

tens = tensor([[  101,   146,  1176, 21806,  1116,  1105, 18621,   119,   102,     0,
             0,     0,     0],
        [  101,  1192,  1132,  1136,  1184,   146,  1354,  1128,  1127,   117,
          1463,   119,   102],
        [  101,  6816,  1905,  1132, 14918,   119,   102,     0,     0,     0,
             0,     0,     0]])

从相关的答案中,我知道我可以做这样的事情:

idxs = torch.tensor([(i == 101).nonzero() for i in tens])

但这看起来很混乱,而且可能相当缓慢。有没有更好的方法可以做到这一点,即快速和更火炬-y

仅讨论一维张量的相关问题:


Tags: ofthe答案forgetindextorchpytorch
1条回答
网友
1楼 · 发布于 2024-06-26 00:03:44

怎么样(tens == 101).nonzero()[:, 1]

In [20]: from torch import tensor                                                                       

In [21]: tens = torch.tensor([[  101,   146,  1176, 21806,  1116,  1105, 18621,   119,   102,     0, 
    ...:              0,     0,     0], 
    ...:         [  101,  1192,  1132,  1136,  1184,   146,  1354,  1128,  1127,   117, 
    ...:           1463,   119,   102], 
    ...:         [  101,  6816,  1905,  1132, 14918,   119,   102,     0,     0,     0, 
    ...:              0,     0,     0]])                                                                

In [22]: (tens == 101).nonzero()[:, 1]                                                                  
Out[22]: tensor([0, 0, 0])

相关问题 更多 >