DP-GAN损失

在前面我们看了生成器和判别器的组成。
生成器损失公式:
在这里插入图片描述
在这里插入图片描述
首先将fake image 和真实的 image输入到判别器中:
接着看第一个损失:参数分别为fake image经过判别器的输出mask,和真实的label进行损失计算。对应于:
在这里插入图片描述
其中loss对应于:

class losses_computer():def __init__(self, opt):self.opt = optif not opt.no_labelmix:self.labelmix_function = torch.nn.MSELoss()def loss(self, input, label, for_real):#true#--- balancing classes ---weight_map = get_class_balancing(self.opt, input, label)#--- n+1 loss ---target = get_n1_target(self.opt, input, label, for_real)loss = F.cross_entropy(input, target, reduction='none')if for_real:loss = torch.mean(loss * weight_map[:, 0, :, :])else:loss = torch.mean(loss)return loss

1:首先平衡类别,input大小为(1,36,256,512),label大小为(1,35,256,512).
在这里插入图片描述
首先将label每个通道所有的值相加,最后只剩下C个值。
在这里插入图片描述
接着将class_occurence第一个值替换为0(在标签中第一个值为空).然后将列表值和0进行比较,统计为True的个数,就是总的类别。
然后求总的类别权重,一张图有24个类别,总的标签图有35各类别,缺失的类别为inf。
在这里插入图片描述
根据argmax获得label的通道索引,输出通道为一的mask图。
在这里插入图片描述
根据类别找对应的权重值。
在这里插入图片描述
接着标签和label输入到:在这里插入图片描述
首先得到一个和input相同大小的全1矩阵。这个矩阵是放在cuda上,用1填充,不需要更新,和input相同维度。
在这里插入图片描述
接着取label的索引,将全1矩阵target压缩通道维度和numclass相乘,这样所有的值都是35,在和label的类别值相加。因为相加之后的值肯定大于35,即clamp将小于34的值替换为34.(感觉clamp并没有起作用),减去35加1,相当于将label类别值全部加1了。
最后将辨别器的decoder输出和真实的label进行交叉熵计算。
在这里插入图片描述
将loss和类别权重相乘,再求均值得到最终的损失。
在这里插入图片描述
接着是第二个损失:生成器希望生成的结果可以骗过判别器,fake产生的图片要尽可能的真实。
在这里插入图片描述
score是判别器encoder部分的两个输出。
在GANloss中:
在这里插入图片描述
在loss中:
在这里插入图片描述
生成器是不完全执行patch_loss,为了使损失更小,则-1+D(x)就要趋近于0,因为D最后是输出一个通道为1的值,即经过sigmoid每个像素输出值在[0,1]之内,为了使-1+D(x)最小,则输出就要尽可能为1,即输出要尽可能正确。
在这里插入图片描述
在这里插入图片描述
得到的两个GANloss相加求均值,再和之前的对抗损失相加。
第三个是特征匹配损失:输入是real image和fake image经过decoder的五个中间变量输出。
在这里插入图片描述
在这里插入图片描述
通过循环计算每一个输出对之间的MSE损失。在这里插入图片描述
将生成的结果和前面两种损失相加。
最后输出:总损失,[对抗损失,None]。
在这里插入图片描述
接着损失取均值,然后反向传播。
然后说判别器的损失:
按照公式:GAN loss需要计算fake image 和 real image产生的中间变量,然后相加。而生成器不用计算E(z,l)。
在这里插入图片描述
在代码中通过控制target的True和False来计算两个loss。
在这里插入图片描述
在这里插入图片描述
损失包含:
1:fake image经过判别器得到的mask和真实的label计算对抗损失。
2:real image经过判别器得到的mask和真实的label计算对抗损失。
3:两个GAN loss。
4:label mix
在这里插入图片描述
在这里插入图片描述
首先获得label上的类别值,然后遍历类别值,将mask中的类别随机替换为0或者1,然后和真实的image相乘,对target_map取反后和fake_image相乘最后相加。最终输出混合的image和新的target_map。
混合的image输入判别器中后计算labelmix损失:
四个参数:进过[0,1]替换后的mask,mix_image经过判别器的输出,fake_image经过判别器的输出和real_image经过判别器的输出。
在这里插入图片描述
在这里插入图片描述
生成的label_mix loss和原始的三个loss相加。
这样就计算完了辨别器损失。

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

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

相关文章

【2023】字节跳动 10 日心动计划——第六关

目录 1. 环形链表 II2. 有序数组中的单一元素 1. 环形链表 II &#x1f517; 原题链接&#xff1a;142. 环形链表 II 用哈希表判重即可。 class Solution { public:ListNode *detectCycle(ListNode *head) {unordered_set<ListNode*> st;while (head) {if (st.count(hea…

捕捉时刻:将PDF文件中的图像提取为个性化的瑰宝(从pdf提取图像)

应用场景&#xff1a; 该功能的用途是从PDF文件中提取图像。这在以下情况下可能会很有用&#xff1a; 图片提取和转换&#xff1a;可能需要将PDF文件中的图像提取出来&#xff0c;并保存为单独的图像文件&#xff0c;以便在其他应用程序中使用或进行进一步处理。例如&#xff…

恺英网络宣布:与华为鸿蒙系统展开合作,将开发多款手游

8月5日消息&#xff0c;恺英网络宣布旗下子公司盛和网络参加了华为开发者大会&#xff08;HDC.Together&#xff09;游戏服务论坛&#xff0c;并在华为鸿蒙生态游戏先锋合作启动仪式上进行了亮相。恺英网络表示&#xff0c;将逐步在HarmonyOS上开发多款游戏&#xff0c;利用Har…

