class_docstr: ShardMetaInfo class
  This class is used to store meta info based on sharding strategy and the given
  target function.
class_docstr_tok: ["ShardMetaInfo","class","This","class","is","used","to","store","meta","info","based","on","sharding","strategy","and","the","given","target","function","."]
code: def __init__(
      self, strategy: ShardingStrategy = None, target: Callable = None
  ) -> None:
      # compute cost of forward and backward computation
      self.compute_cost: TrainCycleItem
  
      # compute memory cost of forward and backward phase
      self.memory_cost: TrainCycleItem
  
      # list of input tensors
      self.fwd_in: List[torch.Tensor]
  
      # list of buffer tensors
      self.fwd_buffer: List[torch.Tensor]
  
      # list of output tensors
      self.fwd_out: List[torch.Tensor]
  
      # sharding strategy
      self._strategy = strategy
  
      # target function
      self._target = target
  
      # compute shard_metainfo if possible
      if self._strategy is not None and self._target is not None:
          self.compute_shard_metainfo()
  
file_path: ColossalAI/colossalai/auto_parallel/meta_profiler/shard_metainfo.py
imports: from typing import Callable, List
  import torch
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import OperationData, ShardingStrategy, TrainCycleItem
  from colossalai.tensor.sharding_spec import ShardingSpec
  from .constants import INPLACE_MODULE, INPLACE_OPS, NO_SAVE_ACTIVATION
  from .registry import meta_register
label_desc: Use image node_id 1 to create a new ShardMetaInfo object  with example: obj = ShardMetaInfo(strategy, target)