styleGAN

StyleGAN及其改进型(StyleGAN2)——基于样式的生成对抗网络论文整理与总结 StyleGAN及其改进型(StyleGAN2)——基于样式的生成对抗网络论文整理与总结StyleGAN论文简介论文研究背景及意义论文的工作和贡献论文的模型和方法基于样式的生成器结构正则化-混合正则化(mixing regularization)两种新的量化隐空间(latent space)耦合度的方法论文生成的图像的质量StyleGAG总结StyleGAN的缺点StyleGAN2StyleGAN2的模型和方法新的网络结构StyleGAN2的主要改进改进详述总结参考博客及文章 论文:https://arxi 阅读详情

数据集

在不同分辨率下在不同数据集上训练的预训练 StyleGAN 模型的集合。
在这里插入图片描述

Datasetimagesinformation
LSUN Bedrooms在这里插入图片描述在这里插入图片描述
LSUN Cars在这里插入图片描述在这里插入图片描述
LSUN Cats在这里插入图片描述在这里插入图片描述
CelebA HQ Faces在这里插入图片描述在这里插入图片描述
FFHQ Faces在这里插入图片描述在这里插入图片描述
Pokemon在这里插入图片描述在这里插入图片描述
Anime Faces在这里插入图片描述在这里插入图片描述
Anime Portraits在这里插入图片描述在这里插入图片描述
WikiArt Faces在这里插入图片描述在这里插入图片描述
Abstract Photos在这里插入图片描述在这里插入图片描述
Vases在这里插入图片描述在这里插入图片描述
Fireworks在这里插入图片描述在这里插入图片描述
Ukiyo-e Faces在这里插入图片描述在这里插入图片描述
Butterflies在这里插入图片描述在这里插入图片描述

使用预训练网络

pretrained_example.py 中给出了使用预训练 StyleGAN 生成器的最小示例。 执行时,脚本会从 Google Drive 下载一个预先训练好的 StyleGAN 生成器,并使用它来生成图像:

> python pretrained_example.py
Downloading https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ .... done

Gs                              Params    OutputShape          WeightShape
---                             ---       ---                  ---
latents_in                      -         (?, 512)             -
...
images_out                      -         (?, 3, 1024, 1024)   -
---                             ---       ---                  ---
Total                           26219627

> ls results
example.png # https://drive.google.com/uc?id=1UDLT_zb-rof9kKH0GwiJW_bS9MoZi8oP

generate_figures.py 中给出了一个更高级的示例。 该脚本复制了我们论文中的数字,以说明样式混合、噪声输入和截断:

> python generate_figures.py
results/figure02-uncurated-ffhq.png     # https://drive.google.com/uc?id=1U3r1xgcD7o-Fd0SBRpq8PXYajm7_30cu
results/figure03-style-mixing.png       # https://drive.google.com/uc?id=1U-nlMDtpnf1RcYkaFQtbh5oxnhA97hy6
results/figure04-noise-detail.png       # https://drive.google.com/uc?id=1UX3m39u_DTU6eLnEW6MqGzbwPFt2R9cG
results/figure05-noise-components.png   # https://drive.google.com/uc?id=1UQKPcvYVeWMRccGMbs2pPD9PVv1QDyp_
results/figure08-truncation-trick.png   # https://drive.google.com/uc?id=1ULea0C12zGlxdDQFNLXOWZCHi3QNfk_v
results/figure10-uncurated-bedrooms.png # https://drive.google.com/uc?id=1UEBnms1XMfj78OHj3_cx80mUf_m9DUJr
results/figure11-uncurated-cars.png     # https://drive.google.com/uc?id=1UO-4JtAs64Kun5vIj10UXqAJ1d5Ir1Ke
results/figure12-uncurated-cats.png     # https://drive.google.com/uc?id=1USnJc14prlu3QAYxstrtlfXC9sDWPA-W

预训练的网络作为标准 pickle 文件存储在 Google Drive 上:

# Load pre-trained network.
url = 'https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ' # karras2019stylegan-ffhq-1024x1024.pkl
with dnnlib.util.open_url(url, cache_dir=config.cache_dir) as f:
    _G, _D, Gs = pickle.load(f)
    # _G = Instantaneous snapshot of the generator. Mainly useful for resuming a previous training run.
    # _D = Instantaneous snapshot of the discriminator. Mainly useful for resuming a previous training run.
    # Gs = Long-term average of the generator. Yields higher-quality results than the instantaneous snapshot.

