def forward(self, inputs: torch.Tensor) -> torch.Tensor:
        """
        Apply sinc filters to the input signal.

        Parameters
        ----------
        inputs : torch.Tensor
            Input tensor of shape [batch_size, num_channels, num_samples, 1].

        Returns
        -------
        torch.Tensor
            Filtered output tensor of shape [batch_size, num_channels, num_samples, num_filters].
        """
        filters = self.build_sinc_filters().to(
            inputs.device
        )  # [1, kernel_size, 1, num_filters]

        # Convert from channels_last to channels_first format
        inputs = inputs.permute(0, 3, 1, 2)
        # Permuting to match conv:
        filters = filters.permute(3, 2, 0, 1)
        # Apply convolution
        outputs = F.conv2d(inputs, filters, padding=self.padding)
        # Changing the dimensional
        outputs = outputs.permute(0, 2, 3, 1)

        return outputs

        Apply sinc filters to the input signal.

        Parameters
        ----------
        inputs : torch.Tensor
            Input tensor of shape [batch_size, num_channels, num_samples, 1].

        Returns
        -------
        torch.Tensor
            Filtered output tensor of shape [batch_size, num_channels, num_samples, num_filters].
        
braindecode/models/sinc_shallow.py