class_docstr: The MLP-Mixer module.
  
  Args:
      num_tokens (int): Number of tokens/patches in each sample.
      in_channels (int): Input channels.
      out_channels (int): Output channels.
      dropout (float, optional): Dropout probability. (default: :obj:`0.0`)
code: def __init__(
      self,
      num_tokens: int,
      in_channels: int,
      out_channels: int,
      dropout: float = 0.0,
  ):
      super().__init__()
  
      self.dropout = dropout
  
      self.token_norm = LayerNorm(in_channels)
      self.token_lin1 = Linear(num_tokens, num_tokens // 2)
      self.token_lin2 = Linear(num_tokens // 2, num_tokens)
  
      self.channel_norm = LayerNorm(in_channels)
      self.channel_lin1 = Linear(in_channels, 4 * in_channels)
      self.channel_lin2 = Linear(4 * in_channels, in_channels)
  
      self.head_norm = LayerNorm(in_channels)
      self.head_lin = Linear(in_channels, out_channels)
  
imports: import numpy
  import torch
  import torch.nn.functional
  from torch import Tensor
  from torch.nn import LayerNorm, Linear
  from torch_geometric.nn import TemporalEncoding
  from torch_geometric.utils import scatter, to_dense_batch
label_desc: Use image node_id 1 to create a new _MLPMixer object from inherited base classes: torch.nn with example: obj = _MLPMixer(num_tokens, in_channels, out_channels, dropout)