如何检查两个Torch张量或矩阵是否相等?

问题描述 投票:18回答:3

我需要一个Torch命令来检查两个张量是否具有相同的内容,如果它们具有相同的内容则返回TRUE。

例如:

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

我只是尝试使用==,但它不起作用。

lua torch
3个回答
22
投票

https://github.com/torch/torch7/blob/master/doc/maths.md#torcheqa-b

torch.eq(a, b)

实现==运算符比较a中的每个元素b(如果b是数字)或b中的每个元素与b中的对应元素。

--update

来自@deltheil

torch.all(torch.eq(tens_a, tens_b))

甚至更简单

torch.all(tens_a:eq(tens_b))

5
投票

如果要忽略浮点数常见的小精度差异,请尝试此操作

torch.all(torch.lt(torch.abs(torch.add(tens_a, -tens_b)), 1e-12))

4
投票

以下解决方案对我有用:

torch.equal(tensorA, tensorB)

来自the documentation

True如果两个张量具有相同的大小和元素,False否则。

© www.soinside.com 2019 - 2024. All rights reserved.