当前位置: 首页 > news >正文

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计算:比较麻烦,到时候重新开一章。

相关文章:

DP-GAN剩余代码

在前面计算完损失后,该进行更新: 1:netEMA是模型的生成器: 遍历生成器的state_dict,将每一个键对应的值乘以EMA_decay。 接着根据当前迭代步数计算num_upd,每1000,2500,10000代倍数就执行一次。 当num…...

在word的文本框内使用Endnote引用文献,如何保证引文编号按照上下文排序

问题 如下图所示,我在word中插入了一个文本框(为了插图),然后文本框内有引用,结果endnote自动将文本框内的引用优先排序,变成文献[1]了,而事实上应该是[31]。请问如何能让文本框内的排序也自动…...

SpringBoot项目上传至服务器

1.服务器安装JDK1.8 通过包管理器安装 2.服务器安装数据库 参考链接: CentOS 7 通过 yum 安装 MariaDB - 知乎 1. 安装之后没有密码,所以需要设置密码,使用下面的语句 set password for rootlocalhost password(111111); 2.在数据库中建…...

C++中实现多线程的三种方式

目录 1 背景2 方法 1 背景 力扣1116题 打印零和奇偶数。 2 方法 方法1&#xff1a;原子操作 class ZeroEvenOdd { private:int n;atomic<int> flag 0; public:ZeroEvenOdd(int n) {this->n n;}// printNumber(x) outputs "x", where x is an integer.…...

程序员副业指南:怎样实现年入10w+的目标?

大家好&#xff0c;这里是程序员晚枫&#xff0c;全网同名。 今天给大家分享一个大家都感兴趣的话题&#xff1a;程序员可以做什么副业&#xff0c;年入十万&#xff1f; 01 推荐 程序员可以从事以下副业&#xff0c;以获得一年收入10w&#xff1a; 兼职编程&#xff1a;可…...

excel 计算 分位值

_XLFN.QUARTILE.EXC(Result 1!G:G,2) 和 PERCENTILE 都可以用来计算一组数据的分位数&#xff0c;但是它们的计算方式略有不同。 _XLFN.QUARTILE.EXC(Result 1!G:G,2) 是 Excel 中的一个函数&#xff0c;在计算一个数据集的四分位数时使用。其中&#xff0c;第一个参数 Result…...

mongodb-windows-x86_64-4.4.23-signed.msi

...

一个SpringBoot 项目能处理多少请求?

这篇文章带大家盘一个读者遇到的面试题哈。 根据读者转述&#xff0c;面试官的原问题就是&#xff1a;一个 SpringBoot 项目能同时处理多少请求&#xff1f; 不知道你听到这个问题之后的第一反应是什么。 我大概知道他要问的是哪个方向&#xff0c;但是对于这种只有一句话的…...

Shell编程基础(十)读取多行文本到数组 写入多行文本到文件

读取多行文本到数组 & 写入多行文本到文件 读取多行文本到数组写入多行文本到文件 读取多行文本到数组 创建一个文本文件&#xff0c;内容如下 1 zhangsan 男 10 2 liis 女 12 3 wangwu 男 17读取这个文件中所有人的信息 #!/bin/bash while read u do echo $u done <…...

MyBatis学习笔记2

CRUD 1.namespace namespace中的包名要和mapper接口的包名一致&#xff01; 2.select 选择查询语句 id&#xff1a;就是对应的namespace中的方法名&#xff1b; resultType:Sql语句执行的返回值&#xff01; parameterType&#xff1a;参数类型 增删改必须提交事务&…...

spring总结

目录 什么是Spring? Spring的优缺点&#xff1f; 优点&#xff1a; 缺点&#xff1a; Spring IOC的理解 Spring AOP的理解 事务的边界为什么放在service层&#xff1f; Spring Bean的生命周期 什么是单例池&#xff1f;作用是什么&#xff1f; 单例Bean的优势 Bean…...

记录--说一说css的font-size: 0

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 平常我们说的font-size&#xff1a;0&#xff1b;就是设置字体大小为0对吧&#xff0c;但是它的用处不仅仅如此哦&#xff0c;它还可以消除子行内元素间额外多余的空白&#xff01; 问题描述&#xff…...

Matlab实现支持向量机算法(附上多个完整仿真源码)

支持向量机是一种常见的机器学习算法&#xff0c;它可以用于分类和回归问题。在Matlab中使用支持向量机&#xff0c;可以方便地构建和训练模型&#xff0c;并进行预测和评估。本文将介绍Matlab支持向量机的基本原理以及一个简单的分类案例。 文章目录 1. 支持向量机的基本原理2…...

AIGC大模型ChatGLM2-6B:国产版chatgpt本地部署及体验

1 ChatGLM2-6B介绍 ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练&#xff0c;它具备多领域知识、代码能力、常识推理及运用能力&#xff1b;支持与用户通过自然语言对话进行交互&#xff0c;处理多种自然语言任务…...

[国产MCU]-BL602开发实例-开发环境搭建

开发环境搭建 文章目录 开发环境搭建1、BL602介绍2、软件准备3、源码编译3.1 编译内置工程3.2 自定义工程、自定义组件添加与编译4、固件下载BL602 是一款Wi-Fi + BLE组合的芯片组,用于低功耗和高性能应用开发。无线子系统包含2.4G无线电,Wi-Fi 802.11b/g/n和BLE 5.0 基带/MA…...

春秋云镜 CVE-2020-26048

