def __init__(self, ffn: nn.Module, dropout: float, *args, **kwargs):
        """
        Parameters
        ----------
        ffn
            One of Darts' Position-wise Feed-Forward Network variants from darts.models.components.glu_variants
        dropout
            Fraction of neurons affected by Dropout (default=0.1).
        args
            positional arguments from torch.nn.TransformerEncoderLayer.
        kwargs
            keyword arguments from torch.nn.TransformerEncoderLayer. `activation` will have no effect.
        """
        super().__init__(*args, **kwargs)
        self.ffn = ffn
        self.dropout = MonteCarloDropout(dropout)

        Parameters
        ----------
        ffn
            One of Darts' Position-wise Feed-Forward Network variants from darts.models.components.glu_variants
        dropout
            Fraction of neurons affected by Dropout (default=0.1).
        args
            positional arguments from torch.nn.TransformerEncoderLayer.
        kwargs
            keyword arguments from torch.nn.TransformerEncoderLayer. `activation` will have no effect.
        
darts/models/components/transformer.py