def ornstein_uhlenbeck_noise(a, t_decay=100000):
noise_var = get_local_variable("nm", initializer=tf.zeros(a.get_shape()[1:]))
ou_theta = get_local_variable("ou_theta", initializer=0.2)
ou_sigma = get_local_variable("ou_sigma", initializer=0.15)
# ou_theta = tf.Print(ou_theta, [noise_var], 'noise: ', first_n=2000)
ou_sigma = tf.train.exponential_decay(ou_sigma, tt.function.step(), t_decay, 1e-6)
n = noise_var.assign_sub(ou_theta * noise_var - tf.random_normal(a.get_shape()[1:], stddev=ou_sigma))
return a + n
评论列表
文章目录