code: def __init__(
      self,
      operation_data_mapping,
      device_mesh,
      linear_projection_type="linear",
      solver_perference=SolverPerference.STANDARD,
  ):
      super().__init__(operation_data_mapping, device_mesh)
      self.linear_projection_type = linear_projection_type
      self.solver_perference = solver_perference
  
imports: import operator
  from functools import reduce
  from typing import List
  from colossalai.auto_parallel.tensor_shard.options import SolverPerference
  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 1 to create a new LinearProjectionStrategyGenerator object from inherited base classes: MatMulStrategyGenerator with example: obj = LinearProjectionStrategyGenerator(operation_data_mapping, device_mesh, linear_projection_type, solver_perference)