上面的代码下载文件并解压它以产生 dnnlib.tflib.Network 的 3 个实例。 要生成图像,您通常需要使用 Gs——另外两个网络是为了完整性而提供的。 为了使 pickle.load() 工作,您需要在 PYTHONPATH 中包含 dnnlib 源目录,并将 tf.Session 设置为默认值。 会话可以通过调用 dnnlib.tflib.init_tf() 来初始化。

使用预训练生成器的三种方式:

  • 使用 Gs.run() 进行立即模式操作,其中输入和输出是 numpy 数组:
    第一个参数是一批形状为 [num, 512] 的潜在向量。 第二个参数是为类标签保留的(StyleGAN 不使用)。 其余的关键字参数是可选的,可用于进一步修改操作(见下文)。 输出是一批图像,其格式由 output_transform 参数指定。

    # Pick latent vector.
    rnd = np.random.RandomState(5)
    latents = rnd.randn(1, Gs.input_shape[1])
    
    # Generate image.
    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)
    
    
  • 使用 Gs.get_output_for() 将生成器合并为更大的 TensorFlow 表达式的一部分:
    上面的代码来自metrics/frechet_inception_distance.py。 它生成一批随机图像并将它们直接提供给 Inception-v3 网络,而无需将数据转换为中间的 numpy 数组。

    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))
    
    
  • 查找 Gs.components.mapping 和 Gs.components.synthesis 以访问生成器的各个子网络。 与 Gs 类似,子网络表示为 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)
    
    

上面的代码来自 generate_figures.py。 它首先使用映射网络将一批潜在向量转换为中间 W 空间,然后使用合成网络将这些向量转换为一批图像。 dlatents 数组为合成网络的每一层存储相同 w 向量的单独副本,以促进风格混合。

生成器的确切细节在 training/networks_stylegan.py 中定义(参见 G_style、G_mapping 和 G_synthesis)。 可以指定以下关键字参数来修改调用 run() 和 get_output_for() 时的行为:

  • truncation_psi 和 truncation_cutoff 控制使用 Gs (ψ=0.7, cutoff=8) 时默认执行的截断技巧。 可以通过设置 truncation_psi=1 或 is_validation=True 来禁用它,并且可以通过设置以变化为代价进一步提高图像质量,例如 截断_psi=0.5。 请注意,直接使用子网时,截断始终处于禁用状态。 可以使用 Gs.get_var(‘dlatent_avg’) 查找手动执行截断技巧所需的平均 w。
  • randomize_noise 确定是否对每个生成的图像使用重新随机化噪声输入(True,默认)或是否对整个 minibatch 使用特定的噪声值(False)。 可以通过使用 [var for name, var in Gs.components.synthesis.vars.items() if name.startswith(‘noise’)] 找到的 tf.Variable 实例访问特定值。
  • 直接使用映射网络时,您可以指定 dlatent_broadcast=None 以禁用合成网络层上的 dlatents 自动复制。
  • 运行时性能可以通过 structure=‘fixed’ 和 dtype=‘float16’ 进行微调。 前者禁用了对完全训练生成器不需要的渐进式增长的支持,后者使用半精度浮点算法执行所有计算。

准备训练数据集

训练和评估脚本对存储为多分辨率 TFRecord 的数据集进行操作。每个数据集都由一个目录表示,该目录包含多种分辨率的相同图像数据,以实现高效的流式传输。每个分辨率都有一个单独的 *.tfrecords 文件,如果数据集包含标签,它们也会存储在单独的文件中。 默认情况下,脚本希望在 datasets//-.tfrecords 中找到数据集。 可以通过编辑 config.py 来更改目录:

result_dir = 'results'
data_dir = 'datasets'
cache_dir = 'cache'

要获取 FFHQ 数据集 (datasets/ffhq),请参阅 Flickr-Faces-HQ 存储库。
要获取 CelebA-HQ 数据集 (datasets/celebahq),请参阅Progressive GAN 存储库 。
要获取其他数据集,包括 LSUN,请查阅其相应的项目页面。 可以使用提供的 dataset_tool.py 将数据集转换为多分辨率 TFRecords:

