class_docstr: EmbeddingStrategyGenerator is a generic class to generate strategies for nn.Embedding or F.embedding.
  The operation data is defined as `output = input x other`.
class_docstr_tok: ["EmbeddingStrategyGenerator","is","a","generic","class","to","generate","strategies","for","nn.Embedding","or","F.embedding",".","The","operation","data","is","defined","as","`","output","=","input","x","other","`","."]
code: def collate_strategies(self) -> List[ShardingStrategy]:
      strategies = []
  
      # RR= R x RR
      strategies.append(self.non_split())
  
      # SR = S x RR
      strategies.append(self.split_input(0))
      strategies.append(self.split_input(1))
  
      # SS = S x RS
      strategies.append(self.split_input_and_embedding_dim(0, 1))
      strategies.append(self.split_input_and_embedding_dim(1, 0))
  
      # S01R = S01 x RR
      strategies.append(self.split_1d_parallel_on_input(0, 1))
  
      # RS = R x RS
      strategies.append(self.split_embedding_dim(0))
      strategies.append(self.split_embedding_dim(1))
  
      # RS01 = R x RS01
      strategies.append(self.split_1d_parallel_on_embedding_dim(0, 1))
  
      return strategies
  
file_path: colossalai/colossalai/auto_parallel/tensor_shard/node_handler/strategy/embedding_generator.py
imports: import copy
  import operator
  from functools import reduce
  from typing import List
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import CommType, MemoryCost, ShardingStrategy, TrainCycleItem
  from colossalai.auto_parallel.tensor_shard.utils import ignore_sharding_exception
  from colossalai.tensor.shape_consistency import CollectiveCommPattern
  from .strategy_generator import StrategyGenerator
label_desc: Use image node_id 10 for calling the EmbeddingStrategyGenerator obj's underlying member method code with example usage: obj.collate_strategies() and returns: strategies