mindformers.wrapper.MFPipelineWithLossScaleCell

class mindformers.wrapper.MFPipelineWithLossScaleCell(network, optimizer, use_clip_grad=True, max_grad_norm=1.0, scale_sense=1.0, micro_batch_num=1, **kwargs)[源代码]

Append a train-one-step cell with loss scale of pipeline parallel for MindFormers.

Args:

network (Cell): The training network. Note that loss function should have been added. optimizer (Optimizer): Optimizer for updating the weights. use_clip_grad (bool): Whether to use gradient clipping. Default: True. max_grad_norm (float): Maximum gradient constraint value. Default: 1.0. scale_sense (Cell): Cell to do the loss scale. Default: 1.0. micro_batch_num (int): Micro batch number of pipeline parallel. Default: 1.

Inputs:
  • (*inputs) (Tuple(Tensor)) - Tuple of input tensors with shape \((N, \ldots)\).

Outputs:

Tuple of 3 Tensor, the loss, overflow flag and current loss scale value.

  • loss (Tensor) - A scalar, the loss value.

  • overflow (Tensor) - A scalar, whether overflow occur or not, the type is bool.

  • loss scale (Tensor) - The loss scale value, the shape is \(()\) or \((1,)\).

Raises:

TypeError: If scale_sense is neither Cell nor Tensor. ValueError: If shape of scale_sense is neither (1,) nor ().