> python dataset_tool.py create_lsun datasets/lsun-bedroom-full ~/lsun/bedroom_lmdb --resolution 256
> python dataset_tool.py create_lsun_wide datasets/lsun-car-512x384 ~/lsun/car_lmdb --width 512 --height 384
> python dataset_tool.py create_lsun datasets/lsun-cat-full ~/lsun/cat_lmdb --resolution 256
> python dataset_tool.py create_cifar10 datasets/cifar10 ~/cifar10
> python dataset_tool.py create_from_images datasets/custom-dataset ~/custom-images

训练网络

设置数据集后,您可以按如下方式训练自己的 StyleGAN 网络:编辑 train.py 以通过- - 取消注释或编辑特定行来指定数据集和训练配置。

  • 使用 python train.py 运行训练脚本。
  • 结果将写入新创建的目录 results/-。
  • 培训可能需要几天(或几周)才能完成,具体取决于配置。

默认情况下,train.py 被配置为使用 8 个 GPU 以 1024×1024 分辨率为 FFHQ 数据集训练最高质量的 StyleGAN(表 1 中的配置 F)。

使用 Tesla V100 GPU 的默认配置的预期训练时间:
在这里插入图片描述

评估质量和解开

我们论文中使用的质量和解开度量可以使用 run_metrics.py 进行评估。 默认情况下,脚本将评估预训练的 FFHQ 生成器的 Fréchet 起始距离 (fid50k),并将结果写入结果下新创建的目录中。 可以通过取消注释或编辑 run_metrics.py 中的特定行来更改确切的行为。

使用一个 Tesla V100 GPU 的预训练 FFHQ 生成器的预期评估时间和结果:
在这里插入图片描述
请注意,由于 TensorFlow 的不确定性,确切的结果可能会因运行而异。

参考资料
ustinpinkney/awesome-pretrained-stylegan
BVlabs/stylegan

【styleGAN3】Colab 配置styleGAN3环境 因为之前使用的更改colab环境是用了pyngrok, (详情参考:Colab 更换python版本) 之后在在conda里面创建虚拟环境的时候会有激活错误,所以直接用conda创建虚拟环境。在创建过程中遇到了一些之前没有接触过的操作,比如使用yml重现环境等,这里记录一下虚拟环境的创建过程,给自己做个备忘,也希望能帮助有同样需求或者问题的人。 但是需要注意的是,colab只能在terminal里面激活conda虚拟环境,在notebook中只能在某个代码格内使用虚拟环境后运行指令。每新增一个代码格,就要 阅读详情

相关推荐

ffhq-dataset:Flickr-Faces-HQ数据集(FFHQ)

Flickr-Faces-HQ数据集(FFHQ) Flickr-Faces-HQ(FFHQ)是高质量的人脸图像数据集,最初创建为生成对抗网络(GAN)的基准: 用于生成对抗网络的基于样式的生成器体系结构Tero Karras(NVIDIA),Samuli Laine(NVIDIA),Timo Aila(NVIDIA) 该数据集包含70,000张分辨率为1024×1024的高质量PNG图像,并且在年龄,种族和图像背景方面均存在很大差异。 它还覆盖了诸如眼镜,太阳镜,帽子等配件。图像是从抓取的,从而继承了该网站的所有偏见,并使用自动对齐和裁剪。 仅收集了许可许可下的图像。 各种自动过滤器用于修剪该布景,最后使用去除偶发的雕像,油画或照片照片。 如有业务咨询,请联系 媒体及其他查询,请通过与Hector Marinez联系。 执照 各个图像是由其各自的作者在Flickr中根据 ,

StyleGAN2的训练参数与技巧

为了解决这个问题,truncation 的方法是将 w 向 w 的平均值 w_avg 靠近,即 w_new = w_avg + (w - w_avg) * truncation_psi,其中 truncation_psi 是一个小于 1 的系数。style_mix 的方法是在 synthesis network 中随机选择一个交叉点,交叉点之前的层使用 w_1,交叉点之后的层使用 w_2,这样生成的图像就会同时具有 w_1 和 w_2 的风格特征。

