def __call__(self, x: jnp.ndarray) -> jnp.ndarray:
        """
        Bottleneck block forward pass.

        Parameters
        ----------
        x: jnp.ndarray
            Block inputs.

        Returns
        -------
        jnp.ndarray
            Block outputs.
        """
        residual = x
        y = self.conv(self.filters, (1, 1))(x)
        y = self.norm()(y)
        y = self.activation(y)
        y = self.conv(self.filters, (3, 3), self.strides)(y)
        y = self.norm()(y)
        y = self.activation(y)
        y = self.conv(self.filters * 4, (1, 1))(y)
        y = self.norm(scale_init=nn.initializers.zeros)(y)

        if residual.shape != y.shape:
            residual = self.conv(
                self.filters * 4, (1, 1), self.strides, name="conv_proj"
            )(residual)
            residual = self.norm(name="norm_proj")(residual)

        return self.activation(residual + y)

        Bottleneck block forward pass.

        Parameters
        ----------
        x: jnp.ndarray
            Block inputs.

        Returns
        -------
        jnp.ndarray
            Block outputs.
        
fortuna/model/resnet.py