def reduce_noise_normalize_batch(g):
    summed_gradient = tf.reduce_sum(g, axis=0)
    noise_stddev = (self._l2_norm_clip * self._noise_multiplier)
    noise = tf.random.normal(tf.shape(input=summed_gradient), stddev=noise_stddev)
    noised_gradient = tf.add(summed_gradient, noise)
    return tf.truediv(noised_gradient, self._num_microbatches)
def reduce_noise_normalize_batch(g):
    summed_gradient = tf.reduce_sum(g, axis=0)
    noise_stddev = (self._l2_norm_clip * self._noise_multiplier)
    noise = tf.random.normal(tf.shape(input=summed_gradient), stddev=noise_stddev)
    noised_gradient = tf.add(summed_gradient, noise)
    return tf.truediv(noised_gradient, self._num_microbatches)