如何解决Denoisner业绩不佳
我正在为循环函数(cos(x)
,cos(2x)
等)构建去噪器,至少可以说我得到的结果很糟糕。
直到几个小时前,该模型完全不起作用(对于所有结果仅返回0),然后我添加了nn.BatchNorm1d
,它开始“学习”。
问题在于结果确实很糟糕,看上去甚至比嘈杂的示例还要糟糕:
该模型非常简单(in_channels = 1
,K = 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
优化器用900
和lr = 0.005
训练了momentum = 0.9
个时期。
我还尝试了不同的优化器。
欢呼
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。