【人工智能笔记】第三十三节:TF2实现VITGAN对抗生成网络,Mapping NetWork 实现

图文详解:stylegan1 与stylegan2 每次上采样接Style Block。输入常量512 x 4 x 4。输入:512维的随机向量z。 阅读详情

网络结构图
该章节介绍VITGAN对抗生成网络中,Mapping NetWork 部分的代码实现。

目录(文章发布后会补上链接):

  1. 网络结构简介
  2. Mapping NetWork 实现
  3. PositionalEmbedding 实现
  4. MLP 实现
  5. MSA多头注意力 实现
  6. SLN自调制 实现
  7. CoordinatesPositionalEmbedding 实现
  8. ModulatedLinear 实现
  9. Siren 实现
  10. Generator生成器 实现
  11. PatchEmbedding 实现
  12. ISN 实现
  13. Discriminator鉴别器 实现
  14. VITGAN 实现

Mapping NetWork 简介

Generator生成器
设计基于 ViT 架构的生成器是一项不平凡的任务。一个挑战是将 ViT 从预测一组类标签转换为在空间区域上生成像素。在介绍我们的模型之前,我们讨论了两个似是而非的基线模型。两种模型交换 ViT 的输入和输出以从嵌入生成像素,特别是从 MLP 的高斯噪声向量 z 派生的潜在向量 w,即 w = MLP(z)(在图 2 中称为映射网络 [26])。两个基线生成器的输入序列不同。该设计的灵感来自于反转 ViT,其中 w 用于替换公式 4 中的分类嵌入 h0L。
该网络部分属于Generator生成器的开始部分,输入的Latent z实际上是噪声。这部分用于将噪声转换成w,实际上可以看作是可学习的一个多维图片输入特征。

代码实现

模型是由8层全连接+LeakyReLU组成,该结构出自论文:
Tero Karras, Samuli Laine, and Timo Aila. A style-based generator architecture for generative adversarial networks. In CVPR, 2019.

import numpy as np
import tensorflow as tf


class MappingNetwork(tf.keras.layers.Layer):
    def __init__(self, d_model, num_layers, lrmul=0.01):
        super().__init__()
        self.d_model = d_model
        self.num_layers = num_layers
        self.lrmul = lrmul
        self.ln = tf.keras.layers.LayerNormalization(
            axis=-1,
            epsilon=1e-6,
            center=False,
            scale=False,
        )
        self.dn_layers = []
        for _ in range(num_layers):
            self.dn_layers.append(tf.keras.layers.Dense(d_model, use_bias=True, kernel_initializer='he_uniform', kernel_regularizer='l2'))
            self.dn_layers.append(tf.keras.layers.LeakyReLU(lrmul))
        self.net = tf.keras.Sequential(self.dn_layers)

    def call(self, x, training):
        x = self.ln(x, training=training)
        x = self.net(x)
        return x

    def get_config(self):
        config = super(MappingNetwork, self).get_config()
        config.update({
            'd_model': self.d_model,
            'num_layers': self.num_layers,
            'lrmul': self.lrmul,
        })
        return config

if __name__ == "__main__":
    layer = MappingNetwork(256, 8)
    x = tf.random.uniform([2,1,256], dtype=tf.float32)
    o1 = layer(x)
    tf.print('o1:', tf.shape(o1))

参考资料:

从‘网红脸’到‘可控捏脸’:用StyleGAN2/3的Mapping Network和Truncation Trick玩转人脸编辑 本文深入探讨了如何利用StyleGAN2/3的Mapping Network和Truncation Trick实现精细的人脸编辑,从网红脸到可控捏脸。通过解析双网络架构和分层控制机制,展示了如何构建交互式人脸编辑平台,并对比了StyleGAN3在纹理一致性等方面的改进。 阅读详情

相关推荐

LDO稳定性分析

根据补偿方式和拓扑结构的不同,三个极点之间的相互位置有可能发生变化,但 是 LDO 通常采用较大的输出电容 Cout,以及较大的调整管也会导致较大的 Cpar, 所以 p1、p2 通常位于较低的频率处,而 p3 和 z1 则由于 Resr较小会位于较高的频 率处。不过幸运的是,对于较大的 Cout来说,只要选择合适的 Resr,就可以将左半平面零点 Z1 的频率降低,甚至使 Z1 进入单位增益带宽内,左半平面零点的进入将对相位有所改善,这不仅可以消除振荡的风险,还可以在单位增益频率处得到较好的相位裕度。

模拟芯片设计 1593

【读点论文】ViTGAN: Training GANs with Vision Transformers 将视觉transformer和gan结合起来

ViTGAN: Training GANs with Vision Transformers Abstract 最近,Vision Transformers(vits)在图像识别方面表现出了具有竞争力的性能,需要较少的视觉特定的归纳偏差。 在本文中,研究这种观察是否可以扩展到图像生成。将ViT整合到生成式对抗网络(GANs)中。本文观察到,现有的GANs正则化方法与自注意力的交互作用很差,导致训练过程中严重的不稳定性。 为了解决这个问题,引入了新的正则化技术来训练具有vit的gan。根据经验,

