class_docstr: Precision for mixed precision training in FP16 using PyTorch AMP.
  
  Args:
      init_scale (float): Initial scale factor. Default: 2**16.
      growth_factor (float): Factor by which the scale is multiplied during
          :meth:`torch.cuda.amp.GradScaler.step` if gradients were found to be finite
          this iteration. Default: 2.0.
      backoff_factor (float): Factor by which the scale is multiplied during
          :meth:`torch.cuda.amp.GradScaler.step` if gradients were found to be infinite
          this iteration. Default: 0.5.
      growth_interval (int): Number of iterations between :meth:`torch.cuda.amp.GradScaler.step`
          calls that may cause the scale to increase. Default: 2000.
code: def configure(
      self,
      model: nn.Module,
      optimizer: Optional[Optimizer] = None,
      criterion: Optional[Callable] = None,
  ) -> Tuple[nn.Module, OptimizerWrapper, Callable]:
      model = TorchAMPModule(model)
      if optimizer is not None:
          optimizer = TorchAMPOptimizer(
              optimizer, **self.torch_amp_kwargs
          )
      if criterion is not None:
          criterion = TorchAMPModule(criterion)
      return model, optimizer, criterion
  
imports: from typing import Callable, Optional, Tuple, Union
  import torch
  import torch.nn
  from torch import Tensor
  from torch.optim import Optimizer
  from colossalai.interface import ModelWrapper, OptimizerWrapper
  from colossalai.utils.device import autocast
  from .mixed_precision_base import MixedPrecision
label_desc: Use image node_id 2 for calling the FP16TorchMixedPrecision obj's underlying member method code with example usage: obj.configure(model, optimizer, criterion) and returns: model,  optimizer,  criterion