error in autocast-enabled regions.
Many models use a sigmoid layer right before the binary cross entropy
layer. In this case, combine the two layers using
"torch.nn.functional.binary_cross_entropy_with_logits()" or
"torch.nn.BCEWithLogitsLoss".  "binary_cross_entropy_with_logits" and
"BCEWithLogits" are safe to autocast.
CPU Op-Specific Behavior
The following lists describe the behavior of eligible ops in autocast-
enabled regions. These ops always go through autocasting whether they
are invoked as part of a "torch.nn.Module", as a function, or as a
"torch.Tensor" method. If functions are exposed in multiple
namespaces, they go through autocasting regardless of the namespace.
Ops not listed below do not go through autocasting.  They run in the
type defined by their inputs.  However, autocasting may still change
the type in which unlisted ops run if they're downstream from
autocasted ops.
If an op is unlisted, we assume it's numerically stable in "bfloat16".