白水空空 8667

RFSoC应用XCZU47DR八发八收FPGA设计方案

本文介绍了基于Xilinx XCZU47DR RFSoC芯片的八发八收FPGA设计方案。该方案采用集成射频数据转换器的SoC架构,支持8路14bit ADC(5GSPS)和8路14bit DAC(9.85GSPS),可直接处理5GHz以下射频信号。硬件设计包含高性能输入缓冲器、QMC校正和复杂混频器,适用于5G/6G通信、雷达、卫星通信等领域。文章详细阐述了ADC/DAC子系统参数,包括通道配置、采样率、带宽等特性,并提供了FPGA顶层模块的硬件接口设计,展示了多通道数据收发处理能力。该方案无需外置混频器,

toonyhe的博客 1788

论文笔记:ViTGAN: Training GANs with Vision Transformers

ViT+GAN

qq_40206371的博客 1173

WPS JS宏实战:批量调整200个Word表格格式的避坑指南(附完整代码)

本文提供了一份详尽的WPS JS宏实战指南,针对批量调整大量Word表格格式的需求。文章深入解析了如何利用JS宏自动化设置字体、行距和边框,并重点解决了常见的“首行访问报错”等核心难题,附有可直接使用的完整代码,帮助用户显著提升文档处理效率。

weixin_29280219的博客 430

京东技术产品经理面试全记录:从简历投递到一面45分钟实战复盘

本文深度复盘京东技术产品经理面试全流程,从策略准备、思维题拆解、项目阐述到反问谈判,提供了一套可演练的求职策略体系。文章强调该岗位需具备横跨技术与商业的枢纽能力,并通过“QQ分组vs微信标签”等案例,剖析了产品思维与结构化表达在面试中的关键作用,助力候选人将紧张转化为掌控感。

weixin_29275257的博客 630

ViTGAN:用视觉Transformer训练生成性对抗网络 Training GANs with Vision Transformers

不使用卷积或池化,能否使用视觉 Transformer 来完成图像生成任务?更具体而言:能否使用 ViT 来训练生成对抗网络(GAN)并使之达到与已被广泛研究过的基于 CNN 的 GAN 相媲美的质量?

白洞,白色的明天在等着我们 4781

挣脱枷锁:网页禁止复制/F12失效/右键失灵时的破局之道

大家在网上冲浪的否遇到过这种情况?急需网页上的一段关键信息、一段优美的文字、一个重要的代码片段,或者只是想收藏某篇文章,却发现:文本选择被阻止,右键菜单被禁用,开发者工具(F12)被屏蔽,查看源代码(Ctrl+U)失效?本文会有力解决这些封锁。

安德洛夫 2112

ViTGAN: Training GANs with Vision Transformers阅读笔记

Task 图像的生成 Key idea 利用transformer作为基本的计算单元,替代传统的CNN,同时基于GAN的基础架构,去完成图像的生成任务。 面对的问题: (1) GAN的正则化方法与注意力机制的交互很差,导致训练中稳定性不足 (2)在鉴别器训练的后期,对抗训练经常受到高方差梯度(或尖峰梯度)的阻碍。高方差梯度会在训练的时候导致震荡,非常影响训练的效果。 解决的方法: (1) 在判别器中,研究者重新审视了自注意力的 Lipschitz 性质,在此基础上他们设计了一种加强了..

baidu_40582876的博客 1516

在 SAP 里,想让“同一笔业务”在多个账套(平行分类账)中生成不同编号的会计凭证,标准做法就是

摘要:SAP系统中实现同一业务在不同分类账生成独立凭证号的方法是为每个分类账配置独立的凭证类型-编号范围映射。通过FBN1/OBA7等事务码为各分类账分配专属编号段,系统过账时会按分类账自动取号,确保凭证号互不冲突。该方案适用于S/4HANA和ECC系统,支持标准过账(F-02)或分类账专属过账(FB01L)两种模式,最终实现"一业务多账套,各自独立编号"的目标。

金牌架构师 550

Vue 前端导出页面A4大小pdf,Vue前端导出pdf自动切割换页不切割内容 Vue导出页面pdf自动分页和添加页码 导出的pdf提高清晰度

【代码】Vue 前端导出页面A4大小pdf,Vue前端导出pdf自动切割换页不切割内容 Vue导出页面pdf自动分页和添加页码 导出的pdf提高清晰度。

weixin_41346436的博客 1799

探索未来图像生成的边界:ViTGAN全面解析与推荐

探索未来图像生成的边界:ViTGAN全面解析与推荐 去发现同类优质开源项目:https://gitcode.com/ 在人工智能领域,尤其是深度学习的浪潮下,生成对抗网络(GANs)以其惊人的创造力成为图像合成的明星技术。今天,我们将深入探索一个结合了最新视觉前沿的创新项目——ViTGAN,这是基于PyTorch实现的一项突破性工作,它巧妙地将视觉Transformer的力量引入到GAN的训练中,...