子燕若水的博客 1337

LSUN数据集(bedroom子集)

LSUN数据集(bedroom),文件中包含百度网盘提取码。LSUN是一个比较有特色的大规模数据集,相对ImageNet而言,分类更丰富,不仅有物体分类,还有场景分类。

3DStyleGAN环境配置踩坑记录

运行github 3DStyleGAN for Medical Image的过程中遇到点环境的坑记录

m0_46480068的博客 1162

基于4G cat.1的低功耗车牌识别摄像头模组介绍

在消费类摄像头领域,4G低功耗相机已经非常普遍,在可视门锁,婴儿看护,户外监控等领域都获得了很好的应用.但是在工业领域,低功耗相机的应用还不是那么广泛.这里要介绍一款基于4G cat.1的低功耗车牌识别摄像头模组,在待机状态只有MCU和毫米波雷达以1Hz的频率工作,功耗低至500uA,并可以通过4G模块远程唤醒模组.

bindaz的专栏 1647

Codesys电子凸轮实战:从机械替代到虚轴设计的5个关键步骤

本文详细介绍了Codesys电子凸轮技术在运动控制领域的实战应用,从机械替代到虚轴设计的5个关键步骤。通过电子凸轮技术,操作员可以快速调整切割模式,显著提升产线效率。文章还探讨了虚轴架构、CAM表设计、动态耦合技巧及调试避坑指南,为工业自动化领域提供了实用的解决方案。

tech5的博客 767

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

(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 = G

Drug discovery 1万+

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决)

本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。

dell8的博客 177

风格迁移0-07:stylegan-源码无死角解读(3)-generate网络框架总览

以下链接是个人关于stylegan所有见解,如有错误欢迎大家指出,我会第一时间纠正,如有兴趣可以加微信17575010159相互讨论技术。因为这是对我最大的鼓励。

江南才尽江南山,年少无知年少狂! 5047

Coding Plan:程序员真实工作的可执行编码决策框架

Coding Plan 是一种面向工程实践的编码决策方法论,它超越传统学习路径,聚焦于代码在真实业务系统中的上下文对齐、影响控制与可演进性保障。其核心在于将模糊的开发直觉转化为可度量、可验证、可协作的日常动作,涵盖目标对齐、上下文锁定、验证闭环、协作契约和演进预留五大锚点。结合2026年AI辅助编码新范式,它强调将大模型作为‘上下文翻译器’而非代码生成器,并通过分钟级工作块、技术债主动发行、可观测性前置等机制,显著提升交付确定性与系统长期健康度。本文详解该框架的底层逻辑与落地实践。

weixin_33326218的博客 438

立创电赛C题:基于STM32的三端口DC-DC变换器设计与MPPT算法实现

本文详细解析了2021年立创电赛C题——基于STM32的三端口DC-DC变换器设计。文章从题目要求出发,系统阐述了采用双DC-DC电路(分别负责MPPT追踪与稳压)的硬件架构,并重点讲解了以STM32为核心、结合PID控制与扰动观察法(MPPT算法)的软件实现方案,为备赛者提供了完整的软硬件设计思路与调试经验。

weixin_42588877的博客 224

【StyleGAN代码学习】StyleGAN模型架构

完整StyleGAN笔记:http://www.gwylab.com/pdf/Note_StyleGAN.pdf 基于StyleGAN的一个好玩的网站:www.seeprettyface.com —————————————————————————————————    第二章 StyleGAN代码解读(上)   这一章将对StyleGAN的代码进行非常细致的分析和解读。一方面有助于对StyleGA...

a312863063的博客 1万+

全球气候模式降尺度方法总结及其代码实现

简介总结各类型气候模式降尺度方法

WW、forever的博客 1万+

NVIDIA的StyleGAN、StyleGAN2、StyleGAN3系列论文解读,梳理基于风格的生成器架构

StyleGAN基于风格生成图片系列的梳理,希望能够帮助到大家,更快熟悉这个让人惊艳的模型

深度学习领域优质创作者,优快云博客专家 1万+

广东省低应变题库

