In the code snippet below, a
and b
should be exactly equal.
import torch
from torch.autograd import Variable
for i in range(1000):
a = Variable(torch.rand(1,1))
eps = 0.1
b = (1-eps)*torch.max(a) + eps*torch.mean(a)
print b, a
print b - a
assert torch.equal(a,b)
However, in the first iteration I get an assertion error saying they are not equal:
b Variable containing:
0.9811
[torch.FloatTensor of size 1]
a Variable containing:
0.9811
[torch.FloatTensor of size 1x1]
b - a Variable containing:
1.00000e-08 *
-5.9605
[torch.FloatTensor of size 1x1]
Traceback (most recent call last):
File "test.py", line 11, in <module>
assert torch.equal(a,b)
AssertionError
Would anyone know why this is the case?