class_docstr: Logical "Tower" of embeddings directly passed to provided interaction.
  All TorchRec shardable embedding modules are supported.
  
  Args:
      embedding_module (nn.Module):
      interaction_module (nn.Module):
      device (Optional[torch.device]):
  
  Example::
  
      ebc, interaction = EmbeddingBagCollection(), MyInteractionModule()
      tower = EmbeddingTower(ebc, interaction, device)
      kjt = KeyedJaggedTensor()
      output = tower(kjt)
code: def __init__(
      self,
      embedding_module: nn.Module,
      interaction_module: nn.Module,
      device: Optional[torch.device] = None,
  ) -> None:
      super().__init__()
      self.embedding = embedding_module
      self.interaction = interaction_module
  
file_path: torchrec/torchrec/modules/embedding_tower.py
imports: from typing import List, Optional, Tuple
  import torch
  import torch.nn
  from torchrec.modules.embedding_modules import EmbeddingBagCollection, EmbeddingCollection
  from torchrec.sparse.jagged_tensor import KeyedJaggedTensor
label_desc: Use image node_id 1 to create a new EmbeddingTower object from inherited base classes: nn with example: obj = EmbeddingTower(embedding_module, interaction_module, device)