如何定义数据范围为(-2,2)的自动编码器中的重构损失

时间:2018-12-26 02:25:40

标签: python tensorflow deep-learning

我有一个语音数据集,其形状为(None,128,128,1)。最大数据约为2,最小数据约为-2。

我训练了一个自动编码器来重建它。

这是我定义的损失函数:

recon_loss=tf.reduce_mean(tf.square(self.decoder_samples-self.input_placeholder))

损失函数是正常均方误差。

我发现训练时的初始损失非常低:大约0.009。但是在经历了几次失败之后,损失将非常高,而且永远不会减少。

当我将数据归一化为(0,1)时,我发现丢失行为更好。但是规范化会破坏数据中的某些模式,所以我不想使用它。

我确定我的代码中没有错误,因为以前我使用同一数据集的不同特征表示(语音处理中的滤波器组,数据范围约为(0,20)),训练过程非常好,重建效果非常好。我对该数据使用了相同的模型结构(数据范围为(-2,2)),训练是无法解释的。

我的问题是,对于这种数据,是否有更好的重构功能?

谢谢。

0 个答案:

没有答案