SEAN代码(2)

news2024/12/27 1:14:02

输入image,label分别经过生成器和判别器。
在这里插入图片描述
经过生成器计算的是损失和产生的图片。并且在内部损失进行反向传播,优化器进行更新。
在这里插入图片描述
在pix2pix_model内部:首先对输入数据进行预处理。
在这里插入图片描述

    def preprocess_input(self, data):
        # move to GPU and change data types
        data['label'] = data['label'].long()
        if self.use_gpu():
            data['label'] = data['label'].cuda(non_blocking=True)
            data['instance'] = data['instance'].cuda(non_blocking=True)
            data['image'] = data['image'].cuda(non_blocking=True)

        # create one-hot label map
        label_map = data['label']
        bs, _, h, w = label_map.size()
        nc = self.opt.label_nc + 1 if self.opt.contain_dontcare_label \
            else self.opt.label_nc
        input_label = self.FloatTensor(bs, nc, h, w).zero_()
        input_semantics = input_label.scatter_(1, label_map, 1.0)

        # concatenate instance map if it exists
        if not self.opt.no_instance:
            inst_map = data['instance']
            instance_edge_map = self.get_edges(inst_map)
            input_semantics = torch.cat((input_semantics, instance_edge_map), dim=1)

        return input_semantics, data['image']

在预处理代码中首先将image,label传到cuda上,接着将label转换为one-hot编码。原本的(4,1,256,256)转变成了(4,19,256,256)。最后输出编码后的label和原始的RGB。
接着计算生成器损失:
在这里插入图片描述
在函数内部,将RGB和编码后label输入到生成器中,产生fake image。
在这里插入图片描述
在SPADEGenerator函数中,首先将标签图下采样到(1,19,8,8),然后经过一个卷积输出为(1,1024,8,8)。
接着将输入的RGB和编码后标签输入到Zencoder产生ST。
在这里插入图片描述
RGB经过model,在代码(1)中讲述了Zencoder的组成,最终输出大小为(1,512,128,128)。将语义图也下采样到(1,19,128,128)。
在这里插入图片描述
首先生成一个大小为(4,19,512)向量,4是batchsize。
在这里插入图片描述
向code_vector里面添值。
在这里插入图片描述
首先b_size为4,s_size为19。
下面计算分割图中不为0的像素总数。
接着使用segmap的掩膜选取RGB经过模型的输出,再求均值,填入到code_vector直至遍历结束。
具体来说:
1:i=0,表示第一个batch,j=0表示第一个通道。segmap.bool()表示对segmap所有值进行布尔操作。
在这里插入图片描述
2:segmap.bool()[0,0],表示取第一个batch的第一个通道值。然后将所有为Ture的像素个数汇总,长宽为128的图片,为true的共有4387个像素。
在这里插入图片描述
3:code[i]等于选择code第几个batch的特征。
在这里插入图片描述
4:假设选择第一个batch的特征,将segmap.bool()[i, j]即segmap第一个batch的第一个通道值作为mask放在code[i]上。输出全为true的值。
在这里插入图片描述
5:将为true的值reshape为(512,xxxx)。在沿着行维度求均值。最终大小就是512.
6:将512个值填入codes_vector中。
在这里插入图片描述
6:首先内层遍历19次将第一个通道填满,外层再遍历4次,将4个通道填满。得到Zencoder最终输出style_codes。
接着输入到SPADEResnetBlock中:
在这里插入图片描述
在这里插入图片描述
在ACE中首先添加噪声:
噪声大小为(4,8,8,1),热后和噪声的方差(1024)相乘,将1024广播到1024x1024,(4,8,8,1)广播到(4,8,8,1024),相乘后为(4,8,8,1024)经过转换为(4,1024,8,8)。在这里插入图片描述
将segmap下采样。
在这里插入图片描述
生成一个全零矩阵。
在这里插入图片描述
这一部分的for循环和前面的一样,首先遍历batch,再遍历通道。
在这里插入图片描述
1:首先获得segmap中不等于0的像素总数。
2:self.getattr(‘fc_mu’ + str(j))是实例的fc_mu0属性,对应于:
在这里插入图片描述
3:这里是求的style_codes[i][j],即列对应的值。
4:将512rshape为(512,1)。在扩充到(self.style_length, component_mask_area),这里的component_mask_area是下采样后的segmap。
5:将segmap对应false的值即0用来替换掉component_mu的值。
在这里插入图片描述
就这样执行19次,再执行外部的batch循环。
最后的SEAN可以表示为:
在这里插入图片描述
用公式表示为:
在这里插入图片描述
将输出的结果经过leakrelu和卷积并再执行一次。
最后执行一个跳连接操作。对应于文中:
在这里插入图片描述
head0执行完毕。将输出结果上采样并在执行一次SAPDERES。
在这里插入图片描述
最后输出一个大小为(4,3,256,256)大小的RGB图。
这就是生成器的全部代码。

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

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

