def init(
        self, output_dim: int, rng: Optional[jax.Array] = None, **kwargs
    ) -> Optional[FrozenDict]:
        """
        Initialize random parameters and mutable objects.

        Parameters
        ----------
        output_dim: int
            The output dimension.
        rng: Optional[jax.Array]
            A random number generator.
            If not passed,
            this will be taken from the attributes of this class.

        Returns
        -------
        Optional[FrozenDict]
            Initialized random parameters and mutable objects.
        """
        if rng is None:
            rng = self.rng.get()
        rng, params_key, dropout_key = random.split(rng, 3)
        rngs = {"params": params_key, "dropout": dropout_key}
        return (
            self.output_calibrator.init(rngs, jnp.zeros((1, output_dim)), **kwargs)
            if self.output_calibrator is not None
            else None
        )

        Initialize random parameters and mutable objects.

        Parameters
        ----------
        output_dim: int
            The output dimension.
        rng: Optional[jax.Array]
            A random number generator.
            If not passed,
            this will be taken from the attributes of this class.

        Returns
        -------
        Optional[FrozenDict]
            Initialized random parameters and mutable objects.
        
fortuna/output_calibrator/output_calib_manager/base.py