文章目录

  • retain和detach
    • 先更新D,再更新G,这个也是GAN论文的实现方式
    • 先更新G,再更新D,实际上他两谁先谁后都一样,都是相互对抗:
    • 第三种是第一种的改进, 先更新D,再更新G,计算最少,还没见到别人实现,估计知名框架这么实现,每具体检查过:

retain和detach

pytorch有两个功能:retain和detach:
retain:意思是保持原来graph,可以还在原图上进行forward pass,下次计算backward还是在原图上计算;
detach:阻断,意思是backward pass到这儿就停止了

这两个东西可以用于实现fixedGtrainD,fixedDtrainG。

先更新D,再更新G,这个也是GAN论文的实现方式

先forward整个网络;
再backward整个网络的梯度但是只更新D的参数(相当于G的部分的梯度白算了),这时还需要retain graph一下;
用fake data forward一下D,再backward整个网络的梯度但是只更新G的参数;
至此完成了一轮G和D的对抗。

先更新G,再更新D,实际上他两谁先谁后都一样,都是相互对抗:

先forward整个网络;
再backward整个网络的梯度但是只更新G的参数(相当于D的部分的梯度只是用来传递G的梯度);
先forward整个网络,这时还需要detach一下G;
再backward到G就停止了,更新D的参数;
至此完成了一轮G和D的对抗。

第三种是第一种的改进, 先更新D,再更新G,计算最少,还没见到别人实现,估计知名框架这么实现,每具体检查过:

先forward整个网络,同时detach一下G,retain一下graph;
再backward到G停止了,但是只更新D的参数,同时undetach一下G,retain一下graph;用fake data forward一下D;
再backward整个网络,更新G的参数(相当于D的部分的梯度只是用来传递G的梯度);
至此完成了一轮G和D的对抗。

深度学习总结:GAN,3种方式实现fixedGtrainD,fixedDtrainG, retain, detach相关推荐

  1. 深度学习未来的三种方式

    来源:海豚数据科学实验室 深度学习的未来在于这三种学习模式,而且它们彼此之间密切相关: 混合学习--现代深度学习方法如何跨越监督学习和非监督学习之间的边界,以适应大量未使用的无标签数据? 复合学习-- ...

  2. 预测:深度学习未来的6种可能

    文章讲的是预测:深度学习未来的6种可能,即使你是掌握了人工智能和神经网络基础知识的数据科学家,你可能还需要更多的时间来了解卷积,了解通过组合低层特征形成更加抽象的高层表示属性类别或特征的深度学习算法的 ...

  3. 深度学习中的两种不确定性:偶然不确定性和认知不确定性(Aleatoric Uncertainty Epistemic Uncertainty)

    转载:https://zhuanlan.zhihu.com/p/56986840 注: 本文中,概念.公式与实验均基于 Alex Kendall & Yarin Gal的论文:https:// ...

  4. 附pdf下载 | 入门深度学习和GAN的几本书

    今天分享几本深度学习.GAN等好的电子书资源!收藏! 如今,GAN技术已经延伸至AI各个方向之中,例如图像处理.自然语言处理和语音等. 深度学习三巨头之一的 Yann LeCun 对 2014 年的生 ...

  5. 最新版动手学习深度学习和GAN电子书免费下载!

    今天给大家推荐一个GAN方面的优质公众号---机器学习与生成对抗网络.该公众号里分享了几本深度学习.GAN等好的电子书资源! 强烈推荐李沐等人的<动手学习深度学习>最新版!完整中文版 PD ...

  6. 干货 | 台大“一天搞懂深度学习”课程PPT(下载方式见文末!!)

    微信公众号 关键字全网搜索最新排名 [机器学习算法]:排名第一 [机器学习]:排名第一 [Python]:排名第三 [算法]:排名第四 Deep Learing Tutorial 本篇文章我们给出了一 ...

  7. 附pdf下载 | 动手学习深度学习和GAN电子书

    今天分享几本深度学习.GAN等好的电子书资源!推荐收藏! 如今,生成对抗网络GAN技术已经延伸至AI各个方向之中,例如图像处理.自然语言处理和语音等. 深度学习三巨头之一的 Yann LeCun 对 ...

  8. 总结 62 种在深度学习中的数据增强方式

    数据增强 数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程 这包括对数据进行不同方向的扰动处理 或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而 ...

  9. [深度学习-原理]GAN(生成对抗网络)的简单介绍

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之DCGAN基于CIFAR10数据集的例子 深度学习GAN(三)之DCGAN基于手写体Mnist数据集的例子 深度学习GAN(四)之c ...

  10. 一文看尽深度学习中的15种损失函数

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 作者丨CVHub 来源丨CVHub 编辑丨极市平台 导读 本文详细介绍了深度学习中的各种损失函数的优 ...

最新文章

  1. git没有changId解决方法
  2. 2021未来科学大奖揭晓:SARS病原发现者、上海交大张杰教授等4人获得百万奖金...
  3. SQL查询 的一些原则
  4. 【PHP】网络相关封装的函数
  5. FreeModbus输入寄存器
  6. C++的hashmap和Java的hashmap
  7. ListView练习_购物商城
  8. 获取当前程序的相当路径
  9. AEF横空出世——查询语法详解
  10. mysql sql security_MySQL笔记-definer与SQL SECURITY
  11. Spring缓存切面源码解析
  12. Python 字典与集合
  13. PHP调用shell命令
  14. 伺服驱动器cn1引脚定义_关于三菱驱动器CN1端口的接线-专业自动化论坛-中国工控网论坛...
  15. VS2013 打包步骤
  16. 网页媒体播放利器 - JW Player使用心得
  17. element 表格 序号依次递增
  18. 【安全】如何关闭Windows系统的137, 139, 445端口?
  19. 模拟蒙蒂霍而悖论游戏——三门游戏python
  20. 什么是股票交易api接口?

热门文章

  1. android运动轨迹怎么画,Android 利用三阶贝塞尔曲线绘制运动轨迹的示例
  2. php7 setcookie无效_PHP setcookie() 函数 | 菜鸟教程
  3. CentOS 7 解决丢失 nginx.pid 1
  4. iphone备忘录突然没了_iphone备忘录突然没了?丢失的备忘录内容怎么找回?
  5. mysql 加号的作用_MySQL学习笔记(一)
  6. java批量删除接口怎么定义_教你在Java接口中定义方法
  7. java中所有的类都继承于_Java中所有的类都是通过直接或间接地继承( )类得到的...
  8. 报文解析_104规约报文结构解析
  9. Java volatile关键字原理解剖
  10. php 将一个字符串转换成数组,PHP将一个字符串转换成数组