code: def reshape(self, target_3d_desc, verbose=False):
      valid_reshape, reshape_errors = self.can_reshape(target_3d_desc)
      assert valid_reshape, ",".join(reshape_errors)
      tgt_2d_map = reshape_meg_2d_parallel(
          old_pp_degree=self.pp_degree,
          old_tp_degree=self.tp_degree,
          new_pp_degree=target_3d_desc.pp_degree,
          new_tp_degree=target_3d_desc.tp_degree,
          verbose=verbose,
      )
  
      flat_3d_map = flatten_dp_dimension(
          meg_2d_map=tgt_2d_map,
          src_2d_size=self.pp_degree * self.tp_degree,
          dp_degree=self.dp_degree,
      )
  
      return unflatten_dp_dimension(
          meg_2d_map=flat_3d_map, dp_degree=target_3d_desc.dp_degree
      )
  
file_path: deepspeed/deepspeed/checkpoint/reshape_3d_utils.py
imports: from .reshape_utils import get_files, get_files_with_prefix, partition_data, get_zero_files
  from .constants import MODEL_FILE_PREFIX, LAYER_FILE_PREFIX
  from .reshape_meg_2d import reshape_meg_2d_parallel, meg_2d_parallel_map
label_desc: Use image node_id 2 for calling the model_3d_desc obj's underlying member method code with example usage: obj.reshape(target_3d_desc, verbose) and returns: unflatten_dp_dimension