субтензор извлечения факела с использованием индексов

Я хотел бы извлечь подтензор из исходного тензора, который содержит элементы с индексами, определенными другим тензором.

Сказать

th> ls = torch.linspace(1, 10, 10)
                                                                      [0.0001s]
th> ls
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
[torch.DoubleTensor of size 10]
                                                                      [0.0002s]
th> i = torch.FloatTensor(3)
                                                                      [0.0001s]
th> i[1] = 2
                                                                      [0.0000s]
th> i[2] = 7
                                                                      [0.0000s]
th> i[3] = 9
                                                                      [0.0000s]
th> ls.eq(i)
[string "_RESULT={ls.eq(i)}"]:1: invalid arguments: FloatTensor
expected arguments: [*ByteTensor*] DoubleTensor double | *DoubleTensor* DoubleTensor double | [*ByteTensor*] DoubleTensor DoubleTensor | *DoubleTensor* DoubleTensor DoubleTensor
stack traceback:
        [C]: in function 'eq'
        [string "_RESULT={ls.eq(i)}"]:1: in main chunk
        [C]: in function 'xpcall'
        /home/ubuntu/torch/install/share/lua/5.1/trepl/init.lua:651: in function 'repl'
        ...untu/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:199: in main chunk
        [C]: at 0x00406670
                                                                      [0.0001s]
th>

Как я могу запросить ls, используя индексы в i?


person Anirudhan J    schedule 11.03.2016    source источник


Ответы (1)


sub = ls:index(1, torch.LongTensor{2, 7, 9})

См. [Tensor] index(dim, index).

person deltheil    schedule 12.03.2016