def get_output_shape(self) -> tuple[int, ...]:
        """Returns shape of neural network output for batch size equal 1.

        Returns
        -------
        output_shape: tuple[int, ...]
            shape of the network output for `batch_size==1` (1, ...)
        """
        with torch.inference_mode():
            try:
                return tuple(
                    self.forward(  # type: ignore
                        torch.zeros(
                            self.input_shape,
                            dtype=next(self.parameters()).dtype,  # type: ignore
                            device=next(self.parameters()).device,  # type: ignore
                        )
                    ).shape
                )
            except RuntimeError as exc:
                if str(exc).endswith(
                    (
                        "Output size is too small",
                        "Kernel size can't be greater than actual input size",
                    )
                ):
                    msg = (
                        "During model prediction RuntimeError was thrown showing that at some "
                        f"layer `{str(exc).split('.')[-1]}` (see above in the stacktrace). This "
                        "could be caused by providing too small `n_times`/`input_window_seconds`. "
                        "Model may require longer chunks of signal in the input than "
                        f"{self.input_shape}."
                    )
                    raise ValueError(msg) from exc
                raise exc
Returns shape of neural network output for batch size equal 1.

        Returns
        -------
        output_shape: tuple[int, ...]
            shape of the network output for `batch_size==1` (1, ...)
        
braindecode/models/base.py