【pytorch】GAN



2022年06月18日    Author:Guofei

文章归类: 0x26_torch    文章编号: 273

版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2022/06/18/gan.html


# 第一种
loss = nn.BCELoss()
loss(softmax(a), target)

# 第二种
loss = nn.BCEWithLogitsLoss()
loss(a, target)

CycleGan

项目地址:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

GAN

注意

  • 判别模块 D 来说,不需要图片是成对的。只需要一批斑马和另一批马。而不需要一摸一样的图,只是斑马换成了马。
  • 图中的流向只画了一半,另一半是把 A 和 B 数据集颠倒一下。
    • 用的还是同一个 $G_{AB}$ 和 $G_{BA}$
    • 新增一个 $D_A$ 用来对 Real A 和 Fake A 分类。
  • 涉及到4种损失函数
    • G 网络对应的损失函数,nn.BCEWithLogitsLoss().(D(output_fake), 1),也就是说, G 产生的 Fake 图,输入 D 后得到的值尽可能接近1
    • D 网络对应的损失函数:一批 fake 和一批 real,尽可能判别出来。使用的不是 sigmoid,而是基于感受野的 PatchGAN,它输出的是NxN的矩阵,表示每个对应的感受野的标签。
    • Cycle:Real 图片和 Recostructed 图片,在像素级别尽可能一致
    • Identity:(这个在图里面没画,论文里面没说,但项目中有),把 A 输入 GAB,输出的仍然极可能接近 A;把 B 输入 GBA,输出的尽可能接近 B。

您的支持将鼓励我继续创作!