gitblog_00043的博客 1032

从零实现深度学习框架【实现自己的PyTorch(已完结)】

本着“凡我不能创造的,我就不能理解”的思想,此系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。

日积月累,天道酬勤 6862

StyleGAN系列学习笔记

StyleGAN系列学习笔记(参考多方素材)

weixin_41876808的博客 1778

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

StyleGAN

stylegan解释,自用

weixin_48341022的博客 1708

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【人工智能笔记】第四十二节:TF2实现VITGAN对抗生成网络,PatchEmbedding 实现

【人工智能笔记】第四十二节:TF2实现VITGAN对抗生成网络,PatchEmbedding 实现

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 708

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ViTGAN:训练GANs的新视角

ViTGAN:训练GANs的新视角 项目介绍 ViTGAN是一个基于PyTorch的开源项目,旨在利用视觉变换器(Vision Transformers,简称ViT)来训练生成对抗网络(GANs)。ViTGAN的实现基于一篇同名的学术论文,该论文由Kwonjoon Lee、Huiwen Chang、Lu Jiang等学者撰写,并在2021年的arXiv上发布。本项目通过引入视觉变换器的强大能力,为...

gitblog_00498的博客 895

StyleGAN生成模型

Stylegan的一个非常实用的人脸生成模型,它可以通过控制参数来控制人脸生成的样式,包括五官、发型乃至人种肤色。 这篇文章大致总结一下Stylegan的一些原理和要点。 下图(右边)是stylegan生成器的模型结构: 映射网络Mapping Network 从上图可以看到,传统的生成器的输入就是直接用高斯分布下512维的随机向量。而Stylegan中使用了8层全连接网络Mapping network来进一步处理输入,将它映射到另一个512维,并未改变其维度。此外,...

TranSad的博客 2922

第二十八周周报

第二十八周周报

童一的博客 388

【人工智能笔记】第三十二节:TF2实现VITGAN对抗生成网络,网络结构简介

该系列一共分成N篇文章,对照论文实现每个细节,并附上源码,该系列完成最后会附上github地址。

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 762

【人工智能笔记】第三十四节:TF2实现VITGAN对抗生成网络,PositionalEmbedding 实现

【人工智能笔记】第三十四节:TF2实现VITGAN对抗生成网络,PositionalEmbedding 实现

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 504

参数压缩 500 倍还能涨点?Mapping Networks 让我重新思考“训练“的定义

不是所有参数都值得你去练。你想,一个网络几十万个参数,真的每个数字都有用吗?Mapping Networks 的实验告诉我——可能真正起决定作用的,只是其中很少很少的一部分以前的做法是把所有参数摊开,一个一个调;但它的思路是:先找到那"一小撮"真正管用的参数,只练它们,剩下的让规则自动生成不是练得越多越好,而是练得越对越好找到真正有用的那一小部分,直接优化它们,剩下的交给生成规则——这可能才是更正确的方向虽然复现得不算完美,和论文还有接近 2% 的差距,但只用 1% 的参数就能干到 97% 的准确率。

ShanYue_j_j的博客 1564

Mapping Networks——映射网络 (Mapping Networks)

Mapping Networks——映射网络 (Mapping Networks)

Together_CZ的博客 503

【人工智能笔记】第四十五节:TF2实现VITGAN对抗生成网络,VITGAN主体 实现

【人工智能笔记】第四十五节:TF2实现VITGAN对抗生成网络,VITGAN主体 实现

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 701

Meta 王炸论文 SAM 为什么它改变了图像分割?

这两年图像算法领域变化很快,目标检测、图像生成、多模态几乎都在持续迭代,但如果说哪篇论文真正把“图像分割”这个方向重新推上了一个新台阶,Segment Anything 一定绕不过去。它厉害的地方不只是效果强,也不只是模型大,而是它换了一种思路来看待分割问题:以前我们做分割,通常是为某个具体任务单独训练模型;而 SAM 想做的是一个可以通过提示完成分割的通用基础模型。今天这篇文章,我就从问题背景、核心思想、模型结构、实验效果、工程价值和代码复现几个方面,带你系统看懂这篇顶级图像算法论文到底强在哪里。

zhongxiaershi的博客 565

【人工智能笔记】第三十九节:TF2实现VITGAN对抗生成网络,ModulatedLinear调制模块 实现

【人工智能笔记】第三十九节:TF2实现VITGAN对抗生成网络,ModulatedLinear调制模块 实现

不定时更新AI技术tensorflow实现方式,欢迎关注,有问题请私信我。 332
上一篇: 【人工智能笔记】第三十二节:TF2实现VITGAN对抗生成网络,网络结构简介
下一篇: 【人工智能笔记】第四十一节:TF2实现VITGAN对抗生成网络,Generator生成器 实现
PPHT-H
博客等级 码龄18年 6254粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PPHT-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值