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: ### Get trainable chunk/shard of the parameters.
  
  This is what we pass on to the optimizer on the current node.
docstr_tok: ["#","#","#","Get","trainable","chunk\/shard","of","the","parameters",".","This","is","what","we","pass","on","to","the","optimizer","on","the","current","node","."]
code: def get_trainable_chunk(self) -> List[nn.Parameter]:
      """
      ### Get trainable chunk/shard of the parameters.
  
      This is what we pass on to the optimizer on the current node.
      """
      # Return and empty list if there are no trainable parameters
      if len(self.chunk[self.TRAINING_PARAMS_IDX]) == 0:
          return []
  
      # Return the trainable chunk as a list
      return [self.chunk[self.TRAINING_PARAMS_IDX]]
  
imports: import functools
  from typing import List, Optional, Tuple
  import torch
  import torch.distributed
  from torch import nn
label_desc: Use image node_id 3 for calling the Zero3Layer obj's underlying member method code with example usage: obj.get_trainable_chunk() and returns: list, list