相关文章

【C++进阶(四)】STL大法--list深度剖析list迭代器问题探讨

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 链表list 1. 前言2. list的使用2.1 list的构造函…

小企业数字化经营模式是什么?

小型企业的数字化经营模式是指这些企业如何利用数字技术和互联网来创造、交付和获取价值。数字化极大地影响了小型企业的运营方式、与客户的互动以及开展业务的方式。以下是小型企业数字化经营模式的一些关键组成部分: 1.在线形象和品牌:通过网站、社交…

【机器视觉】喇叭的外圆以及金属内圆的同心度视觉检测--康耐德智能

客户的需求 检测内容 喇叭的外圆以及金属内圆的同心度测量 检测要求 精度0.02mm,速度没要求,抽检产品。 评估 视觉可行性分析 对贵司的样品进行了光学实验,并进行图像处理,原则上可以使用机器视觉进行测试测量。 结果 对所有样…

【TI毫米波雷达笔记】SOC外设中断监听功能(Listen)初始化配置及驱动(以IWR6843AOP为例)

【TI毫米波雷达笔记】SOC外设中断监听功能&#xff08;Listen&#xff09;初始化配置及驱动&#xff08;以IWR6843AOP为例&#xff09; #include <ti/drivers/soc/soc.h>SOC初始化以后 可以配置监听以配置中断回调来查看当前运行情况&#xff1a; 采用函数SOC_register…

书单怎么制作?有哪些技巧和注意事项?

书单是指将自己喜欢的书籍、影视作品等进行整理和推荐&#xff0c;供他人参考的清单。它可以是一个人的私人书单&#xff0c;也可以是一个团队或者社群共享的书单&#xff0c;我们在一些短视频媒体上应该都有看到过一些制作的书单视频分享&#xff0c;那么如果我们也想上传书单…

7 个适合初学者的项目,可帮助您开始使用 ChatGPT

推荐&#xff1a;使用 NSDT场景编辑器快速搭建3D应用场景 从自动化日常任务到预测复杂模式&#xff0c;人工智能正在重塑行业并重新定义可能性。 当我们站在这场人工智能革命中时&#xff0c;我们必须了解它的潜力并将其整合到我们的日常工作流程中。 然而。。。我知道开始使…

【真题解析】系统集成项目管理工程师 2023 年上半年真题卷(案例分析)

本文为系统集成项目管理工程师考试(软考) 2023 年上半年真题(全国卷),包含答案与详细解析。考试共分为两科,成绩均 ≥45 即可通过考试: 综合知识(选择题 75 道,75分)案例分析(问答题 4 道,75分)案例分析(问答题*4)试题一试题二试题三试题四案例分析(问答题*4) …

SwiftUI实现iPad多任务分屏

1. 概述 iPadOS引入了多任务分屏功能&#xff0c;使用户能够同时在一个屏幕上使用多个应用程序。这为用户提供了更高效的工作环境&#xff0c;可以在同一时间处理多个任务。 iPad多任务分屏有两种常见的模式&#xff1a;1/2分屏和Slide Over&#xff08;滑动覆盖&#xff09;…

sentinel blockHandler不生效

sentinel blockHandler不生效: package org.bc.sentinel.controller;import com.alibaba.csp.sentinel.annotation.SentinelResource; import com.alibaba.csp.sentinel.slots.block.BlockException; import org.apache.commons.lang3.RandomUtils; import org.springfram…

