class_docstr: BaseManagedCollisionEmbeddingCollection represents a EC/EBC module and a set of managed collision modules.
  The inputs into the MC-EC/EBC will first be modified by the managed collision module before being passed into the embedding collection.
  
  Args:
      embedding_module: EmbeddingCollection to lookup embeddings
      managed_collision_modules: Dict of managed collision modules
      return_remapped_features (bool): whether to return remapped input features
          in addition to embeddings
class_docstr_tok: ["BaseManagedCollisionEmbeddingCollection","represents","a","EC\/EBC","module","and","a","set","of","managed","collision","modules",".","The","inputs","into","the","MC-EC\/EBC","will","first","be","modified","by","the","managed","collision","module","before","being","passed","into","the","embedding","collection",".","Args",":","embedding_module",":","EmbeddingCollection","to","lookup","embeddings","managed_collision_modules",":","Dict","of","managed","collision","modules","return_remapped_features","(","bool",")",":","whether","to","return","remapped","input","features","in","addition","to","embeddings"]
code: def forward(
      self,
      features: KeyedJaggedTensor,
  ) -> Tuple[
      Union[KeyedTensor, Dict[str, JaggedTensor]],
      Optional[KeyedJaggedTensor],
  ]:
      features = self._managed_collision_collection(features)
  
      embedding_res = self._embedding_module(features)
  
      evict(
          self._managed_collision_collection.evict(),
          self._embedding_module,
      )
  
      if not self._return_remapped_features:
          return embedding_res, None
      return embedding_res, features
  
file_path: torchrec/torchrec/modules/mc_embedding_modules.py
imports: from typing import Dict, Optional, Tuple, Union
  import torch
  import torch.nn
  from torchrec.modules.embedding_modules import EmbeddingBagCollection, EmbeddingCollection
  from torchrec.modules.mc_modules import ManagedCollisionCollection
  from torchrec.sparse.jagged_tensor import JaggedTensor, KeyedJaggedTensor, KeyedTensor
label_desc: Use image node_id 2 for calling the BaseManagedCollisionEmbeddingCollection obj's underlying member method code with example usage: obj.forward(features) and returns: embedding_res,  features, embedding_res,  None