【笔记】Wgan-Gp 判别器损失:损失为正值或者负值均可,表示的真数据和假数据的相对分布位置,收敛到0为目标;优化器使用Adam,并没有使用默认参数;Wgan使用RMSProp做优化

附加:Wgan

Wgan-Gp:

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
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')`)。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的探索之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值