首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么发电机在我的GAN不工作?

为什么发电机在我的GAN不工作?
EN

Stack Overflow用户
提问于 2022-06-22 05:30:41
回答 1查看 262关注 0票数 0

我目前正在用我自己的神经网络库从零开始编写一个生成的对抗性网络(GAN),以生成MNIST手写数字。鉴别器看起来很好,但是随着时间的推移,生成器并没有真正学到任何东西。也许我的训练方法是错的。

所以我的问题是,如果我真的可以这样训练我的发电机。

首先,我用实数和输出1训练我的鉴别器,然后用生成器和输出0生成的假例子训练我的鉴别器。这个很好用。接下来,我通过使用假示例运行判别器来训练生成器,但是使用输出1(生成器希望鉴别器将生成的图像分类为真实),并将错误反向传播到鉴别器的输入层,但不更新其权重。输入层的这个错误,然后通过生成器反向传播,并在此基础上更新他。我可以这样做,并通过生成器反向传播鉴别器的错误吗?生成器本质上是鉴别器的输入,对吗?或者有更好的方法来做?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-26 08:45:16

从你的问题中,我假设你提出了这样一种方法:在训练鉴别器时,你想要反向传播直到产生器(到我们提供噪声的点),而不是在鉴别器(第一层鉴别器)的开头分离它?

如果是这样的话,那么您将更新生成器参数,以了解区分器的损失。鉴别器的任务是更新它的参数,以便对真伪进行分类。如果你不停止反向传播,让它进入发电机,发电机的参数将得到更新的wrt光盘损失,这使发生器产生的图像,可以很容易地分辨出来。这会造成混乱,因为你正在训练你的人愚弄光盘,同时,你的世代也被光盘愚弄了

方法是简单地从生成器生成图像,将真实图像传递到光盘,并将其等同于1,将假图像传递到光盘,并将其等同于0(反之亦然),执行反向道具,并确保分离假图像(fake.detach() )。这样就可以停止反向支持,而不更新生成器参数。

然后,通过使用1的磁盘传递假图像来执行生成器的训练(或者,如果您已经采取了上述情况,则为0)。

甘斯确实需要很多时间来训练。为了进行最好的训练,https://github.com/soumith/ganhacks遵循这些技巧

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72710129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档