如何在 Keras 中为输入数据添加均匀分布的噪声?

How to add a noise with uniform distribution to input data in Keras?

我需要为我的输入数据添加量化噪声。我经常读到这些类型的噪音被建模为均匀分布的噪音。

我有一个用 Keras 实现的 encoding/decoding 网络(输入数据是时间序列原始数据),在 Keras 中实现了一个可以添加高斯噪声的层(GaussianNoise 层),我可以使用这个吗图层来创建均匀的噪声?

如果没有,我可以使用其他实现层吗?

您可以创建自己的图层,

import tensorflow as tf

class noiseLayer(tf.keras.layers.Layer):

    def __init__(self,mean,std):
        super(noiseLayer, self).__init__()
        self.mean = mean
        self.std  = std

    def call(self, input):

        mean = self.mean
        std  = self.std

        return input + tf.random.normal(tf.shape(input).numpy(), 
                                    mean = mean,
                                    stddev = std)

X = tf.ones([10,10,10]) * 100
Y = noiseLayer(mean = 0, std = 0.1)(X)

此代码适用于最新的 Tensorflow 2.0。