class_docstr: Processes the dense features of DLRM model.
  
  Args:
      in_features (int): dimensionality of the dense input features.
      layer_sizes (List[int]): list of layer sizes.
      device (Optional[torch.device]): default compute device.
  
  Example::
  
      B = 20
      D = 3
      dense_arch = DenseArch(10, layer_sizes=[15, D])
      dense_embedded = dense_arch(torch.rand((B, 10)))
class_docstr_tok: ["Processes","the","dense","features","of","DLRM","model",".","Args",":","in_features","(","int",")",":","dimensionality","of","the","dense","input","features",".","layer_sizes","(","List","[","int","]",")",":","list","of","layer","sizes",".","device","(","Optional","[","torch.device","]",")",":","default","compute","device",".","Example",":",":","B","=","20","D","=","3","dense_arch","=","DenseArch","(","10",",","layer_sizes=","[","15",",","D","]",")","dense_embedded","=","dense_arch","(","torch.rand","(","(","B",",","10",")",")",")"]
code: def __init__(
      self,
      in_features: int,
      layer_sizes: List[int],
      device: Optional[torch.device] = None,
  ) -> None:
      super().__init__()
      self.model: nn.Module = MLP(
          in_features,
          layer_sizes,
          bias=True,
          activation="relu",
          device=device,
      )
  
imports: from typing import Dict, List, Optional, Tuple
  import torch
  from torch import nn
  from torchrec.datasets.utils import Batch
  from torchrec.modules.crossnet import LowRankCrossNet
  from torchrec.modules.embedding_modules import EmbeddingBagCollection
  from torchrec.modules.mlp import MLP
  from torchrec.sparse.jagged_tensor import KeyedJaggedTensor, KeyedTensor
label_desc: Use image node_id 1 to create a new DenseArch object from inherited base classes: nn with example: obj = DenseArch(in_features, layer_sizes, device)