the op in "float32".
"addcdiv", "addcmul", "atan2", "bilinear", "cross", "dot",
"grid_sample", "index_put", "scatter_add", "tensordot"
Some ops not listed here (e.g., binary ops like "add") natively
promote inputs without autocasting's intervention.  If inputs are a
mixture of "float16" and "float32", these ops run in "float32" and
produce "float32" output, regardless of whether autocast is enabled.
Prefer "binary_cross_entropy_with_logits" over "binary_cross_entropy"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The backward passes of "torch.nn.functional.binary_cross_entropy()"
(and "torch.nn.BCELoss", which wraps it) can produce gradients that
aren't representable in "float16".  In autocast-enabled regions, the
forward input may be "float16", which means the backward gradient must
be representable in "float16" (autocasting "float16" forward inputs to
"float32" doesn't help, because that cast must be reversed in
backward). Therefore, "binary_cross_entropy" and "BCELoss" raise an