def __init__(
        self,
        sequence_length: int,
        input_dim: int,
        activation: Callable,
        dropout: float,
        normalize_before: bool,
        norm_type: nn.Module,
    ) -> None:
        """Applies a transformation over the time dimension of a sequence based on the
        `PyTorch implementation of TSMixer <https://github.com/ditschuk/pytorch-tsmixer>`_.

        This module applies a linear transformation followed by an activation function
        and dropout over the sequence length of the input feature torch.Tensor after converting
        feature maps to the time dimension and then back.

        Parameters
        ----------
        sequence_length
            The length of the sequences to be transformed.
        input_dim
            The number of input channels to the module.
        activation
            The activation function to be used after the linear
            transformation.
        dropout
            The dropout probability to be used after the activation function.
        normalize_before
            Whether to apply normalization before or after feature mixing.
        norm_type
            The type of normalization to use.
        """
        super().__init__()
        self.normalize_before = normalize_before
        self.norm_before = (
            norm_type((sequence_length, input_dim))
            if normalize_before
            else nn.Identity()
        )
        self.activation = activation
        self.dropout = MonteCarloDropout(dropout)
        self.fc1 = nn.Linear(sequence_length, sequence_length)
        self.norm_after = (
            norm_type((sequence_length, input_dim))
            if not normalize_before
            else nn.Identity()
        )
Applies a transformation over the time dimension of a sequence based on the
        `PyTorch implementation of TSMixer <https://github.com/ditschuk/pytorch-tsmixer>`_.

        This module applies a linear transformation followed by an activation function
        and dropout over the sequence length of the input feature torch.Tensor after converting
        feature maps to the time dimension and then back.

        Parameters
        ----------
        sequence_length
            The length of the sequences to be transformed.
        input_dim
            The number of input channels to the module.
        activation
            The activation function to be used after the linear
            transformation.
        dropout
            The dropout probability to be used after the activation function.
        normalize_before
            Whether to apply normalization before or after feature mixing.
        norm_type
            The type of normalization to use.
        
darts/models/forecasting/tsmixer_model.py