关于wgan-gp的loss值的问题

问题:有人训练的wgan-gp,判别器器损很高,但是生成器的损失函数为0,是否代表生成器效果太好?
个人遇到的问题:生成器逐渐升高,不收敛。但是判别器的loss收敛

回答:That’s not a problem, your charts look okay. The generator loss is actually meaningless by itself, since the critic’s loss is invariant to any constant offset (I.e. A critic F(x) and a critic F(x)+c will perform the same under the critic objective). This means that constant offset will randomly vary up and down (and the generator loss with it). So in general you should pay attention only to the critic loss (actually, the negative of that, if you want your loss curve to look more like the typical supervised curves).
其实意思就是:
生成器的损失没有意义,把关注点放在判别器的loss上就好。
原连接

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WGAN-GP和WGAN-Div都是基于Wasserstein距离的GAN改进算法。 WGAN-GP和WGAN-Div都保留了WGAN的一些特点,如使用Wasserstein距离来衡量生成器和判别器之间的距离,使用weight clipping等。 不同之处在于,WGAN-GP使用了梯度惩罚来强制判别器满足Lipschitz连续性,而WGAN-Div则使用了一种新的多样性评价指标——divergence来衡量生成器和真实数据之间的距离。 以下是WGAN-Div的损失函数PyTorch形式代码: ```python import torch import torch.nn as nn # 定义WGAN-Div的判别器损失函数 def d_loss(real_data, fake_data, discriminator, generator, device): # 生成器产生的样本 generated_data = generator(torch.randn(real_data.size(0), 100).to(device)) # 判别器对真实数据的输出 d_output_real = discriminator(real_data) # 判别器对生成数据的输出 d_output_fake = discriminator(generated_data.detach()) # WGAN-Div的判别器损失函数 loss_d = -torch.mean(d_output_real) + torch.mean(torch.exp(d_output_fake - 1)) return loss_d # 定义WGAN-Div的生成器损失函数 def g_loss(real_data, generator, discriminator, device): # 生成器产生的样本 generated_data = generator(torch.randn(real_data.size(0), 100).to(device)) # 判别器对生成数据的输出 d_output_fake = discriminator(generated_data) # WGAN-Div的生成器损失函数 loss_g = -torch.mean(torch.exp(d_output_fake - 1)) return loss_g ``` 其中,`d_loss`为WGAN-Div的判别器损失函数,`g_loss`为WGAN-Div的生成器损失函数。实现时需要定义判别器和生成器并将其传入损失函数中,同时需要指定设备(如`device=torch.device('cuda:0')`)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值