class_docstr: Sharding spec for a tensor, it contains info of the logical device mesh this tensor belong
  to, the entire shape of the tensor before sharded, and the sharding sequence looks like
  [R, R, S0, S1].
  
  Argument:
      device_mesh(DeviceMesh): A logical view of a physical mesh.
      entire_shape(torch.Size): The entire shape of tensor before sharded.
      dim_partition_dict(Dict[int, List[int]]， optional): The key is the dimension of tensor to be sharded,
          and the value of the key describe which logical axis will be sharded in that dimension.
      sharding_sequence(List[_DimSpec], optional): A straight view of ShardingSpec looks like [R, R, S0, S1].
docstr: Convert dim_partition_dict into list of _DimSpec, and assign it to sharding_sequence.
docstr_tok: ["Convert","dim_partition_dict","into","list","of","_DimSpec",",","and","assign","it","to","sharding_sequence","."]
code: def convert_dict_to_shard_sequence(self):
      """
      Convert dim_partition_dict into list of _DimSpec, and assign it to sharding_sequence.
      """
      sharding_sequence = [_DimSpec([])] * len(self.entire_shape)
      for dim, shard_list in self.dim_partition_dict.items():
          sharding_sequence[dim] = _DimSpec(shard_list)
      self.sharding_sequence = sharding_sequence
  
imports: import operator
  from copy import deepcopy
  from functools import reduce
  import torch
  from colossalai.device.device_mesh import DeviceMesh
  from .utils import merge_same_dim_mesh_list
label_desc: Use image node_id 4 for calling the ShardingSpec obj's underlying member method code with example usage: obj.convert_dict_to_shard_sequence() without return types