class_docstr: Offloads a model on the CPU until its forward pass is called. The model will not be offloaded back to the CPU after
  the forward, the user needs to call the `init_hook` method again for this.
  
  Args:
      execution_device(`str`, `int` or `torch.device`, *optional*):
          The device on which the model should be executed. Will default to the MPS device if it's available, then
          GPU 0 if there is a GPU, and finally to the CPU.
      prev_module_hook (`UserCpuOffloadHook`, *optional*):
          The hook sent back by [`cpu_offload_with_hook`] for a previous model in the pipeline you are running. If
          passed, its offload method will be called just before the forward of the model to which this hook is
          attached.
code: def init_hook(self, module):
      return module.to("cpu")
  
imports: import functools
  from typing import Dict, List, Mapping, Optional, Union
  import torch
  import torch.nn
  from .state import PartialState
  from .utils import PrefixedDataset, find_device, named_module_tensors, send_to_device, set_module_tensor_to_device
  from .utils.modeling import get_non_persistent_buffers
label_desc: Use image node_id 2 for calling the CpuOffload obj's underlying member method code with example usage: obj.init_hook(module) and returns: module