class_docstr: ## Zero3 Layer
  
  Each layer of the model (or a combination of a few consecutive layers) should be wrapped in
  this module.
class_docstr_tok: ["#","#","Zero3","Layer","Each","layer","of","the","model","(","or","a","combination","of","a","few","consecutive","layers",")","should","be","wrapped","in","this","module","."]
docstr: #### Module backward hook
docstr_tok: ["#","#","#","#","Module","backward","hook"]
code: def _backward_hook(self, *args, **kwargs):
      """
      #### Module backward hook
      """
      # Handle a backward event
      self._backward_event()
  
      # The previous layer will start computing gradients. We need to make sure it has finished fetching params.
      torch.cuda.current_stream().wait_stream(self.fetch_stream)
  
      #
      return None
  
imports: import functools
  from typing import List, Optional, Tuple
  import torch
  import torch.distributed
  from torch import nn
label_desc: Use image node_id 11 for calling the Zero3Layer obj's underlying member method code with example usage: obj._backward_hook() and returns: None