Denoisner业绩不佳

问题描述

我正在为循环函数(cos(x)cos(2x)等)构建去噪器,至少可以说我得到的结果很糟糕。

直到几个小时前,该模型完全不起作用(对于所有结果仅返回0),然后我添加了nn.BatchNorm1d,它开始“学习”。

问题在于结果确实很糟糕,看上去甚至比嘈杂的示例还要糟糕:

enter image description here

该模型非常简单(in_channels = 1K = 128每个间隔中的样本数,B = 2个间隔数,z_dim = 64隐藏维数,{{1} })

out_channels = 1

我试图使模型更深,使用class LinAutoencoder(nn.Module): def __init__(self,in_channels,K,B,z_dim,out_channels): super(LinAutoencoder,self).__init__() self.in_channels = in_channels self.K = K self.B = B self.out_channels = out_channels encoder_layers = [] decoder_layers = [] encoder_layers += [ nn.Linear(in_channels * K * B,in_channels * K * B,bias=True),nn.BatchNorm1d(in_channels * K * B),nn.ReLU(),nn.Linear(in_channels * K * B,nn.BatchNorm1d(z_dim),nn.ReLU() ] decoder_layers += [ nn.Linear(z_dim,out_channels * K * B,nn.BatchNorm1d(out_channels * K * B),nn.Linear(out_channels * K * B,nn.ReLU() ] self.encoder = nn.Sequential(*encoder_layers) self.decoder = nn.Sequential(*decoder_layers) print(self.decoder) def forward(self,x): batch_size = x.shape[0] x_flat = torch.flatten(x,start_dim=1) enc = self.encoder(x_flat) dec = self.decoder(enc) res = dec.view((batch_size,self.out_channels,self.K * self.B)) return res 代替tanh失败了。

我使用relu优化器用900lr = 0.005训练了momentum = 0.9个时期。 我还尝试了不同的优化器。 欢呼

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)