【小白学习笔记】GAN之初体验

        今天自己搭建了一个GAN,网络是自己随意搭建的,用的Pytorch框架。目的是输入一张图像,使其能够产生梵高风格的该图像。该项目来自于kaggle里的一个新手学习小项目。

        整个过程中遇到过一些问题,比如:

        1.对卷积的运算要准确,可以在网络的代码里的main()函数中写一个随机初始化数据来判断自己的计算是否有问题。

        2.训练代码要先计算判别器的损失,再梯度下降。然后再计算生成器的。其中在训练的时候遇到了一个流程图的问题:

RuntimeError: Trying to backward through the graph a second time, but the buffers have already been freed. Specify retain_graph=True when calling backward the first time

解决办法是在所有的loss.backfard()中加入参数retain_graph = True

        3.训练时,发现初始或者过一小段时间生成器的loss很高,并且判别器的loss下降很快,并且最后趋于0.0几,通过分析,应该是生成器的能力远远小于了判别器的能力。就类似于一个从未画画过的新手模仿梵高的画,然后送给梵高本人去鉴定一样。有了这个经验后,我增加了生成器的规模,降低了判别器的规模。虽然训练到后期还是会发生判别器越来越准确的情况,但也需要训练很长一段时间才会出现这种情况,就像前期一直在不断地对抗,但最后还是判别器赢得这场比赛。GAN的核心一定要是生成器和判别器达到一种纳什平衡才行。

        由于本人所用设备的限制(老笔记本了,960的GPU),所以无法再提升生成器的规模,否则可能训练时间过长,更不用说去复现已有的优秀GAN的网络代码了,过段时间等实验室的服务器可以使用了,再继续这方面的研究学习吧。



 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值