将 torch.backward() 用于 GAN 生成器时,为啥 Pytorch 中的判别器损失没有变化?

     2023-03-24     224

关键词:

【中文标题】将 torch.backward() 用于 GAN 生成器时,为啥 Pytorch 中的判别器损失没有变化?【英文标题】:When using torch.backward() for a GANs generator, why doesn't discriminator losses change in Pytorch?将 torch.backward() 用于 GAN 生成器时,为什么 Pytorch 中的判别器损失没有变化? 【发布时间】:2021-06-24 16:56:23 【问题描述】:

我对 GAN 的理解是:

    在训练您的生成器时,您需要先通过判别器进行反向传播,以便遵循链式规则。因此,我们在进行生成器损失计算时不能使用.detach()

    在更新判别器时,由于您的生成器权重更新不会影响判别器权重更新,我们可以.detach()您计算的生成器输出,我的理解告诉我,由于这个生成器不再是计算图的一部分,我们不再在 back prop 期间更新它。

所以当我们更新您的鉴别器损失时:

disc_loss.backward(retain_graph=True) 在每个小批量中,由于.detach() 函数调用,我们不必担心您的生成器会成为管道的一部分。

但是当我们在我们的生成器上工作时呢?是什么阻止了我们的模型根据生成器不断改变我们的鉴别器权重?毕竟这不是我们想要的吗?当被告知假样本是真实的时,鉴别器不应该学习。

为什么这样的模型首先会起作用

【问题讨论】:

【参考方案1】:

backward 不会更新权重,它会更新权重的梯度。更新权重是优化器的责任。实现 GAN 有不同的方法,但通常会有两个优化器,一个负责更新生成器的权重(并重置梯度),另一个负责更新生成器的权重(并重置梯度)鉴别器。在初始化时,每个优化器只提供它将更新的模型的权重。因此,当您调用优化器的 step 方法时,它只会更新这些权重。使用单独的优化器可以防止鉴别器权重被更新,同时最小化生成器的损失函数。

【讨论】:

用于改善质量稳定性和多样性的可增长式gan

用于改善质量、稳定性和多样性的可增长式GANGANsNVIDIAFlyrealorfake?realorfake?1024x1024imagesgeneratedusingtheCELEBA-HQdataset来源论文:ProgressiveGrowingofGANsforImprovedQuality,Stability,andVariation链接:http://research.nvidi 查看详情

《生成对抗网络gan的原理与应用专题》笔记

...文叫做“生成对抗网络”。在GAN中有2个网络,一个网络用于生成数据,叫做“生成器”。另一个网络用于判别生成数据是否接近于真实,叫做“判别器”。下图展示了最简单的GAN的结构以及工作原理。     查看详情

无法理解 tensorflow 文档中使用的 GAN 模型的损失函数

...TensorFlow文档中GAN模型中的损失函数。为什么将tf.ones_like()用于real_loss和tf.zeros_lik 查看详情

对抗生成网络gan

 该方法常用于:图像生成图像修复,训练用了MSE+Global+Local数据,其中Global+Local判别式用于全局+局部一致性。图像超分辨率重构 GAN的基本原理,主要包含两个网络,G(Generator)和D(Discriminator),含义如下:(以图像生... 查看详情

生成对抗网络gan

...等人于2014年提出的基于深度学习模型的生成框架,可用于多种生成任务。从名称也不难看出,在GAN中包括了两个部分,分别为”生成”和“对抗”,整两个部分也分别对应了两个网络,即生成网络ÿ 查看详情

生成对抗网络gan

...等人于2014年提出的基于深度学习模型的生成框架,可用于多种生成任务。从名称也不难看出,在GAN中包括了两个部分,分别为”生成”和“对抗”,整两个部分也分别对应了两个网络,即生成网络ÿ 查看详情

keras深度学习实战(22)——生成对抗网络详解与实现(代码片段)

...输入图像是真实图像还是生成器生成的伪造图像。假设GAN用于生成人脸图像,鉴别器试图将图片分类为真实人脸图像或者伪造的虚假人脸图像,一旦我们训练完成的鉴别器能够将正确分类真实人脸图像和虚假人脸图像,如果我们... 查看详情

python实现构建gan模型,输入一个矩阵和两个参数值,输出一个矩阵(代码片段)

...一种深度学习模型,由生成器和判别器两部分组成,可以用于生成具有一定规律性的数据,如图像或音频。#定义生成器defmake_generator(noise_dim,data_dim):model=tf.keras.Sequential()model.add(tf.keras.layers. 查看详情

wide-bandgap宽禁带(wbg)器件(如gan和sic)市场将何去何从?

Wide-Bandgap宽禁带(WBG)器件(如GaN和SiC)市场将何去何从?WhereIstheWide-BandgapMarketGoing?电力电子在采用宽禁带(WBG)器件(如GaN和SiC)方面有了一个有趣的转变。虽然硅仍然主导着市场,但GaN和SiC器件的出现将很快引导技术朝着... 查看详情

gan的数学原理

KL散度(Kullback–Leiblerdivergence):用于刻画概率分布Q拟合概率分布P的程度,P为真实数据的概率分布,Q为随机噪声生成数据的概率分布,对抗的目的是让Q充分拟合P,如果Q拟合P不充分,就会产生信息损耗,整个信息损耗就是... 查看详情

gan综述

...人工智能学界一个热门的研究方向,著名学者YannLecun甚至将其称为“过去十年间机器学习领域最让人激动的点子"。GAN的基本思想源自博弈论的二人零和博弈,由一个生成器和一个判别器构成,通过对抗学习的方式来训练,目的... 查看详情

概率生成模型gan

...(VAE)(3)自回归模型(Auto-regressive) 3.GAN模型  将一个随机变量,通过参数化的概率生成模型,进行概率分布的逆变换采样,从而得到一个生成的 查看详情

eccv2018|给cycle-gan加上时间约束,cmu等提出新型视频转换方法recycle-gan

...展示:http://www.cs.cmu.edu/~aayushb/Recycle-GAN/该研究提出一种用于视频重定向的 查看详情

gan之根据文本描述生成图像

...像修复、图像超清化、人脸合成、素描上色等。今天我们将介绍一种更加复杂的应用,那就是基于文本生成图像。本文是文献[1]的阅读笔记。背景首先,我们要了解GAN是什么,简而言之,GAN是一种“道高一尺魔高... 查看详情

深度学习系列46:人脸图像超分gfp-gan(代码片段)

...-GAN由腾讯ARC实验室出品,测试下来效果很不错。模型用于从低质量的人脸中恢复出高质量人脸。这些质量较低的肖像图可能由各种原因导致退化,如低分辨率,噪音,模糊或是被压缩。主流的图像修复技术还是对... 查看详情

利用tensorflow训练简单的生成对抗网络gan

...经网络结构,输入就是一副图像,输出就是一个概率值,用于判断真假使用(概率值大于0.5那就是真,小于0 查看详情

gan算法不包括以下哪个模型

不管何种模型,其损失函数(LossFunction)选择,将影响到训练结果质量,是机器学习模型设计的重要部分。对于判别模型,损失函数是容易定义的,因为输出的目标相对简单。但对于生成模型,损失函数却是不容易定义的。2014... 查看详情

gan充电器意思详细介绍

...GaN作为材料可以拥有更小、更轻的体积。5、同时,它还将提供更高的功率,能够让充电器拥有更快的充电速度。6、此外,gan充电器还有更好的延展性,能够适应更多设备且不容易损坏。相关文章:和普通充电器有什么区别维修... 查看详情