real_img = next(loader)
        real_img = real_img.to(device)

#生成器设置为False,判别器设置为True
        requires_grad(generator, False)
        requires_grad(discriminator, True)

#生成噪声
        noise = mixing_noise(args.batch, args.latent, args.mixing, device)
        
        #得到输出fake_img
        fake_img, _ = generator(noise)

#如果使用数据增强:对原始数据和fake 数据都进行增强
        if args.augment:
            real_img_aug, _ = augment(real_img, ada_aug_p)
            fake_img, _ = augment(fake_img, ada_aug_p)

else:
            real_img_aug = real_img

# 对假图像和真图像进行判别器
        fake_pred = discriminator(fake_img)
        real_pred = discriminator(real_img_aug)
        d_loss = d_logistic_loss(real_pred, fake_pred)

loss_dict["d"] = d_loss
        loss_dict["real_score"] = real_pred.mean()
        loss_dict["fake_score"] = fake_pred.mean()

discriminator.zero_grad()
        d_loss.backward()
        d_optim.step()

if args.augment and args.augment_p == 0:
            ada_aug_p = ada_augment.tune(real_pred)
            r_t_stat = ada_augment.r_t_stat

d_regularize = i % args.d_reg_every == 0

if d_regularize:
            real_img.requires_grad = True

if args.augment:
                real_img_aug, _ = augment(real_img, ada_aug_p)

else:
                real_img_aug = real_img

real_pred = discriminator(real_img_aug)
            r1_loss = d_r1_loss(real_pred, real_img)

discriminator.zero_grad()
            (args.r1 / 2 * r1_loss * args.d_reg_every + 0 * real_pred[0]).backward()

d_optim.step()

loss_dict["r1"] = r1_loss

#生成器设置为True,判别器设置为False
        requires_grad(generator, True)
        requires_grad(discriminator, False)

noise = mixing_noise(args.batch, args.latent, args.mixing, device)
        fake_img, _ = generator(noise)

if args.augment:
            fake_img, _ = augment(fake_img, ada_aug_p)

fake_pred = discriminator(fake_img)
        #对结果计算非饱和损失函数计算
        g_loss = g_nonsaturating_loss(fake_pred)

loss_dict["g"] = g_loss

generator.zero_grad()
        g_loss.backward()
        g_optim.step()

g_regularize = i % args.g_reg_every == 0

sytlengan2 代码解析相关推荐

  1. matrix_multiply代码解析

    matrix_multiply代码解析 关于matrix_multiply 程序执行代码里两个矩阵的乘法,并将相乘结果打印在屏幕上. 示例的主要目的是展现怎么实现一个自定义CPU计算任务. 参考:ht ...

  2. CornerNet代码解析——损失函数

    CornerNet代码解析--损失函数 文章目录 CornerNet代码解析--损失函数 前言 总体损失 1.Heatmap的损失 2.Embedding的损失 3.Offset的损失 前言 今天要解 ...

  3. 视觉SLAM开源算法ORB-SLAM3 原理与代码解析

    来源:深蓝学院,文稿整理者:何常鑫,审核&修改:刘国庆 本文总结于上交感知与导航研究所科研助理--刘国庆关于[视觉SLAM开源算法ORB-SLAM3 原理与代码解析]的公开课. ORB-SLA ...

  4. java获取object属性值_java反射获取一个object属性值代码解析

    有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...

  5. python中的doc_基于Python获取docx/doc文件内容代码解析

    这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 整体思路: 下载文件并修改后缀 ...

  6. mongoose框架示例代码解析(一)

    mongoose框架示例代码解析(一) 参考: Mongoose Networking Library Documentation(Server) Mongoose Networking Librar ...

  7. ViBe算法原理和代码解析

    ViBe - a powerful technique for background detection and subtraction in video sequences 算法官网:http:// ...

  8. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

    文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...

  9. 密码算法中iv值是什么_?标检测中的?极?值抑制算法(nms):python代码解析

    ⾮极⼤值抑制(Non-Maximum Suppression)原理 ⾮极⼤值抑制,顾名思义,找出极⼤值,抑制⾮极⼤值.这种思路和算法在各个领域中应⽤⼴泛,⽐如边缘检测算法canny算⼦中就使⽤了该⽅法 ...

最新文章

  1. docker学习实践之路[第五站]mysql镜像应用
  2. Linux 常用命令笔记
  3. 存储过程同函数的区别
  4. [C++11]常量表达式函数
  5. 网关 Spring Cloud Gateway
  6. java里面的pai_Java - ZhangPai - 博客园
  7. 阴历阳历相互转换c代码
  8. 镜头超声波马达的工作原理
  9. html微信分享没有图片不显示,微信分享网页链接缩略图不显示解决方法
  10. STP的作用防止二层交换网络瘫痪
  11. 【Qt】警告Missing reference in range-for with non trivial type
  12. android sdk tools是什么意思,android sdk tools有什么用
  13. 你是外包,麻烦不要偷吃零食。。注意素质!
  14. PHP+MySQL实现留言板功能(二)
  15. UNITY小白3D坦克大战制作学习笔记1
  16. 因缺思厅的程序员故事
  17. Spring是什么?干什么的?怎么用?
  18. lottie.js动画插件自定义机器人行走
  19. python实现xmind转excel_用 python 实现 xmind 和 mindjet 格式互转
  20. 中级会计师考试计算机怎样操作,全国中级会计师无纸化考试,机考系统操作技巧...

热门文章

  1. 查看特定进程杀死进程方法
  2. 一个奇怪的问题:tomcat 栈溢出 StackOverflowError错误
  3. 第一章 为什么我们对机器学习感兴趣?(六)
  4. python3入门与实践
  5. 课程 2B: 制作一款交互性应用
  6. 日本新研究:将光伏组件高温高湿试验速度提高70倍
  7. Java简单方法批量修改Windows文件夹下的文件名(简单IO使用)
  8. 实践 HTML5 的 CSS3 Media Queries
  9. 带宽和下载速率的关系
  10. 关于TP中的M()方法与D()方法