import tensorflow as tf

            _, variance = tf.nn.moments(tf.reshape(var,[-1]),axes=[0])

            normal = tf.distributions.Normal(loc=0.0, scale=tf.sqrt(variance)/10)
            white_noise = normal.sample(var.get_shape())

            update_opts.append(var.assign(var + white_noise))

        self.random_update_op = tf.group(update_opts)

    #apply clipping
    def _clip_gradients(self, grads_and_vars, grad_clipping_tuple):

        clipping_method, clipping_kwargs = grad_clipping_tuple