11.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,采用低应变法对混凝土预制桩进行检测时,地基基础设计等级为甲级的桩基工程抽检桩数不应少于总桩数的30%,其余桩基工程抽检桩数不应少于总桩数的20%,且不得少于10根;16.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,当对某桩的桩身完整性判定为III类时,可认为该桩不满足验收条件,不用进一步确定该桩桩身缺陷对桩身结构承载力的影响程度。2.地基基础检测所用计量器具均应在检定(校准、验证)的有效期内,性能符合相关技术要求。

ZShy001238的博客 319

MIPI D-PHY TX 一致性测试实例解析 Part 03

本文之前,已经讨论了MIPI D-PHY TX的1.3.x和1.4.x的测试项,1.5.x的测试项相对较少,主要是用于时钟和数据通道相关的时序测量

一只豌豆象的博客 5185

StyleGAN2 解释

本文是[1]的译文, 按照作者Connor Shorten 的说法, 此博客讨论的是StyleGAN2的诸如weight demodulation, path length regularization和去掉progressive growing等信息。虽然我去年底自己复现过StyleGAN2的pytorch版, 但对这些内容也有些忘记了,借此机会复习下。 对于StyleGAN不了解的小伙伴,建议先看下别人写的关于StyleGAN的基本介绍,然后再来看本文,相信会收获更多~ 0. 前言 来自Nvidia.

g11d111的博客 2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[GAN]【学习笔记】StyleGAN与StyleGAN2

StyleGAN 与 StyleGAN2的解析~

“知识最大的敌人不是无知,而是错觉” 3977

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【StyleGAN代码学习】StyleGAN损失函数与训练过程

完整StyleGAN笔记:http://www.gwylab.com/pdf/Note_StyleGAN.pdf 基于StyleGAN的一个好玩的网站:www.seeprettyface.com —————————————————————————————————    第二章 StyleGAN代码解读(下) 2.3 损失函数代码解读   StyleGAN的损失函数写在training/loss.p...

a312863063的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

StyleGAN 架构解读(重读StyleGAN)精【3】(总结StyleGAN1和StyleGAN2)

StyleGAN 架构解读(重读StyleGAN)精【3】

Drug discovery 5982

【StyleGan】环境搭建tensorflow-gpu,运行stylegan

StyleGan的学习摸摸索索着开始了,大部分参照别的博主大佬。会附上所有的学习链接。 环境安装 WIN10+CUDA10 +CUDNN7.5+ TENSORFLOW-GPU1.13.1 + python3.7 运行NVIDIA STYLEGAN 的安装过程和踩坑实录 学习 http://www.seeprettyface.com/research_notes.html ...

一亿少女的梦 1308

StyleGAN 架构解读(重读StyleGAN)精【1】

StyleGAN 的前身——ProGAN 上图是 ProGAN 的网络结构图。这项技术首先通过学习即使在低分辨率图像中也可以显示的基本特征,来创建图像的基本部分,并且随着分辨率的提高和时间的推移,学习越来越多的细节。低分辨率图像的训练不仅简单、快速,而且有助于更高级别的训练,因此,整体的训练也就更快。 特别值得注意的是,上图 Generator 中的网络结构不是指的从 4*4 网络连接到 8*8 网 络,再连接到 16*16 网络依次输出,而是指的从 4*4 网络变化到 8*8 网络,再变化到 16

Drug discovery 5万+

MaterialGAN:从ProGAN,StyleGAN,StyleGAN2到MaterialGAN

MaterialGAN:从ProGAN,StyleGAN,StyleGAN2到MaterialGAN前言ProGanStyleGANStyleGAN2MaterialGAN 前言 最近拜读SVBRDF生成模型MaterialGAN,文章基于StyleGAN2,然后写下这一系列的阅读笔记与心得。旨在搞懂这一系列网络的各自解决的问题,以及各作者对这些问题如何设计解决方案 ProGan 论文地址 Git地址 StyleGAN StyleGAN2 MaterialGAN ...

haozi2008的博客 1907

StyleGAN

stylegan解释,自用

weixin_48341022的博客 1708

4、StyleGAN系列

gan

小白的博客 3265
上一篇: StyleMapGAN代码解读
下一篇: 千图成像原理
studyeboy
博客等级 码龄15年 365粉丝 329原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值