我有一个语音数据集,其形状为(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)),训练是无法解释的。
我的问题是,对于这种数据,是否有更好的重构功能?
谢谢。