def forward(self, x: torch.Tensor) -> torch.Tensor:
        """
        Forward pass of the FBLightConvNet model.
        Parameters
        ----------
        x : torch.Tensor
            Input tensor with shape (batch_size, n_chans, n_times).
        Returns
        -------
        torch.Tensor
            Output tensor with shape (batch_size, n_outputs).
        """
        batch_size, _, _ = x.shape
        # x.shape: batch, n_chans, n_times

        x = self.spectral_filtering(x)
        # x.shape: batch, nbands, n_chans, n_times

        x = self.spatial_conv(x)
        # x.shape: batch, n_filters_spat, n_times

        x = x[:, :, :, : self.n_times_truncated]
        # batch, n_filters_spat, n_times_trucated

        x = x.reshape([batch_size, self.n_filters_spat, -1, self.win_len])
        # batch, n_filters_spat, n_windows, win_len
        # where the n_windows = n_times_truncated / win_len
        # and win_len = 250 by default

        x = self.temporal_layer(x)
        # x.shape : batch, n_filters_spat, n_windows

        x = self.attn_conv(x)
        # x.shape : batch, n_filters_spat, 1

        x = self.flatten_layer(x)
        # x.shape : batch, n_filters_spat

        x = self.final_layer(x)
        # x.shape : batch, n_outputs
        return x

        Forward pass of the FBLightConvNet model.
        Parameters
        ----------
        x : torch.Tensor
            Input tensor with shape (batch_size, n_chans, n_times).
        Returns
        -------
        torch.Tensor
            Output tensor with shape (batch_size, n_outputs).
        
braindecode/models/fblightconvnet.py