class_docstr: StrategyGenerator is used to generate the same group of sharding strategies.
  
  TODO: remove the original strategy_generator.py after refactoring
class_docstr_tok: ["StrategyGenerator","is","used","to","generate","the","same","group","of","sharding","strategies",".","TODO",":","remove","the","original","strategy_generator.py","after","refactoring"]
docstr: Customize this method to compute the computation flops.
docstr_tok: ["Customize","this","method","to","compute","the","computation","flops","."]
code: def update_compute_cost(
      self, strategy: ShardingStrategy
  ) -> ShardingStrategy:
      """
      Customize this method to compute the computation flops.
      """
  
imports: import operator
  from abc import ABC, abstractmethod
  from functools import reduce
  from typing import Any, Dict, List, Union
  import torch
  from torch.fx import Node
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import CommAction, CommType, OperationData, OperationDataType, ShardingStrategy, TrainCycleItem
  from colossalai.device.device_mesh import DeviceMesh
  from colossalai.tensor.shape_consistency import CollectiveCommPattern, CommSpec, ShapeConsistencyManager
  from colossalai.tensor.sharding_spec import ShardingSpec
  from colossalai.tensor.utils import convert_dim_partition_dict
label_desc: Use image node_id 11 for calling the StrategyGenerator obj's underlying member method code with example usage: obj.update_compute_cost(strategy) without return types