blender 场景灯光基础设置

在 blender 中&#xff0c;打光分为两个部分&#xff0c;一个是世界光&#xff0c;一个是场景光&#xff1b; 世界光&#xff1a; 世界光&#xff1a;在 Blender 中&#xff0c;世界光指的是用于设置场景整体照明的环境光。它可以通过调整颜色、强度、阴影等参数来影响场景的…

JAVA:错误: 找不到或无法加载主类 xx.xx.xx类

报错图片&#xff1a; 报错原因&#xff1a; 加载是没有定义项目的根目录或主要代码的位置。这个根目录是整个项目的起点&#xff0c;包含了所有的源代码文件和其他必要的资源文件 解决方法&#xff1a;定义根目录

449. 序列化和反序列化二叉搜索树

诸神缄默不语-个人CSDN博文目录 力扣刷题笔记 Python3版代码提示&#xff1a; # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val x # self.left None # self.right None# Your Codec object will…

Promise 解决 Vue 中父子组件的加载问题!

前言 关于Promie我这里就不多解释了&#xff0c;不懂得可以看看官方文档。下面文章重点介绍项目中遇到的问题解决方法。 需求 组件b初始化某个用到的库&#xff0c;只有在初始化完成后才能调用其API&#xff0c;不然会报错。a页面负责调用。 // a.vue <template><d…

微服务架构基础--第4章Spring Boot核心功能2

第4章Spring Boot核心功能2 一.预习笔记 1.静态资源访问 1-1&#xff1a;resource下的static文件夹会被视为默认的根目录&#xff08;默认静态资源文件夹&#xff09; 1-2&#xff1a;index.html是SpringBoot的默认首页(默认配置了的) 1-3&#xff1a;修改网页logo&#xf…

文件上传漏洞全面渗透姿势

0x00 文件上传场景 (本文档只做技术交流) 文件上传的场景真的随处可见&#xff0c;不加防范小心&#xff0c;容易造成漏洞&#xff0c;造成信息泄露&#xff0c;甚至更为严重的灾难。 比如某博客网站评论编辑模块&#xff0c;右上角就有支持上传图片的功能&#xff0c;提交带…

飞行动力学 - 第17节-part2-机翼对航向静稳定性的影响 之 基础点摘要

飞行动力学 - 第17节-part2-机翼对航向静稳定性的影响 之 基础点摘要 1. 上反角贡献2. 后掠角贡献3. 机身贡献4. 参考资料 1. 上反角贡献 总体来说&#xff0c;略微降低稳定性。 2. 后掠角贡献 总体来说&#xff0c;略微增加稳定性。 3. 机身贡献 机身也是降低航向静稳定性&…

潜艇来袭(Qt官方案例-2维动画游戏)

一、游戏介绍 1 开始界面 启动程序&#xff0c;进入开始界面。 2 开始新游戏 点击菜单&#xff1a;File》New Game &#xff08;或者CtrlN&#xff09;进入新游戏。 开始新游戏之后&#xff0c;会有一个海底的潜艇&#xff0c;和水面舰艇对战。 计算机&#xff1a;自动控制…

尖端AR技术如何在美国革新外科手术实践?

AR智能眼镜已成为一种革新性的工具&#xff0c;在外科领域具有无穷的优势和无限的机遇。Vuzix与众多医疗创新企业建立了长期合作关系&#xff0c;如Pixee Medical、Medacta、Ohana One、Rods & Cones、Proximie等。这些公司一致认为Vuzix智能眼镜可有效提升手术实践&#x…

java+ssm+mysql水费管理系统

项目介绍&#xff1a; 使用javassmmysql开发的用户水费管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理、用户管理、用水管理&#xff08;用水记录、缴费提醒&#xff09;、水费…

通讯编程006——NodeJS OPC UA Client开发简单教程

本文介绍如何在NodeJS环境下开发OPC UA Client&#xff0c;通过本文可以对OPC UA的基本概念有所了解&#xff0c;掌握OPC UA的本质。相关软件请登录网信智汇(wangxinzhihui.com)。 开发步骤如下&#xff1a; 1&#xff09;首先需要安装nodejs&#xff0c;要求版本至少是12。 …