春秋云镜 CVE-2020-26048 CuppaCMS 任意文件上传 靶标介绍 CuppaCMS是一套内容管理系统&#xff08;CMS&#xff09;。 CuppaCMS 2019-11-12之前版本存在安全漏洞&#xff0c;攻击者可利用该漏洞在图像扩展内上传恶意文件&#xff0c;通过使用文件管理器提供的重命名函数的自…...

使用Golang实现一套流程可配置,适用于广告、推荐系统的业务性框架——简单应用

在诸如广告、推荐等系统中&#xff0c;我们往往会涉及过滤、召回和排序等过程。随着系统业务变得复杂&#xff0c;代码的耦合和交错会让项目跌入难以维护的深渊。于是模块化设计是复杂系统的必备基础。这篇文章介绍的业务框架脱胎于线上多人协作开发、高并发的竞价广告系统&…...

一个.NET开发的Web版Redis管理工具

今天给大家推荐一款web 版的Redis可视化工具WebRedisManager&#xff0c;即可以作为单机的web 版的Redis可视化工具来使用&#xff0c;也可以挂在服务器上多人管理使用的web 版的Redis可视化工具。 WebRedisManager基于SAEA.Socket通信框架中的SAEA.RedisSocket、SAEA.WebApi两…...

javaAPI(四):jdk8中的日期时间API

新日期时间API出现的背景 jdk8之前时间日期API 如果我们可以跟别人说&#xff1a;“我们在1502653933071见面&#xff0c;别晚了&#xff01;”那么就再简单不过了。但是我们希望时间与昼夜和四季有关&#xff0c;于是事情就变复杂了。jdk 1.0中包含了一个java.util.Date类&am…...

解决在mybatis中出现的org.apache.ibatis.exceptions.PersistenceException~

我在使用mybatis中的注解对数据库中的信息进行操作时&#xff0c;出现了下述错误 我在mapper接口中定义了该方法&#xff0c;并且使用注解绑定了对应的SQL语句 //增加用户信息 Insert("insert into user values(#{id},#{name},#{password})") int addUser(user user…...

【亲测免费】 使用S-Function函数实现离散PID控制器

使用S-Function函数实现离散PID控制器 【下载地址】使用S-Function函数实现离散PID控制器 本资源文件提供了使用S-Function函数实现离散PID控制器&#xff0c;并建立Simulink仿真模型的详细教程和代码。通过本资源&#xff0c;您将学习如何在Simulink中使用S-Function模块来实现…...

5步实用指南:永久解锁Cursor Pro高级功能的完整解决方案

5步实用指南&#xff1a;永久解锁Cursor Pro高级功能的完整解决方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

Midscene.js:3大技术突破解决跨平台UI自动化的核心痛点

Midscene.js&#xff1a;3大技术突破解决跨平台UI自动化的核心痛点 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在当今多平台应用爆发的时代&#xff0c;你是…...

别再瞎算了!用Excel 5分钟搞定18650锂电池续航与充电时间(附免费模板)

别再瞎算了&#xff01;用Excel 5分钟搞定18650锂电池续航与充电时间&#xff08;附免费模板&#xff09; 每次DIY项目做到最后阶段&#xff0c;总会遇到那个灵魂拷问&#xff1a;"这电池到底能用多久&#xff1f;"上周我的智能花盆项目就差点翻车——按照理论值计算…...

Flowable 6.7.2 适配达梦数据库踩坑实录:从驱动到Liquibase源码修改全攻略

Flowable 6.7.2 深度适配达梦数据库实战指南&#xff1a;从驱动配置到源码级改造 在国产化替代浪潮中&#xff0c;数据库迁移往往是技术团队面临的首要挑战。当工作流引擎Flowable遇上国产数据库达梦(DM)&#xff0c;两者的"语言不通"会导致一系列兼容性问题。本文将…...

IO杂记I

IO 杂记 一、Selector 与 select() selector.select() 不会创建新线程&#xff0c;而是让当前线程阻塞等待&#xff0c;直到有 I/O 事件就绪。 比喻&#xff1a;一个人站在门口&#xff0c;不来客人就不动。selector.selectNow() 是非阻塞版本&#xff1a;瞥一眼门口&#xff0…...

Windows电脑直接运行安卓应用:APK安装器完全指南

Windows电脑直接运行安卓应用&#xff1a;APK安装器完全指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾幻想过在Windows电脑上流畅运行安卓应用&#xff…...

新手入门指南使用 Python 快速调用 TaoToken 多模型服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 新手入门指南&#xff1a;使用 Python 快速调用 TaoToken 多模型服务 对于刚接触大模型 API 的开发者而言&#xff0c;面对众多模型…...

draw.io桌面版终极指南:免费跨平台绘图神器完整教程

draw.io桌面版终极指南&#xff1a;免费跨平台绘图神器完整教程 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 还在为团队协作中绘图工具不统一而烦恼吗&#xff1f;Windows用…...

【免费下载】 摩擦磨损仿真Archard模型 - FORTRAN子程序中文注释版:加速您的科研与工程项目

摩擦磨损仿真Archard模型 - FORTRAN子程序中文注释版&#xff1a;加速您的科研与工程项目 【下载地址】摩擦磨损仿真archard模型-FORTRAN子程序中文注释版 本仓库提供了一款专为摩擦磨损分析设计的Umeshmotion子程序模型&#xff0c;采用经典的Archard模型实现。此资源针对工程…...