cGANs with Projection Discriminator
基于映射鉴别器的CGAN
模型中,判别器(Discriminator)不是通过将条件信息简单地与特征向量拼接(concatenate)来使用条件信息,而是采用一种基于投影的方式,这种方式更加尊重条件信息在底层概率模型中的作用。
判别器的构建是受到概率模型假设的启发,其中条件变量 y 给定 x 的分布是离散的或单峰连续分布。这种模型假设在许多实际应用中很常见,包括类条件图像生成和超分辨率。通过这种假设,可以形成一个需要在嵌入的条件向量 y 和特征向量之间进行内积的判别器结构。

代码实现
class DiscriminatorPCGAN(nn.Module):def __init__(self, x_dim, c_dim, dim=96, norm='none', weight_norm='spectral_norm'):super(DiscriminatorPCGAN, self).__init__()norm_fn = _get_norm_fn_2d(norm)weight_norm_fn = _get_weight_norm_fn(weight_norm)def conv_norm_lrelu(in_dim, out_dim, kernel_size=3, stride=1, padding=1):return nn.Sequential(weight_norm_fn(nn.Conv2d(in_dim, out_dim, kernel_size, stride, padding)),norm_fn(out_dim),nn.LeakyReLU(0.2))self.ls = nn.Sequential( # (N, x_dim, 32, 32)conv_norm_lrelu(x_dim, dim),conv_norm_lrelu(dim, dim),conv_norm_lrelu(dim, dim, stride=2), # (N, dim , 16, 16)conv_norm_lrelu(dim, dim * 2),conv_norm_lrelu(dim * 2, dim * 2),conv_norm_lrelu(dim * 2, dim * 2, stride=2), # (N, dim*2, 8, 8)conv_norm_lrelu(dim * 2, dim * 2, kernel_size=3, stride=1, padding=0),conv_norm_lrelu(dim * 2, dim * 2, kernel_size=1, stride=1, padding=0),conv_norm_lrelu(dim * 2, dim * 2, kernel_size=1, stride=1, padding=0), # (N, dim*2, 6, 6)nn.AvgPool2d(kernel_size=6), # (N, dim*2, 1, 1)torchlib.Reshape(-1, dim * 2), # (N, dim*2))self.l_logit = weight_norm_fn(nn.Linear(dim * 2, 1)) # (N, 1)self.l_projection = weight_norm_fn(nn.Linear(dim * 2, c_dim)) # (N, c_dim)def forward(self, x, c):# x: (N, x_dim, 32, 32), c: (N, c_dim)feat = self.ls(x)logit = self.l_logit(feat)# 做一个线性编码embed = (self.l_projection(feat) * c).mean(1, keepdim=True)logit += embedreturn logit
CGAN参考文章
相关文章:
cGANs with Projection Discriminator
基于映射鉴别器的CGAN 模型中,判别器(Discriminator)不是通过将条件信息简单地与特征向量拼接(concatenate)来使用条件信息,而是采用一种基于投影的方式,这种方式更加尊重条件信息在底层概率模…...
mysql学习教程,从入门到精通,SQL HAVING 子句(32)
1、SQL HAVING 子句 当然!HAVING 子句在 SQL 中用于对分组后的结果进行过滤。它通常与 GROUP BY 子句一起使用,以便对聚合函数(如 SUM(), COUNT(), AVG(), MAX(), MIN() 等)的结果进行条件筛选。 以下是一个示例,假设…...
JavaScript while循环语句
While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。 while(条件){语句;} var i0;while(i<100){console.log(i);i1;} 注意:所有的for循环都可以改写为while循环...
49天精通Java(Day 2):Java的基本语法
上期内容回顾 在上一期的内容中,我们介绍了Java的基本概念、历史背景,并完成了JDK 1.8的安装与环境配置。你还编写并运行了第一个简单的Java程序“Hello, World!”。今天,我们将深入探讨Java的基本语法,包括变量、数据类型、运算…...
uni-app之旅-day01-home页
首页 3.0 创建 home 分支 🍕🍕🍕运行如下的命令,基于 master 分支在本地创建 home 子分支,用来开发和 home 首页相关的功能git branch(查看分支)git checkout -b home(创建home分支) 3.1 配置网络请求 ἲ…...
Vue3轻松实现导出Excel文件功能
文章目录 1.前言2.安装插件3.案例3.1 定义表格数据,设置 id 选择器3.2 据所选 dom 对象生成 sheetbook3.3 写入文件3.4 生成 xlsx文件4.完整代码1.前言 前端常用的导出 Excel的 js 库是 xlsx,但是 xlsx不能设置样式。要想设置样式,必要要结合 xlsx-style 插件一起使用,但是…...
在Kali Linux中使用VNC和iptables配置xrdp以实现远程连接
在Kali Linux中,使用VNC和iptables配置xrdp以实现远程连接涉及几个步骤。不过,值得注意的是,VNC和xrdp是两种不同的远程桌面协议,它们通常不会在同一配置中同时使用(除非有特殊的网络架构需求)。然而&#…...
小徐影院:Spring Boot技术下的影院革新
第四章 系统设计 4.1 系统的功能结构图 通过系统需求分析,本小徐影城管理系统的功能结构设计如图4-1所示: 图4-1 系统功能图 4.2 系统数据库设计 4.2.1 数据库E-R图 在该系统的信息中,由于数据库的支持,我们可以对数据库进行收集…...
命名空间
在 C 中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace 关键字的…...
使用 Elastic 将 AI 摘要添加到你的网站
作者:来自 Elastic Gustavo Llermaly 我们目前所知道的搜索(搜索栏、结果、过滤器、页面等)已经取得了长足的进步,并实现了多种不同的功能。当我们知道找到所需内容所需的关键字或知道哪些文档包含我们想要的信息时,尤…...
dOOv:Java 数据验证与映射库(简化业务逻辑)
dOOv 是一个为 Java 开发人员设计的轻量化库,专注于数据验证和对象间的映射。与传统的验证框架不同,dOOv 通过提供简洁、声明式的 API,使得开发者可以轻松地编写、扩展和维护验证和映射规则。其设计灵感源自领域驱动设计(DDD&…...
Arthas sc(查看JVM已加载的类信息 )
文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc(查看JVM已加载的类信息 )举例1:模糊搜索,xx包下所有的类举例2:打印类的详细信息举例3:打印出类的Field信息 本人其他相关文章链接 二、命令列…...
OCR 行驶证识别 离线识别
目录 正页识别 副页识别 全部识别 OCR 行驶证识别 离线识别 正页识别 副页识别 全部识别...
PHP泛目录生成源码,可生成长尾关键词页面,带使用方法视频教程
介绍: 真正的好东西,搞网站优化seo从业必备。可以快速提升网站权重,带来的流量哗哗的 PHP泛目录生成源码 可生成新闻页面和关键词页面 带使用方法视频教程 泛目录可以用来提升网站收录和排名 合理运用目录可以达到快速出词和出权重的效果…...
LeetCode题练习与总结:丑数--263
一、题目描述 丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:n 6 输出:true 解释࿱…...
初识C语言(五)
前言 本文章就代表C语言介绍以及了解正式完成,后续进行具体分析和详细解析学习。知识根深蒂固才可以应付后来的学习,地基要打好,后续才会轻松。 十四、结构体 结构体是C语言中最最重要的知识点,使得C语言有能力描述复杂的类型。 …...
Linux:深入理解冯诺依曼结构与操作系统
目录 1. 冯诺依曼体系结构 1.1 结构分析 1.2 存储结构分布图 2. 操作系统 2.1 概念 2.2 如何管理 2.3 什么是系统调用和库函数 1. 冯诺依曼体系结构 1.1 结构分析 不管是何种计算机,如个人笔记本电脑,服务器,都是遵循冯诺依曼结构。…...
面试中顺序表常考的十大题目解析
在数据结构与算法的面试中,顺序表是一个常见的考点。它作为一种基础的数据结构,涵盖了多种操作和概念,以下将详细介绍面试中关于顺序表常考的十大题目。 💝💝💝如果你对顺序表的概念与理解还存在疑惑&#…...
测试管理新增视图与高级搜索功能,测试计划支持一键生成缺陷详情,MeterSphere开源持续测试工具v3.3版本发布
2024年9月29日,MeterSphere开源持续测试工具正式发布v3.3版本。 在这一版本中,接口测试方面,接口导入功能支持导入Postman、JMX、HAR和MeterSphere格式的文件,接口场景的自定义请求步骤支持cURL快捷导入;测试管理方面…...
TypeScript 算法手册 【归并排序】
文章目录 1. 归并排序简介1.1 归并排序定义1.2 归并排序特点 2. 归并排序步骤过程拆解2.1 分割数组2.2 递归排序2.3 合并有序数组 3. 归并排序的优化3.1 原地归并排序3.2 混合插入排序案例代码和动态图 4. 归并排序的优点5. 归并排序的缺点总结 【 已更新完 TypeScript 设计模式…...
Czkawka:用Rust构建的开源存储清理工具全解析
Czkawka:用Rust构建的开源存储清理工具全解析 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 一、场景痛点:当代存储管理的…...
RAG系统的‘记忆’安全吗?从AgentPoison看知识库污染攻击的隐蔽性与危害
RAG系统安全防线:如何抵御知识库污染攻击的隐蔽威胁 当企业将RAG系统部署在客户服务、医疗诊断或金融分析等关键场景时,很少有人意识到——知识库里那些看似权威的文档,可能正潜伏着精心设计的逻辑陷阱。去年某自动驾驶公司的紧急制动系统突然…...
DanKoe 视频笔记:人生经验课:给18岁自己的信
在本节课中,我们将学习一位28岁人士回顾过去,总结出的核心人生经验。这些经验旨在帮助年轻人,特别是那些感到迷茫、渴望超越平凡生活的人,建立自主性、明确目标并采取有效行动。我们将把这些经验整理成一套清晰的教程,…...
OpCore-Simplify:三步解决黑苹果配置难题的零代码自动化工具
OpCore-Simplify:三步解决黑苹果配置难题的零代码自动化工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题诊断:黑苹果配…...
5分钟掌握:billd-desk跨平台远程控制高效解决方案
5分钟掌握:billd-desk跨平台远程控制高效解决方案 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk 还在为远程办公的卡顿和限制而烦恼吗?当你急需远程…...
AI辅助开发:模仿PS创意效果,用快马生成智能艺术风格迁移应用代码
最近在做一个艺术风格迁移的小项目,正好用到了InsCode(快马)平台的AI辅助开发功能,整个过程特别顺畅。这个项目的灵感来源于PS的创意效果,但想用更智能的方式来实现类似功能。下面分享一下我的实现思路和经验。 项目构思 最初是想做一个能让普…...
DeepSeek-R1-Distill-Qwen-7B优化升级:提升推理速度的技巧
DeepSeek-R1-Distill-Qwen-7B优化升级:提升推理速度的技巧 1. 模型概述 DeepSeek-R1-Distill-Qwen-7B是基于Qwen架构的7B参数蒸馏模型,由DeepSeek团队开发。该模型通过知识蒸馏技术从更大的DeepSeek-R1模型中提取关键知识,在保持较高推理能…...
HUNYUAN-MT 7B翻译终端Typora Markdown写作增强:实时双语文档创作
HUNYUAN-MT 7B翻译终端Typora Markdown写作增强:实时双语文档创作 1. 引言 如果你经常用Typora写技术博客或者项目文档,可能遇到过这样的场景:好不容易写完一篇内容详实的文章,想要分享给国际社区,却卡在了翻译上。手…...
【ArkTS】基础语法
一、ArkTS 语言简介 ArkTS 是一种设计用于构建高性能应用的编程语言。它在继承 TypeScript 语法的基础上进行了优化,以提供更高的性能和开发效率。 许多编程语言在设计之初未考虑移动设备,导致应用运行缓慢、低效且功耗大。随着移动设备在日常生活中越来越普遍,针对移动环境…...
别再让Jetson NX的CPU跑视频了!手把手教你用FFmpeg+NVENC实现硬件编解码(附4.2版本完整编译流程)
Jetson NX视频处理性能优化实战:FFmpegNVENC硬件加速全解析 如果你正在使用Jetson Xavier NX开发视频处理应用,却苦于CPU软编解码的低效表现,这篇文章将为你揭示如何彻底释放这块嵌入式AI计算板的硬件潜能。我们将从性能瓶颈分析开始…...
