Что означает "больше, чем" оператор ">" для тензоров PyTorch? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть тензор it, определяемый как:

import torch
it = torch.tensor([0,  0,  0,  0,  0,  0,  0,  0,  0,  0], device='cuda:0')

Учитывая это определение, что означает it > 0 тогда?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Как видно из вопроса it - это 1-й тензор, состоящий из 10 элементов.Когда мы пишем it > 0, каждый элемент тензора it сравнивается с 0, а выход устанавливается как True или False в зависимости от того, больше или равно число больше 0.Результатом также является 1-й логический тензор, состоящий из значений True и False.В вашем случае вы получите 1-й тензор, подобный следующему: [False, False, False, False, False, False, False, False, False, False,], поскольку ни один из элементов в it не равен 0.

В более простых сроках,

Еслиresult - это переменная (на самом деле 1-й тенор) для хранения выходных данных, имеющих ту же форму, что и it, тогда уравнение result= it > 0 можно записать в виде:

if it[i]>0:
    result[i]= True
else:
    result[i]= False 

Но когда оно выполненокак result= it > 0, выполнение выполняется намного быстрее, чем запись нашего собственного цикла for/while.

Надеюсь, это поможет вам.

0 голосов
/ 18 октября 2018

Использование оператора > аналогично использованию функции torch.gt().

Другими словами,

it > 0

совпадает с

torch.gt(it, 0)

и возвращает ByteTensor (булевский тензор) того же shapeкак it, где out[i] - Истина, если it[i] > 0, и Ложь в противном случае.

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