DP-GAN剩余代码

在前面计算完损失后,该进行更新:
在这里插入图片描述
1:netEMA是模型的生成器:
在这里插入图片描述
遍历生成器的state_dict,将每一个键对应的值乘以EMA_decay。
在这里插入图片描述
接着根据当前迭代步数计算num_upd,每1000,2500,10000代倍数就执行一次。
在这里插入图片描述
在这里插入图片描述
当num_upd大于50就跳出更新EMA。
在这里插入图片描述
接着对图片进行上色:

    def visualize_batch(self, model, image, label, cur_iter):self.save_images(label, "label", cur_iter, is_label=True)self.save_images(image, "real", cur_iter)with torch.no_grad():model.eval()fake = model.netG(label)self.save_images(fake, "fake", cur_iter)model.train()if not self.opt.no_EMA:model.eval()fake = model.netEMA(label)self.save_images(fake, "fake_ema", cur_iter)model.train()

首先对标签进行上色:
label即batch是经过one-hot编码后的标签大小为(5,35,256,512)。
在这里插入图片描述
接着len(batch)=5,取第一个batch对应的tensor。
在这里插入图片描述
进行上色:
在这里插入图片描述
首先获得camp:
在这里插入图片描述
生成的colormap包含空像素和噪声,一共有36个类别,所以执行else语句。
在这里插入图片描述
首先生成一个全为0的列表,大小为(36,3)—>接着遍历每个类别,初始化r=g=b=0—>id = 1—>接着遍历7次,首先将id转换为二进制类型。

def uint82bin(n, count=8):"""returns the binary of integer n, count refers to amount of bits"""return ''.join([str((n >> y) & 1) for y in range(count - 1, -1, -1)])
#y = 7,6,5,4,3,2,1,0

y分别取值为7,6,5,4,3,2,1,0。
将n右移位7位,n为1,则移位后为0,分别移位,只有当y等于0时,不移位,n才为1.最后返回一个字符串’00000001’.
移位操作
分别取str_id的倒数1,2,3位。然后将1,0,0分别左移七位,1左移后变为二进制为1000 0000即128.0左移后还是0,所以r=128,g=b=0.
最后id=1右移3位,变为0.
在这里插入图片描述
在j循环里执行8次,则下一次id=0.在uint82bin函数中,0不管位移多少次都为0,且0&1=0,所以最后输出’00000000’.
则r = 128^(0)=128.
因为128=(10000000),0=(00000000),(1异或0=1),(0异或0=0),所以128^(0)=128。这样执行7次后,将r填充为第一行第一列,g填充为第一行第二列,b填充为第一行第三列。这样执行for循环36次,则camp就会被重新填充一遍。
在这里插入图片描述
将camp转换为tensor。生成一个由0填充的(3,256,512)大小的size。同时对label的其中一个batch数据求类别。
tens大小由(35,256,512)变为(1,256,512)。
在这里插入图片描述
len(camp)=36,开始label=0时,tens[0]=(256,512),label==tens[0]会得到一个mask,其中tens中等于0的类别为True,不等于0的为false。
在这里插入图片描述
color_image[0]取得color_image第一层R通道,cmap[label][0]为第一行第一列即128,将mask对应的值全部替换为128.同理G和B通道也是这样处理。这样循环36次,将每一个类别都上色。最后输出经过填充的彩色图。
在这里插入图片描述
最后将label进行转置,方便cv2保存。
最后将batch剩余的四个图片也进行处理。将五张图放在一个图片上保存到指定位置。
在这里插入图片描述
下一步对image处理:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将tens小于0的设置为0,大于1的设置为1.再转置为(h,w,c)格式。
在这里插入图片描述
在eval时候,将label输入到生成器中,生成fake image,大小为(5,3,256,512)。将生成的fake image保存起来。
在这里插入图片描述
netEMA是对生成器的深拷贝。
在这里插入图片描述
下一步计算训练一个batch所需要的时间:
在这里插入图片描述
将epoch,总epoch,当前迭代,所花费的时间写到progress.txt文件中,并打印出来。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下一步:
在这里插入图片描述
通过控制latest,best来保存权重。
在这里插入图片描述
在这里插入图片描述
最重要看一下FID计算:比较麻烦,到时候重新开一章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件

❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件 cmd或者终端用nvm 安装提示: npm不是内部或外部命令,也不是可运行的程序或批处理文件 原因(一) 提示这个问题,有可能是Node没有安装,也有可能是没有配置…

ardupilot 中坐标变换矩阵和坐标系变换矩阵区别

目录 文章目录 目录摘要1.坐标变换矩阵与坐标系变换矩阵摘要 本节主要记录ardupilot 中坐标变换矩阵和坐标系变换矩阵的区别,这里非常重要,特别是进行姿态误差计算时,如果理解错误,很难搞明白后面算法。 1.坐标变换矩阵与坐标系变换矩阵 坐标变换矩阵的本质含义:是可以把…

【elementui】解决el-select组件失去焦点blur事件每次获取的是上一次选中值的问题

目录 【问题描述】 【问题摘要】 【分析问题】 【完整Test代码】 【封装自定义指令】 ↑↑↑↑↑↑↑↑↑↑↑↑ 不想看解决问题过程的可点击上方【封装自定义指令】目录直接跳转获取结果即可~~~ 【问题描述】 一位朋友遇到这么一个开发场景:在表格里面嵌入el-…

