def __call__(self, inputs, *args, **kwargs): if not self.built: mean, variance = tf.nn.moments( inputs, axes=list(range(inputs.shape.ndims - 1))) self.bias_initial_value = -mean # TODO(trandustin): Optionally, actnorm multiplies log_scale by a fixed # log_scale factor (e.g., 3.) and initializes by # initial_value / log_scale_factor. self.log_scale_initial_value = tf.math.log( 1. / (tf.sqrt(variance) + self.epsilon)) if not isinstance(inputs, random_variable.RandomVariable): return super(ActNorm, self).__call__(inputs, *args, **kwargs) return transformed_random_variable.TransformedRandomVariable(inputs, self)
def __call__(self, inputs, *args, **kwargs): if not isinstance(inputs, random_variable.RandomVariable): return super(SinkhornAutoregressiveFlow, self).__call__(inputs, *args, **kwargs) return transformed_random_variable.TransformedRandomVariable( inputs, self)
def __call__(self, inputs, *args, **kwargs): if not isinstance(inputs, random_variable.RandomVariable): return super(DiscreteBipartiteFlow, self).__call__(inputs, *args, **kwargs) return transformed_random_variable.TransformedRandomVariable( inputs, self)