Tensorflow 去噪自动编码器-在自定义间隔上使用附加噪声进行训练
我想了解去噪自动编码器。我遵循了keras教程- 在本教程中,通过以下方式添加人工噪波来创建训练数据:Tensorflow 去噪自动编码器-在自定义间隔上使用附加噪声进行训练,tensorflow,neural-network,deep-learning,keras,autoencoder,Tensorflow,Neural Network,Deep Learning,Keras,Autoencoder,我想了解去噪自动编码器。我遵循了keras教程- 在本教程中,通过以下方式添加人工噪波来创建训练数据: x_train_noisy = x_train + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_train.shape) x_test_noisy = x_test + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_test.shape) 产生
x_train_noisy = x_train + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_train.shape)
x_test_noisy = x_test + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_test.shape)
产生:
这意味着噪波以及来自MINST数据集的基础数据的值介于0和1之间
应用经过训练的模型后,大部分噪声都已正确消除:
我试图在人工噪声非常小的情况下训练模型,但间隔为-5到5,如下所示:
def noise_matrix(arr, num, min, max):
m = np.product(arr.shape)
arr.ravel()[np.random.randint(0, m, size=num)] = np.random.uniform(min, max, num)
return arr
x_train_noisy = noise_matrix(x_train, x_train.shape[0] * 2, -5, 5)
x_test_noisy = noise_matrix(x_test, x_test.shape[0] * 2, -5, 5)
产生:
(上图中对比度的差异是由matplotlib
库中的隐式标准化引起的)
现在,当我训练自动编码器并应用模型时,我得到以下结果:
大部分噪音没有消除。要从间隔
(-5,5)
中去除噪声,我需要执行哪些步骤?在向间隔(0,1)
添加噪声后,我尝试对所有数据进行规范化,但这不是方法(我用这种方法得到了非常糟糕的结果)。解码图像仍然有明显的噪声。由于您没有提供用于安装自动编码器的代码,我猜您正在将其安装到有噪数据ae.fit(x=x_有噪,y=x_有噪)
,
鉴于您应该在原始数据上进行拟合:
ae.fit(x=x_noised, y=x_original)
解码后的图像仍然有明显的噪声。由于您没有提供用于安装自动编码器的代码,我猜您正在将其安装到有噪数据
ae.fit(x=x_有噪,y=x_有噪)
,
鉴于您应该在原始数据上进行拟合:
ae.fit(x=x_noised, y=x_original)