1、学习率设置过大
当学习率设置过大时,可能会导致损失函数从一个峰值跳跃到另一个峰值,学习率一般可以从0.1试到0.0001
2、模型输出有问题
这个是在训练自编码器的时候发现的,由于输出需要从-20到20,而最后一层通常为一个输出值为-1到1的函数,所以一开始没发现,只是奇怪为什么损失降不下去,后来把模型最后一层的激活函数删去,损失函数就可以正常下降了
self.model = nn.Sequential(
*block(opt.latent_dim, 128, normalize=False),
*block(128, 256),
*block(256, 512),
*block(512, 1024),
nn.Linear(1024, img_area),
# nn.sigmoid()
)