Print exact value of PyTorch tensor (floating point precision)

Viewed 24074

I'm trying to print torch.FloatTensor like:

a = torch.FloatTensor(3,3)
print(a)

This way I can get a value like:

0.0000e+00  0.0000e+00  3.2286e-41
1.2412e-40  1.2313e+00  1.6751e-37
2.6801e-36  3.5873e-41  9.4463e+21

But I want to get more accurate value, like 10 decimal point:

0.1234567891+01

With other python numerical objects, I could get it with:

print('{:.10f}'.format(a))

but in the case of a tensor, I get this error:

TypeError: unsupported format string passed to torch.FloatTensor.__format__

How can I print more precise values of tensors?

2 Answers

You can set the precision options:

torch.set_printoptions(precision=10)

There are more formatting options on the documentation page, it is very similar to numpy's.

Just as a side note, this functionality has been taken from numpy. One of the reasons why PyTorch is smart is because they took many the good ideas from numpy.

However, in numpy the default precision is 8 and in PyTorch the default is 4.

enter image description here

Related