class_docstr: Each node in fx graph will have a corresponding StrategiesVector, to store all the possible
  strategies of the node.
  
  Argument:
      node (Node): node for which the list of sharding strategies are generated.
class_docstr_tok: ["Each","node","in","fx","graph","will","have","a","corresponding","StrategiesVector",",","to","store","all","the","possible","strategies","of","the","node",".","Argument",":","node","(","Node",")",":","node","for","which","the","list","of","sharding","strategies","are","generated","."]
code: def check_merge(self):
      merge_label = False
      if self.node.op == "call_module":
          target = self.node.target
          root_module = self.node.graph.owning_module
          submod = root_module.get_submodule(target)
          submod_type = type(submod)
          # merge elementwise module node into source nodes
          # we could merge element-wise op, because the output sharding spec is always same as the input sharding spec.
          if submod_type in ELEMENTWISE_MODULE_OP:
              merge_label = True
  
      if self.node.op == "call_function":
          # we could merge element-wise op, because the output sharding spec is always same as the input sharding spec.
          if self.node.target in ELEMENTWISE_FUNC_OP:
              merge_label = True
          # we could merge bcast op if the rhs is a scalar, because it will fall back to the element-wise case.
          # TODO: remove this after we support the fall back logic.
          # if self.node.target in BCAST_FUNC_OP and len(self.predecessor_nodes) == 1:
          #     merge_label = True
          # we could merge reshape op, because their computation costs are negligible.
          if self.node.target in RESHAPE_FUNC_OP:
              merge_label = True
  
      if self.node.op == "call_method":
          # we could merge reshape op, because their computation costs are negligible.
          method = getattr(
              self.node.args[0]._meta_data.__class__, self.node.target
          )
          if method in RESHAPE_METHOD_OP:
              merge_label = True
          if method in ELEMENTWISE_METHOD_OP:
              merge_label = True
      return merge_label
  
imports: from copy import deepcopy
  from dataclasses import dataclass
  from enum import Enum
  from typing import Any, Dict, List, Tuple, Union
  import torch
  from torch.fx.node import Node
  from colossalai.tensor.comm_spec import CommSpec
  from colossalai.tensor.sharding_spec import ShardingSpec
  from .constants import ELEMENTWISE_FUNC_OP, ELEMENTWISE_METHOD_OP, ELEMENTWISE_MODULE_OP, RESHAPE_FUNC_OP, RESHAPE_METHOD_OP
label_desc: Use image node_id 2 for calling the StrategiesVector obj's underlying member method code with example usage: obj.check_merge() and returns: merge_label