JVM 调优

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ JVM调优是一项重要的任务&#xff0c;可以提高Java应用程序的性能和稳定性。掌握JVM调优需要深入了解JVM的工作原理、参数和配置选项&#xff0c;以及历史JVM参数的调整和优…

WMS仓库管理系统研发规划说明

01 产品背景 1.1 背景概述 aboss WMS东南亚仓库管理系统是一个基于BigSeller系统的使用基础上&#xff0c;加上多仓库的解决思路&#xff0c;解决入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能&#xff0c;对批次管理、物料对应、库存盘点、质检管理、虚仓管理和即…

QT 杂项笔记qobject_cast

1、使用qobject_cast进行安全类型转换 int main(int argc, char *argv[]) {QApplication a(argc, argv);QObject *btn new QPushButton;qDebug() << btn->metaObject()->className(); //查看类名//使用qobject进行安全类型转换&#xff0c;转换目标为QPushButton…

MYSQL进阶-事务的基础知识

1.什么是数据库事务&#xff1f; 就是把好几个sql语句打包成一个整体执行&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff01;&#xff01;&#xff01; 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执 行的结果必…

秋招算法备战第37天 | 738.单调递增的数字、968.监控二叉树、贪心算法总结

738. 单调递增的数字 - 力扣&#xff08;LeetCode&#xff09; 这个问题是关于找到一个小于或等于给定数字n的最大单调递增数字。 我们可以将数字n转换为字符数组&#xff0c;然后从左到右扫描&#xff0c;寻找第一个违反单调递增条件的位置。一旦找到这样的位置&#xff0c;…

23种设计模式汇总-ing

工厂模式&#xff08;不属于GOF23种设计模式&#xff09; https://blog.csdn.net/m0_63297646/article/details/131941353

clickhouse安装

clickhouse安装 在线安装和离线安装 一、环境准备: 1.检查系统是否支持clickhouse安装 (向量化支持) grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported.” 2.下载对应的clickhouse包 复制运行之后,就会将对应的包加入…

webSocket 协议是什么

webSocket 协议是什么&#xff0c;能简述一下吗&#xff1f; websocket 协议 HTML5 带来的新协议&#xff0c;相对于 http&#xff0c;它是一个持久连接的协议&#xff0c;它利用 http 协议完成握手&#xff0c;然后通过 TCP 连接通道发送消息&#xff0c;使用 websocket 协议可…

Android 实现MQTT客户端,用于门禁消息推送

添加MQTT依赖 implementation ‘org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.2’ implementation ‘org.eclipse.paho:org.eclipse.paho.android.service:1.1.1’ 在Manifest清单文件中添加服务 <service android:name"org.eclipse.paho.android.service.Mq…

C#之Winfrom自定义输入框对话框。

如果你需要一个带有输入框的对话框&#xff0c;并在输入完成后接收输入的值&#xff0c;你可以使用自定义窗体来实现。以下是一个示例代码&#xff1a;创建一个继承自 Form 的自定义窗体类&#xff0c;命名为 InputDialogForm&#xff0c;并将窗体上放置一个文本框&#xff08;…

《前端开发 实践之 构建工具的了解》

目录 构建工具的了解Vite 构建工具了解基本使用 构建工具的了解 前端构建工具之一&#xff1a;vite Vite 构建工具了解 vue官方&#xff1b;打包工具&#xff1b;vue 项目本地构建部署工具 类似的前端项目打包工具还有&#xff1a;webpack等等 与其他打包工具区别可能有这几个方…

@FeignClient指定多个url实现负载均衡

C知道回答的如下&#xff1a; 在使用 FeignClient 调用多个 URL 实现负载均衡时&#xff0c;可以使用 Spring Cloud Ribbon 提供的功能来实现。下面是一个示例代码&#xff1a; 首先&#xff0c;在Spring Boot主类上添加EnableFeignClients注解启用Feign Client功能。 Spring…

安捷伦Agilent37719A通讯分析仪

安捷伦Agilent37719A通讯分析仪(131----4587---6435&#xff09; ATM和POS测试能力达到2.5 Gb/s OC-48、OC-48c、OC-12、OC-12c、OC-3c、OC-3、OC-1、STS-3、STS-3c、STS-1测试 保护切换时间测量 所有同步速率高达2.5 Gb/s的串联有效负载 SONET环翻转的全面直通模式操作 全开销…

git代码版本管理

git 文章目录 git基本使用 基本使用 在一台新的电脑上使用git 你要下载安装git, 然后把git的安装路径配到系统环境变量里 然后把这台电脑的.ssh/ id_rsa.pub里的公钥整到github里 然后在github上新建仓库&#xff0c;它会生成一些指令引导上你传本地的代码 之后就可以在终…

Redis | 集群模式

Redis | 集群模式 随着互联网应用规模的不断扩大&#xff0c;单一节点的数据库性能已经无法满足大规模应用的需求。为了提高数据库的性能和可扩展性&#xff0c;分布式数据库成为了解决方案之一。Redis 作为一个高性能的内存数据库&#xff0c;自然也有了自己的分布式部署方式…

【笔记】第94期-冯永吉-《湖仓集一体关键技术解读》-大数据百家讲坛-厦大数据库实验室主办20221022

https://www.bilibili.com/video/BV1714y1j7AU/?spm_id_from333.337.search-card.all.click&vd_sourcefa36a95b3c3fa4f32dd400f8cabddeaf

【数理知识】协方差,随机变量的的协方差,随机变量分别是单个数字和向量时的协方差

序号内容1【数理知识】自由度 degree of freedom 及自由度的计算方法2【数理知识】刚体 rigid body 及刚体的运动3【数理知识】刚体基本运动&#xff0c;平动&#xff0c;转动4【数理知识】向量数乘&#xff0c;内积&#xff0c;外积&#xff0c;matlab代码实现5【数理知识】协…