Как проверить, равны ли два тензора или матрицы Факела?

Мне нужна команда Torch, которая проверяет, имеют ли два тензора одинаковое содержимое, и возвращает ИСТИНА, если они имеют одинаковое содержимое.

Например:

local tens_a = torch.Tensor({9,8,7,6});
local tens_b = torch.Tensor({9,8,7,6});

if (tens_a EQUIVALENCE_COMMAND tens_b) then ... end

Что я должен использовать в этом сценарии вместо EQUIVALENCE_COMMAND?

Я попытался просто с ==, но он не работает.

24
задан prosti 20 September 2019 в 08:59
поделиться

2 ответа

Для сравнения тензоров, можно сделать мудрый элемент:

torch.eq мудрый элемент:

torch.eq(torch.tensor([[1., 2.], [3., 4.]]), torch.tensor([[1., 1.], [4., 4.]]))
tensor([[True, False], [False, True]])

Или torch.equal для целого тензора точно:

torch.equal(torch.tensor([[1., 2.], [3, 4.]]), torch.tensor([[1., 1.], [4., 4.]]))
# False
torch.equal(torch.tensor([[1., 2.], [3., 4.]]), torch.tensor([[1., 2.], [3., 4.]]))
# True

, Но затем Вы можете быть потеряны, потому что в какой-то момент существуют небольшие различия, которые требуется проигнорировать. Например, плавания 1.0 и 1.0000000001 достаточно близки, и можно полагать, что они равны. Для такого сравнения Вы имеете torch.allclose .

torch.allclose(torch.tensor([[1., 2.], [3., 4.]]), torch.tensor([[1., 2.000000001], [3., 4.]]))
# True

В какой-то момент может быть важным для проверки элемента, мудрого, сколько элементов равно, по сравнению с полным числом элементов. Если у Вас есть два тензора dt1, и dt2 Вы получаете число элементов [1 111] как [1 112]

, И с этой формулой Вы получаете процент:

print(torch.sum(torch.eq(dt1, dt2)).item()/dt1.nelement())
3
ответ дан 28 November 2019 в 06:51
поделиться

Вы можете преобразовывать эти два тензора в массивы numpy:

local tens_a = torch.Tensor((9,8,7,6));
local tens_b = torch.Tensor((9,8,7,6));

a=tens_a.numpy()
b=tens_b.numpy()

и затем что-то как

np.sum(a==b)
4

дало бы Вам довольно хорошую идею того, как равняется, они.

0
ответ дан 28 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: