Commit 9dedab4
authored
Fix Inspector compare_results crash on non-tensor outputs (pytorch#23276)
### Summary
The Inspector's compare_results crashes as soon as one of the outputs
isn't a tensor. calculate_mse / calculate_snr /
calculate_cosine_similarity return None for non-tensor outputs, and then
the print loop does f"{value:>8.5f}" on it and dies with "TypeError:
unsupported format string passed to NoneType.__format__". plot=True
breaks the same way (max() and plt.bar on None).
The CLI hits a related problem: `inspector_cli --compare_results` calls
compare_results even when there's no reference output (no ETRecord with
reference outputs), so it fails there too.
Changes:
- print "N/A" for None values instead of formatting them
- plot None values as 0 so the bar chart still renders
- in inspector_cli, skip the comparison with a short message when
reference_output or run_output is missing
- return type of compare_results is now Dict[str,
List[Optional[float]]], which is what it actually returns
### Test plan
Added test_compare_results_with_non_tensor_output in
devtools/inspector/tests/inspector_utils_test.py. It calls
compare_results with a tensor output and an int output, with plot on and
off. It fails on main with the TypeError above and passes with this
change. The rest of inspector_utils_test.py passes (90 tests). ufmt and
flake8 are clean with the versions from requirements-lintrunner.txt.
cc @Gasoonjia @nil-is-all1 parent 0f008e1 commit 9dedab4
3 files changed
Lines changed: 41 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
402 | 402 | | |
403 | 403 | | |
404 | 404 | | |
405 | | - | |
406 | | - | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
407 | 409 | | |
408 | 410 | | |
409 | 411 | | |
| |||
422 | 424 | | |
423 | 425 | | |
424 | 426 | | |
425 | | - | |
426 | | - | |
| 427 | + | |
| 428 | + | |
427 | 429 | | |
428 | 430 | | |
429 | 431 | | |
| |||
514 | 516 | | |
515 | 517 | | |
516 | 518 | | |
517 | | - | |
| 519 | + | |
518 | 520 | | |
519 | 521 | | |
520 | 522 | | |
| |||
546 | 548 | | |
547 | 549 | | |
548 | 550 | | |
549 | | - | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
550 | 555 | | |
551 | 556 | | |
552 | 557 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
72 | 74 | | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
73 | 81 | | |
74 | 82 | | |
75 | 83 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
229 | 230 | | |
230 | 231 | | |
231 | 232 | | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
232 | 249 | | |
233 | 250 | | |
234 | 251 | | |
| |||
0 commit comments