(4)值得专门说明的一点是,有三种方法可以使用StyleGAN预先训的生成器:

(4.1)使用Gs.run(),输入和输出均为numpy数组,这是一种最为简便的使用方法:

# 选择特征向量
rnd = np.random.RandomState(5)
latents = rnd.randn(1, Gs.input_shape[1])# 生成图像
fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)
images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt)

第一个参数是一批形状为[num, 512]的特征向量,第二个参数预留给类别标签(StyleGan并没有使用,所以参数为None)。其余的关键字参数是可选的。输出是一批图像,其格式由output_transform参数决定。

(4.2)使用Gs.get_output_for()将生成器合并为一个更大的TensorFlow表达式的一部分:

latents = tf.random_normal([self.minibatch_per_gpu] + Gs_clone.input_shape[1:])
images = Gs_clone.get_output_for(latents, None, is_validation=True, randomize_noise=True)
images = tflib.convert_images_to_uint8(images)
result_expr.append(inception_clone.get_output_for(images))

The above code is from metrics/frechet_inception_distance.py,它生成一批随机图像,并将它们直接提供给Inception-v3网络,而无需在中间将数据转换为numpy数组。

(4.3)查找Gs.components.mapping和Gs.components.synthesis以访问生成器的各个子网络,即下面的src_dlatents,Similar to Gs, the sub-networks are represented as independent instances of dnnlib.tflib.Network:

src_latents = np.stack(np.random.RandomState(seed).randn(Gs.input_shape[1]) for seed in src_seeds)
src_dlatents = Gs.components.mapping.run(src_latents, None) # [seed, layer, component]
src_images = Gs.components.synthesis.run(src_dlatents, randomize_noise=False, **synthesis_kwargs)

The above code is from generate_figures.py.首先利用映射网络将一批特征向量转化为中间的W空间,然后利用合成网络将这些向量转化为一批图像。src_dlatents数组为合成网络的每一层存储同一w向量的单独副本,在使用合成网络之前,其中某些副本可以用其他的数据(如:draw_style_mixing_figure()函数中用到的dst_dlatents)的某些副本来替换,然后再通过合成网络来实现样式混合。

原文链接:https://blog.csdn.net/weixin_41943311/article/details/100694599

三种方法可以使用StyleGAN预先训的生成器相关推荐

  1. 图片转PDF格式怎么转换?这三种方法随便用

    图片怎么转换成PDF文件格式呢?大家在日常工作和学习中,也会经常使用到图片,不管是拍照记录还是截图办公,当我们想把这些图片打包发送出去的时候,怎么做才能最简单方便呢?做成文件夹发送还得压缩和解压,比较 ...

  2. 如何在一台计算机上使用两个网络,一个宽带如何装两个路由器?这三种方法都可以使用...

    原标题:一个宽带如何装两个路由器?这三种方法都可以使用 实现的方法有三种: 二级路由器.路由器改当交换机.无线桥接这三种,之前我也曾提到过,今天我们再来总结下两台路由器连接的三种方法. 一.无线路由器 ...

  3. 284、一个宽带如何装两个路由器?这三种方法都可以使用

    很多朋友可能存这种情况,家里房间比较多,之前已经安装了一个无线路由器,但是在某些房间信号很差,想再增加一个无线路由器怎么办? 这个问题,也有不少朋友在问,其实实现的方法有好几种,实现的方法有三种: 二 ...

  4. 为什么系统调用会消耗较多资源?系统调用的三种方法:软件中断(分析过程)、SYSCALL指令、vDSO(虚拟动态链接对象linux-vdso.so.1)

    Table of Contents 软件中断 汇编指令 vDSO 总结 参考文章 系统调用是计算机程序在执行的过程中向操作系统内核申请服务的方法,这可能包含硬件相关的服务.新进程的创建和执行以及进程调 ...

  5. linux终端下载notepad,在Linux系统上安装NotePad++的三种方法介绍

    本文介绍在Linux操作系统上安装NotePad++的三种方法,使用Snap.Wine和NotePadQQ.这里要说的是:由于像Wine和Snap软件包这样的工具,在Linux上运行的Notepad+ ...

  6. 安装软件包的三种方法、rpm包介绍、rpm、yum工具用法与yum搭建本地仓库

    一.安装软件包的三种方法 rpm工具:RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷.但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当:包与包之间存在着相互依赖的 ...

  7. 平板 刷 linux系统,在Linux系统上安装NotePad++的三种方法介绍

    本文介绍在Linux操作系统上安装NotePad++的三种方法,使用Snap.Wine和NotePadQQ.这里要说的是:由于像Wine和Snap软件包这样的工具,在Linux上运行的Notepad+ ...

  8. 独家 | 将时间信息编码用于机器学习模型的三种编码时间信息作为特征的三种方法...

    作者:Eryk Lewinson 翻译:汪桉旭 校对:zrx本文约4400字,建议阅读5分钟 本文研究了三种使用日期相关的信息如何创造有意义特征的方法. 标签:时间帧,机器学习,Python,技术演示 ...

  9. 三种方法让信息在局域网中自由散发

    很多人也许都有过这样的经历:正在机房使用电脑时,屏幕上突然弹出一个消息窗口,把你吓了一跳!这些消息窗口通常都是机房或公司的网管发送过来的,目的大多是向使用者公布一些重要事项,例如通知下课啦.或是机房即 ...

最新文章

  1. RxJava 过滤操作符skip 与 skipLast
  2. Linux的文件系统及其硬盘分区挂载原理
  3. 上海大学matlab实验报告,实验中心
  4. c与c十十与python_浅要分析Python程序与C程序的结合使用
  5. 【转】arm和x86的区别
  6. python的print函数输出带颜色字体
  7. 疫期公共出行更安心 微信支付上线“新冠肺炎保障”
  8. HDU 6182 2017广西邀请赛:A Math Problem
  9. VS2010打开项目时弹出错误提示。。。VisualStudio\10.0\ActivityLog.
  10. Java--文本文档编写Java代码
  11. python图像物体的自动标注_python中matplotlib实现随鼠标滑动自动标注代码实例
  12. Win10鼠标右键菜单不显示怎么办?
  13. 家里电脑怎么控制公司电脑?电脑远程控制的几种方式
  14. 京东云mysql镜像_京东云数据库RDS SQL Server高可用概述
  15. 编程达人教你如何快速掌握一门编程语言
  16. AI芯片:寒武纪DianNao,英伟达NVDLA和谷歌TPU1的芯片运算架构对比分析
  17. endcap和welltap_ICC布局规划
  18. 多线程之互斥锁(mutex)的使用方法
  19. LinkedIn领英开发国外客户技巧,附提高好友邀请通过率7大模板
  20. 阿里的Java 开发,拿那么高工资,每天都在干啥?

热门文章

  1. Dreamweaver中如何格式化代码
  2. 全面认识UML-类图元素(java)
  3. ubuntu tomcat安装环境变量配置
  4. 数据结构基础(3) --Permutation 插入排序
  5. Ubuntu 16.04 Hadoop-2.7.3全分布模式 + eclipse hadoop
  6. linux服务器重启init 6和reboot区别
  7. Linux 系统管理
  8. AppDelegate 方法介绍
  9. Solaris - 使用TAB键自动补全和显示当前用户与目录
  10. 在websphere部署完war包后出现com.ibm.ws.jsp.JspCoreException: JSPG0218E异常