В двух словах я хотел бы знать, есть ли в факеле тензорная команда, которая дает мне индексы элементов в тензоре, которые удовлетворяют определенным критериям.Эквивалентная функция тензора факела для «поиска» в Matlab?
Вот MATLAB код, который показывает, что я хотел бы быть в состоянии сделать в горелке:
my_mat = magic(3); % returns a 3 by 3 matrix with the numbers 1 through 9
greater_than_fives = find(my_mat > 5); % find indices of all values greater than 5, the " > 5" is a logical elementwise operator that returns a matrix of all 0's and 1's and finally the "find" command picks out the indices with a "1" in them
my_mat(greater_than_fives) = 0; % set all values greater than 5 equal to 0
Я понимаю, что я мог бы сделать это в горелке, используя для цикла, но есть некоторые эквиваленты от Matlab найти команду, которая позволила бы мне сделать это более компактно?
Благодарим за отзыв! Тем не менее, меня интересовали как использование индексов для индексации в моем массиве (это то, что вы предоставили), но и как найти сами индексы (которые часто полезны для других вещей, кроме индексации в исходный тензор. – elpiloto
сами индексы могут быть сделаны с помощью очень уродливого взлома: indices = torch.linspace (1, x: nElement(), x: nElement()) [x: gt (5)] – smhx
Булевое индексирование, похоже, не работает разрезая только один тензорный размер.Таким образом, получится эквивалент find()/np.where(). –