pytorch
99792890 - Improve error messages of `torch.testing.assert_close` in case of mismatching values (#60091)

Commit
3 years ago
Improve error messages of `torch.testing.assert_close` in case of mismatching values (#60091) Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/60091 Closes #58383. (1) and (2) are implemented. (3) was rejected. No consensus was reached on (4) and (5). Improvements: - Instead of calling everything "Tensors" we now use "Scalars" and "Tensor-likes" depending on the shape. Plus, we now internally have the option to adapt this identifier for example to report "Imaginary components of complex tensor-likes", which is even more expressive. - The reported conditions "not close" and "not equal" are now determined based on `rtol` and `atol`. - The number of mismatched elements and the offending indices are only reported in case the inputs are not scalar - The allowed `rtol` and `atol` is only reported if `> 0` **Example 1** ```python torch.testing.assert_close(1, 3, rtol=0, atol=1) ``` Before: ``` AssertionError: Tensors are not close! Mismatched elements: 1 / 1 (100.0%) Greatest absolute difference: 2 at 0 (up to 1 allowed) Greatest relative difference: 0.6666666865348816 at 0 (up to 0 allowed) ``` After: ``` AssertionError: Scalars are not close! Absolute difference: 2 (up to 1 allowed) Relative difference: 0.6666666865348816 ``` **Example 2** ```python torch.manual_seed(0) t = torch.rand((2, 2), dtype=torch.complex64) torch.testing.assert_close(t, t + complex(0, 1)) ``` Before: ``` AssertionError: Tensors are not close! Mismatched elements: 4 / 4 (100.0%) Greatest absolute difference: 1.0000000596046448 at (0, 0) (up to 1e-05 allowed) Greatest relative difference: 0.8833684352411922 at (0, 1) (up to 1.3e-06 allowed) The failure occurred for the imaginary part. ``` After: ``` AssertionError: Imaginary components of tensor-likes are not close! Mismatched elements: 4 / 4 (100.0%) Greatest absolute difference: 1.0000000596046448 at index (0, 0) (up to 1e-05 allowed) Greatest relative difference: 0.8833684352411922 at index (0, 1) (up to 1.3e-06 allowed) ``` Test Plan: Imported from OSS Reviewed By: ngimel Differential Revision: D29556357 Pulled By: mruberry fbshipit-source-id: 559d4a19ad4fc069b2b4f8cb5fc2f6058621e33d
Author
Parents
Loading