目录

1.GAN简述

2.生成器模块

3.判别器模块

4.数据生成模块

5.判别器训练

6.生成器训练

7.结果可视化


1.GAN简述

在GAN中,有两个模型,一个是生成模型,用于生成样本,一个是判别模型,用于判断样本是真还是假。但由于在GAN中,使用的JS散度去计算损失值,很容易导致梯度弥散的情况,从而无法进行梯度下降更新参数,于是在WGAN中,引入了Wasserstein Distance,使得训练变得稳定。本文中我们以服从高斯分布的数据作为样本。

2.生成器模块

这里从2维数据,最终生成2维,主要目的是为了可视化比较方便。也就是说,在生成模型中,我们输入杂乱无章的2维的数据,通过训练之后,可以生成一个赝品,这个赝品在模仿高斯分布。

3.判别器模块

判别器同样输入的是2维的数据。比如我们上面的生成器,生成了一个2维的赝品,输入判别器之后,它能够最终输出一个sigmoid转换后的结果,相当于是一个概率,从而判别,这个赝品到底能不能达到以假乱真的程度。

4.数据生成模块

由于我们使用的是高斯模型,因此,直接生成我们需要的数据即可。我们在这个模块中,生成8个服从高斯分布的数据。

5.判别器训练

由于使用JS散度去计算损失的时候,会很容易出现梯度极小,接近于0的情况,会使得梯度下降无法进行,因此计算损失的时候,使用了Wasserstein Distance,去度量两个分布之间的差异。因此我们假如了梯度惩罚的因子。

其中,梯度惩罚的模块如下:

6.生成器训练

这里的训练是紧接着判别器训练的。也就是说,在一个周期里面,先训练判别器,再训练生成器。

7.结果可视化

通过visdom可视化损失值,通过matplotlib可视化分布的预测结果。

PyTorch实现WGAN相关推荐

  1. 【深度学习2】基于Pytorch的WGAN理论和代码解析

    目录 1 原始GAN存在问题 2 WGAN原理 3 代码理解 GitHub源码 参考文章:令人拍案叫绝的Wasserstein GAN - 知乎 (zhihu.com) 1 原始GAN存在问题 实际训 ...

  2. pytorch搭建WGAN

    DCGAN只是在网络结构上做了相应的改进,但是实质上并没有解决gan中的本质缺陷 Wasserstein GAN(下面简称WGAN)成功地做到了以下爆炸性的几点: 彻底解决GAN训练不稳定的问题,不再 ...

  3. pytorch实现 wgan

    在网上找了一个wgan的实现代码,在本地跑了以下,效果还可以,我把它封装成一个函数了,感兴趣的朋友可以用一下 不过这个gan生成的是一维数据,对于图片数据可能需要对代码进行一些改变 import nu ...

  4. pytorch训练WGAN网络

    使用8个高斯分布做对抗网络训练. wgan_gp.py,代码: import torch from torch import nn, optim, autograd import numpy as n ...

  5. 【总目录3】Python、神经网络与深度学习、毕业设计总结大全

    本目录主要为Python相关目录,主要包含Python相关知识.神经网络与深度学习和毕业设计(基于机器学习及深度学习的心脏病预测方法)的Python实现等. 上文目录链接:https://blog.c ...

  6. PyTorch - GAN与WGAN及其实战

    目录 GAN 基本结构 训练 对于生成器 对于判别器 训练流程 训练理论 min max公式 Where will D converge, given fixed G Where will G con ...

  7. 【Pytorch】(十)生成对抗网络之WGAN,WGAN-GP

    文章目录 WGAN,WGAN-GP 原理 Pytorch实现:生成正态分布数据 WGAN WGAN-GP 结果对比 前些天发现一个通俗易懂,风趣幽默的人工智能学习网站: 传送门 WGAN,WGAN-G ...

  8. 【Pytorch神经网络理论篇】 23 对抗神经网络:概述流程 + WGAN模型 + WGAN-gp模型 + 条件GAN + WGAN-div + W散度

    1 对抗神经简介 1.1 对抗神经网络的基本组成 1.1.1 基本构成 对抗神经网络(即生成式对抗网络,GAN)一般由两个模型组成: 生成器模型(generator):用于合成与真实样本相差无几的模拟 ...

  9. WGAN模型——pytorch实现

    论文传送门:https://arxiv.org/pdf/1701.07875.pdf 参考文章:令人拍案叫绝的Wasserstein GAN - 知乎​​​​​​ WGAN的目的:解决GAN的梯度不稳 ...

最新文章

  1. java 人事_java版简易人事管理系统
  2. java xslt 2,使用xsl:for-each-group进行XSLT 2.0分组
  3. C# 7编程模式与实践
  4. 对float浮动的我的理解,形象生动一点
  5. C语言实现DES加解密算法
  6. RMQ算法,求区间最值
  7. 承担集团数万应用、研发人员日常工作,阿里持续交付平台的设计、迭代之道... 1
  8. oracle查询本月第一天_oracle获取本月第一天和最后一天及Oracle trunc()函数的用法...
  9. rad linux下安装mysql_Linux(CentOS或RadHat)下MySQL源码安装
  10. python常用代码总结-python常用代码
  11. 【C语言】冒泡排序与回文判断
  12. 思科模拟器实验7:OSPF配置命令
  13. win7更改计算机名后桌面壁纸,win7桌面壁纸不能更换怎么办-处理win7桌面壁纸无法更换的方案 - 河东软件园...
  14. 十分钟掌握Google Guice(上)
  15. 虚拟机安装未能启动服务器,虚拟机里安装Windowsserver2016,部署wsus出现无法启动和配置...
  16. Tobii:眼球追踪技术能够提升制造行业安全性
  17. 串口NFC模块,轻松实现NFC通信
  18. 【C语言笔记】【宏定义系列】 绝对值
  19. 读书笔记-成功需要努力勤奋和坚持不懈
  20. linux性能监控命令—tsar命令

热门文章

  1. 【Katalon学习一】Katalon Studio入门指南
  2. ref 引用(vue获取DOM元素)
  3. 从重大漏洞应急看云原生架构下的安全建设与安全运营(上)
  4. Nuke的viewer里的HSLV参数不显示并且Cryptomatte节点里crypto_object无法选择
  5. MySQL练习题---删除重复的电子邮箱
  6. <智能指针>——《C++高阶》
  7. 【2019秋冬】【剑指offer】旋转数组的最小数字
  8. Spark对接Hive:整合Hive操作及函数
  9. 复用技术和多址技术的区别
  10. b 数据库大全简单介绍