code: def get_layers(parent, module):
      layer_list = []
      for key, submodule in module._modules.items():
          if isinstance(submodule, nn.Linear):
              layer_list = layer_list + [parent + "." + key]
          elif (
              isinstance(submodule, nn.LayerNorm)
              or key == "LayerNorm"
              or key == "layer_norm"
          ):
              layer_list = layer_list + ["ln"]
          else:
              layer_list = layer_list + AutoTP.get_layers(
                  key, submodule
              )
      return layer_list
  
imports: import re
  from torch import nn
  from .replace_policy import replace_policies
  from typing import Optional
  import torch
  from deepspeed import comm
  from .layers import LinearAllreduce, LinearLayer, LmHeadLinearAllreduce
  from deepspeed.accelerator import get_accelerator
  from .fusedqkv_utils import require_tp_fused_qkvw, prepare_tp_fused_qkvw
  from deepspeed.module_inject.tp_shard import get_shard_size, get_shard_size_list
label_desc: Use image node_id 5 for calling the AutoTP obj's underlying member method code with example usage: obj.get_layers(parent, module) and returns: layer_list