class_docstr: Decorator to apply to a function outputing tensors (like a model forward pass) that ensures the outputs in FP16
  precision will be convert back to FP32.
  
  Args:
      model_forward (`Callable`):
          The function which outputs we want to treat.
  
  Returns:
      The same function as `model_forward` but with converted outputs.
class_docstr_tok: ["Decorator","to","apply","to","a","function","outputing","tensors","(","like","a","model","forward","pass",")","that","ensures","the","outputs","in","FP16","precision","will","be","convert","back","to","FP32",".","Args",":","model_forward","(","`","Callable","`",")",":","The","function","which","outputs","we","want","to","treat",".","Returns",":","The","same","function","as","`","model_forward","`","but","with","converted","outputs","."]
code: def __init__(self, model_forward):
      self.model_forward = model_forward
      update_wrapper(self, model_forward)
  
imports: import pickle
  import warnings
  from functools import update_wrapper, wraps
  from typing import Any, Mapping
  import torch
  from ..state import PartialState
  from .constants import TORCH_DISTRIBUTED_OPERATION_TYPES
  from .dataclasses import DistributedType, TensorInformation
  from .imports import is_npu_available, is_torch_distributed_available, is_torch_version, is_tpu_available
label_desc: Use image node_id 1 to create a new ConvertOutputsToFp32 object  with example: obj = ConvertOutputsToFp32(model_forward)