【问题标题】:PyTorch get indices of value in two-dimensional tensorPyTorch 获取二维张量中的值索引
【发布时间】:2020-05-11 11:43:36
【问题描述】:

给定以下张量(或任何具有二维的随机张量),我想获得 '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])

但这看起来很混乱,而且可能很慢。有没有更好的方法可以更快、更火炬?

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

【问题讨论】:

    标签: python pytorch tensor


    【解决方案1】:

    (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])
    

    【讨论】:

      猜你喜欢
      • 2019-09-15
      • 2020-09-26
      • 2018-06-08
      • 1970-01-01
      • 2019-02-05
      • 2021-11-03
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多