def __init__(
            self,
            coeff_init: Union[float, tf.Tensor],
            per_channel: bool = False, trainable: bool = False):
        """Initializes the ExponentialMovingAverage.

        Args:
          coeff_init: the value of the initial coeff.
          per_channel: whether the smoothing should be different per channel.
          trainable: whether the smoothing should be trained or not.
        """
        super().__init__(name='EMA')
        self._coeff_init = coeff_init
        self._per_channel = per_channel
        self._trainable = trainable
Initializes the ExponentialMovingAverage.

        Args:
          coeff_init: the value of the initial coeff.
          per_channel: whether the smoothing should be different per channel.
          trainable: whether the smoothing should be trained or not.
        
leaf_audio/postprocessing.py