上文“级联别多对抗的LAPGAN(一)原理分析”中对LAPGAN【1】的理论进行了介绍,本文将使用pytorch进行代码实现。由于其采用拉普拉斯金字塔与高斯金字塔结合并需要训练多个GAN网络的方式比较复杂,同时生成图像的质量也远不及当今的GAN网络,所以本文仅仅编写了其网络结构对应的代码,没有进行训练或者测试,其网络整体结构如下:

按照上图所示,需要实现的网络包含4个生成器G0、G1、G2和G3,以及4个判别器D0、D1、D2和D3,下面对其实现进行分析。

一、生成器实现

生成器G3的输入仅有噪声数据,而其余生成器输入既有噪声又有图像,所以G3和其余生成器的实现是不同的,下面分别进行讨论:

1.1 顶层生成器G3

上图并没有给出最顶层输入为噪声数据的生成器(G3)结构图,按照网上的复现版本【2】,输入为噪声数据的网络可以是全连接网络,输入为100维的噪声,输出为8x8x3的图像

lass 

其中初始化参数z_dim表示噪声维度,out_width表示输出图像的长宽。

1.2 生成器G0、G1、G2

在LAPGAN论文的补充材料中提供的结构图如下:

从上图中左边可以看出生成器G的输入是4通道数据,由3个颜色通道(图像)和1个噪声通道组成。生成器G的输出为拉普拉斯金字塔中的一层,表示高分辨率图像和低分辨率图像之间的差异。

除了顶层生成器G3由于输入为噪声数据所以采用全连接以外,其余的生成器均为全卷积网络,采用卷积+激活的方式构建中间各层。激活函数选择ReLU,中间层的通道数为128。其中G2输出图像尺寸为16x16,G1输出图像尺寸为32x32,G3输出图像尺寸为64x64。它们结构相同,以G2为例代码如下:

class 

二、判别器实现

判别器D结构如下图所示:

从上图中可以看出判别器D的输入为拉普拉斯金字塔中的某层或者生成的差异图,与高斯金字塔某层的上采样图片进行拼接,D的输出为二分类输出。判别器的情况和生成器类似,这里仅以判别器D2为例。D2的输入是拉普拉斯金字塔存储的差异图和上采样图的和,即D2输入3个通道;D2的中间层通道数是128,中间各层的构建方式为Conv+ReLU,最后使用全连接层+sigmoid做分类。D2代码实现如下:

class 

上述代码中in_dim表示输入通道数,in_width表示输入图片的长和宽。

三、总结

LAPGAN作为早期的生成对抗网络模型,它的效果虽然没有今天各种GAN网络那么优秀,但是它的级联思想绝对是具有非常重要的意义的,后续会分析一些类似的级联网络或者是多阶段生成网络。

参考:

【1】Denton E L, Chintala S, Fergus R. Deep generative image models using a laplacian pyramid of adversarial networks[C]//Advances in neural information processing systems. 2015: 1486-1494.

【2】https://github.com/AaronYALai/Generative_Adversarial_Networks_PyTorch

