在 pytorch 中比较两个张量

问题描述 投票:0回答:0

我已经尝试过这个问题中描述的解决方案:How to check if two Torch tensors or matrices are equal?

出于某种原因我没有任何运气。

我只是想测试我的随机数种子的再现性作为例子:

def seed_everything(seed):
  random.seed(seed)
  os.environ['PYTHONHASHSEED'] = str(seed)
  np.random.seed(seed)
  torch.manual_seed(seed)
  torch.cuda.manual_seed(seed)
  torch.cuda.manual_seed_all(seed) # for cases of multiple gpus
  torch.backends.cudnn.deterministic = True

seed_everything(4321)
a = torch.rand(1, 3)
print(f"Tensor a: {a}")

a_expect = torch.tensor([[0.1255, 0.5377, 0.6564]])
print(f"Tensor a_expect: {a_expect}")

equal = torch.equal(a, a_expect)
print(f"torch.equal: {equal}")

eq = torch.eq(a, a_expect)
print(f"torch.eq: {eq}")

close = torch.allclose(a, a_expect)
print(f"torch.allclose: {close}")

diff = torch.all(torch.lt(torch.abs(torch.add(a, -a_expect)), 1e-12))
print(f"torch.all(lt(abs(add,1e-12))): {diff}")

输出

Tensor a: tensor([[0.1255, 0.5377, 0.6564]])
Tensor a_expect: tensor([[0.1255, 0.5377, 0.6564]])
torch.equal: False
torch.eq: tensor([[False, False, False]])
torch.allclose: False
torch.all(lt(abs(add,1e-12))): False

(我用的是pytorch 1.12.1,我的机器是apple M1 mac)

感谢您提供任何线索

pytorch tensor random-seed equivalence
© www.soinside.com 2019 - 2024. All rights reserved.