Извлечь субтензор в PyTorch - PullRequest
       19

Извлечь субтензор в PyTorch

0 голосов
/ 01 октября 2019

Для этого тензора есть PyTorch,

tensor([[ 0.7646,  0.5573,  0.4000,  0.2188,  0.7646,  0.5052,  0.2042,  0.0896,
          0.7667,  0.5938,  0.3167,  0.0917],
        [ 0.4271,  0.1354,  0.5000,  0.1292,  0.4260,  0.1354,  0.4646,  0.0917,
         -1.0000, -1.0000, -1.0000, -1.0000],
        [ 0.7208,  0.5656,  0.3000,  0.1688,  0.7177,  0.5271,  0.1521,  0.0667,
          0.7198,  0.5948,  0.2438,  0.0729],
        [ 0.6292,  0.8250,  0.4000,  0.2292,  0.6271,  0.7698,  0.2083,  0.0812,
          0.6281,  0.8604,  0.3604,  0.0917]], device='cuda:0')

Как мне извлечь в новый Тензор для этих значений

0.7646,  0.5573,  0.4000,  0.2188
0.4271,  0.1354,  0.5000,  0.1292

Как получить первые 4 из двух строк в новый тензор

1 Ответ

2 голосов
/ 01 октября 2019

На самом деле на вопрос ответили @zihaozhihao в комментариях, но если вам интересно, откуда это взялось, было бы полезно, если бы вы структурировали свой Тензор так:

x = torch.Tensor([
        [ 0.7646,  0.5573,  0.4000,  0.2188,  0.7646,  0.5052,  0.2042,  0.0896, 0.7667,  0.5938,  0.3167,  0.0917],
        [ 0.4271,  0.1354,  0.5000,  0.1292,  0.4260,  0.1354,  0.4646,  0.0917, -1.0000, -1.0000, -1.0000, -1.0000],
        [ 0.7208,  0.5656,  0.3000,  0.1688,  0.7177,  0.5271,  0.1521,  0.0667, 0.7198,  0.5948,  0.2438,  0.0729],
        [ 0.6292,  0.8250,  0.4000,  0.2292,  0.6271,  0.7698,  0.2083,  0.0812, 0.6281,  0.8604,  0.3604,  0.0917]

                ])

, так что теперь это большеПонятно, что у вас есть фигура (4, 12), вы можете думать о ней как о файле Excel, у вас есть 4 строки и 12 столбцов. Теперь вам нужно извлечь из двух первых строк 4 первых столбца, и поэтому ваше решение будет следующим:

x[:2, :4] # 2 means you want to take all the rows until the second row and then you set that you want all the columns until the fourth column, this Code will also give the same result x[0:2, 0:4]
...