class_docstr: Broadcast the non-matrix dimensions for batched matrix multiplication.
class_docstr_tok: ["Broadcast","the","non-matrix","dimensions","for","batched","matrix","multiplication","."]
code: def __init__(self) -> None:
      self.broadcast_dim_info = {}
  
imports: import operator
  from abc import ABC, abstractmethod
  from copy import deepcopy
  from enum import Enum
  from functools import reduce
  from typing import Dict, List, Union
  import torch
  from colossalai.auto_parallel.tensor_shard.utils.broadcast import BroadcastType, get_broadcast_dim_info, get_broadcast_shape
  from colossalai.tensor.sharding_spec import ShardingSpecException
  from ..sharding_strategy import OperationData, OperationDataType, ShardingStrategy
  from ..utils import recover_sharding_spec_for_broadcast_shape
  from .node_handler import MetaInfoNodeHandler
  from .registry import operator_registry
  from .strategy import BatchedMatMulStrategyGenerator, DotProductStrategyGenerator, LinearProjectionStrategyGenerator, MatVecStrategyGenerator, StrategyGenerator
label_desc: Use image node_id 1 to create a new Broadcaster object from inherited base classes: BmmTransform with example: obj = Broadcaster()