pytorch 图像分割的交并比_级联多对抗的LAPGAN(二)pytorch实现相关推荐

  1. pytorch 图像分割的交并比_「通知」《深度学习之图像识别》再版工作启动,欢迎指导和提建议...

    不知不觉有三第一本书也上市超过1年半了,第一次写作略显稚嫩,许多细节处理不当,比如没有在印刷前核对公式,被删掉了参考文献影响读者阅读体验等.现在本书正式启动再版工作,注意不是重印,是再版.重印只是修正 ...

  2. pytorch 图像分割的交并比_小白通过kaggle学习few shot图像分类笔记--通过鱼尾对Humpback Whale分类...

    1.题目简介 这个题目是通过鲸鱼尾巴图像对座头鲸分类,比赛特点是多达5000多类,因此是是few-shot问题,和一般分类不一样.Humpback Whale Identification在kaggl ...

  3. pytorch 图像分割的交并比_PyTorch专栏(二十二): 深度卷积对抗生成网络

    作者 | News 编辑 | 奇予纪 出品 | 磐创AI团队出品 简介 本教程通过一个例子来对 DCGANs 进行介绍.我们将会训练一个生成对抗网络(GAN)用于在展示了许多真正的名人的图片后产生新的 ...

  4. pytorch 图像分割的交并比_Segmentation101系列-最简单的卷积网络语义分割(1)-PASCAL VOC图像分割...

    作者:陈洪瀚 /洪瀚笔记知乎专栏 摘要:介绍了使用PyTorch和torchvision加载训练好的全卷积网络FCN或DeepLab模型,并对PASCAL VOC图像进行分割并显示结果. 网址: gi ...

  5. pytorch 图像分割的交并比_PyTorch深度学习框架——初识

    PyTorch深度学习框架 简单介绍 PyTorch 是一个针对深度学习, 并且使用GPU 和CPU来优化的tensor library(张量库). 学过Tensorflow的人或许有话说,这些事情T ...

  6. PyTorch图像分割模型——segmentation_models_pytorch库的使用

    一.概要 segmentation_models_pytorch是一个基于PyTorch的图像分割神经网络 这个新集合由俄罗斯的程序员小哥Pavel Yakubovskiy一手打造,对于图像分割而言简 ...

  7. pytorch dataset读取数据流程_高效 PyTorch :如何消除训练瓶颈

    加入极市专业CV交流群,与 10000+来自港科大.北大.清华.中科院.CMU.腾讯.百度 等名校名企视觉开发者互动交流! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总,行业技术交流.关注 ...

  8. 深度学习二(Pytorch物体检测实战)

    深度学习二(Pytorch物体检测实战) 文章目录 深度学习二(Pytorch物体检测实战) 1.PyTorch基础 1.1.基本数据结构:Tensor 1.1.1.Tensor数据类型 1.1.2. ...

  9. PyTorch强化学习实战(1)——强化学习环境配置与PyTorch基础

    PyTorch强化学习实战(1)--强化学习环境配置与PyTorch基础 0. 前言 1. 搭建 PyTorch 环境 2. OpenAI Gym简介与安装 3. 模拟 Atari 环境 4. 模拟 ...

最新文章

  1. python绘制3维图-1、2、3维图见过,用Python画出来的六维图见过么?
  2. php SqlServer 中文汉字乱码
  3. Boost:字符串裁剪Trim的测试程序
  4. oracle强制切换redolog组
  5. 华为鸿蒙os生态,华为鸿蒙系统终于来了! 首款方舟编译器应用正式上架: 鸿蒙OS可用...
  6. hbase 的shell操作中相关属性说明
  7. 苹果6可以分屏吗_榨苹果汁可以加蜂蜜水吗?蜂蜜苹果汁的作用
  8. python 中调用shell命令
  9. 我们在电脑房里上计算机课英语怎么说,2017年英语六级作文及翻译:计算机和人...
  10. 27. Spring Boot 部署与服务配置
  11. java.io.NotSerializableException: org.apache.kafka.clients.consumer.ConsumerRecord
  12. html5系列:notification api升级——从webkitNotifications到Notification
  13. MacBook外接“键盘鼠标”设置经验
  14. 数独游戏思路html,全民数独游戏规则介绍 数独技巧及题目解答思路
  15. 骑行318、 2016.7.15
  16. HTML+CSS个人笔记
  17. Apache OpenNLP介绍(一)
  18. STC用PCA测量脉宽_超快激光脉冲测量和诊断使用自相关仪
  19. 写好代码的注意点(代码整洁之道学习笔记)
  20. 数据库连接异常: HikariPool-1 - Connection is not available, request timed out after 30000ms.

热门文章

  1. price initialization when clicking new button in WebUI
  2. SAP Fiori Launchpad里home按钮的实现原理分析
  3. Angular Component template函数执行上下文的对象
  4. INTEROP tile cache
  5. OAuth 2.0协议在SAP产品中的应用
  6. SAP Kyma组件一览
  7. C4C里产品主数据和销售组织数据维护的相互作用和相互影响
  8. java foreach order_Java Elements.forEach方法代码示例
  9. 一个大型虚拟项目包含位于不同地点的许多干系人_项目管理与人生
  10. @data注解的作用_Java中注解学习系列教程-2