js-4:BOM是什么?

1、Bom是什么? BOM(Browser Object Model),浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象,其作用是跟浏览器做一些交互效果,例如如何进行页面的后退,前进,…

NetSuite 2023.2 Cash 360 功能更新

大约一年前,Cash 360功能推出。我们写了篇介绍: NetSuite Cash 360_netsuite oneworld数据可以迁移到sap上吗_NetSuite知识会的博客-CSDN博客Cash 360是在SuiteWorld 2021做的预告,本来是要跟着22.1发布出来,但是各种原因导致跳票…

【Kubernetes】当K8s出现问题时,从哪些方面可以排查

前言 kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kub…

【CSS3】CSS3 2D 转换 - scale 缩放 ② ( 使用 scale 设置缩放代码示例 - 图片缩放示例 )

文章目录 一、需求分析二、代码分析三、代码示例四、执行结果 一、需求分析 默认状态下 , 界面中显示一张图片 : 当鼠标移动到 图片上时 , 显示如下效果 , 其中图片是逐渐放大的 , 有一个过渡 : 二、代码分析 上述盒子模型布局结构如下 , div 是外层父容器 , a 标签用于设置链接…

手撕最常见的算法岗面试题(25道)

手撕代码环节常常是面试官给出题目的口头或文字描述,要求在纸上手写或在txt文档中打字,面试以简单数据结构与算法题为主,考察基本代码功底。 考察频次:链表 > 字符串/哈希 > 二叉树与图 > 栈/队列 > 查找/排序/搜索 …

spring security + oauth2 使用RedisTokenStore 以json格式存储

1.项目架构 2.自己对 TokenStore 的 redis实现 package com.enterprise.auth.config;import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis…

深度学习入门必读 | 深度学习算法技术原理和发展

前言:Hello大家好,我是小哥谈。随着人工智能技术的发展,深度学习已经成为了一个热门话题。为了让大家能够更清晰直观的了解深度学习,今天这篇文章就重点给大家介绍一下深度学习算法的技术原理和发展!🌈 目录…

Python中的PDF文本提取:使用fitz和wxPython库(带进度条)

引言: 处理大量PDF文档的文本提取任务可能是一项繁琐的工作。本文将介绍一个使用Python编写的工具,可通过简单的操作一键提取大量PDF文档中的文本内容,极大地提高工作效率。 import wx import pathlib import fitzclass PDFExtractor(wx.Fr…

自动化测试po模式是什么

一、什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage:封装一些最基…

LVS负载均衡(DR)

文章目录 LVS-DR模式配置原理注DR配置添加VIP下载ipvsadm在DR上管理LVS Real-Server RS配置绑定VIP到环回网卡添加访问VIP的路由配置ARP抑制测试: LVS-DR模式配置 原理 当客户端发起请求后由DR处理,通过算法将流量转发至Real-Server中的某一个处理。然后…

HDFS介绍

目录 ​编辑 一、HDFS基础 1.1 概述 1.2 HDFS的设计目标 1.2.1 硬件故障 1.2.2 流式数据访问 1.2.3 超大数据集 1.2.4 简单的一致性模型 1.2.5 移动计算而不是移动数据 1.2.6 跨异构硬件和软件平台的可移植性 1.3 基础概念 1.3.1 块(Block) 1.3.2 复制…

【MySQL】检索数据使用数据处理函数

函数 与其他大多数计算机语言一样,SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。 函数没有SQL的可移植性强:能运行在多个系统上的代码称为可移植的。多数SQL语句是可移植的,而函数的可…

虹科案例 | PLC如何应用于建筑的3D打印?

客户:Rebuild 合作伙伴:ASTOR 应用:用于建筑的大尺寸3D打印 应用产品:3D混凝土打印机 (一)应用背景 自从20世纪80年代以来,增材制造技术(即3D打印)不断发展。大部分3D打印…

ArduPilot开源代码之Companion Computers简单分析

ArduPilot开源代码之Companion Computers简单分析 1. 源由2. 伴机系统2.1 APSync2.2 DroneKit2.3 FlytOS2.4 Maverick2.5 ROS2.6 Rpanion-server 3. 总结4. 参考资料 1. 源由 从稳定性,社区群体,以及开源方式的角度看,Ardupilot是不错的选择…

HttpRunner自动化测试工具之录制工具使用--使用抓包工具通过命令转成yml文件

录制工具使用: 为了简化测试用例的编写工作,HttpRunner实现了测试用例生成的功能,对应的转换工具为一个独立的项目:har2case 使用操作步骤: 1、通过抓包工具获取HAR格式的数据包 2、通过命令har2case har的数据包路径…

40.利用欧拉法求解微分方程组(matlab程序)

1.简述 求解微分方程的时候,如果不能将求出结果的表达式,则可以对利用数值积分对微分方程求解,获取数值解。欧拉方法是最简单的一种数值解法。前面介绍过MATLAB实例讲解欧拉法求解微分方程,今天实例讲解欧拉法求解一阶微分方程组。…

车载软件架构 —— 闲聊几句AUTOSAR OS(十一)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…