原文来源:GitHub、Arxiv 「机器人圈」编译:嗯~阿童木呀、BaymaxZ Chainer是一个基于Python的深度学习框架。它基于动态计算图以及面向对象的高级API,以构建并训练神经网络,提供自动微分API。它还支持CUDA / cuDNN使用CuPy进行高性能训练。 Chainer-GAN库汇集了当前最高水准的基于Chainer实现的GAN算法; 这些代码已在Cifar-10数据集中,使用inceptionscore进行过评估; 请注意,代码在基于原论文的基础上做了些许修改。 如何使用? 首先要阅读安装要求: pip install -r requirements.txt此实现已通过以下版本进行测试。 python 3.5.2从https://github.com/hvy/chainer-inception-score中可获得inception score模块,下文将进行详细解读。 git submodule update -i下载inception模型。 cd common/inception你可以使用train.py开始进行训练。 python train.py --gpu 0 --algorithm dcgan --out result_dcgan 请参阅example.sh来训练其他算法。 定量评估 atv,实现多种GAN及特征匹配去噪" src="http://m.jtjc.net/5b0988e595225.cdn.sohucs.com/images/20170713/75b64f1df89a4755a38cef7367ef4b51.png" img_width="524" img_height="245" max-width="600" /> Inception scores是通过对5000个样本进行10次平均评估得到的。 FID是通过对5000个训练数据集和10000个生成样本进行计算的。 生成的图像 WGAN-GP DFM Cramer GAN DRGAN DCGAN Minibatch discrimination BEGAN Inception Score Inception score模块的Chainer实现发布于《训练生成对抗网络的技术改进》(ImprovedTechniques for Training GANs)这篇论文中。代码源自OpenAI的官方开源代码(https://github.com/openai/improved-gan)。 Inception Score是OpenAI的Tim Salimans、GANs之父IanGoodfellow等人2016年在上述论文中提出的一种方法,使用预训练的分类器网络和采样图像,直播,评估诸如VAE和GAN之类的生成式模型。 这正是基于以下事实:良好的样本(图像看起来像来自真实数据分布的图像)预计会产生: 低熵p(y|x),即高预测置信度 高熵p(y),即高度变化的预测 其中x是图像,p(y|x)是预先训练的Inception网络给出的x的推断类标签概率,p(y)是所有图像上的边际分布。 Inception Score的定义为exp(E_x[KL(p(y|x)|| p(y))]) 用法 下载预先训练好的TensorFlow模型并创建一个名为inception_score.model的Chainer副本。 python download.py --outfile inception_score.model加载预先训练的Chainer模型,并计算包括训练图像和测试图像在内的CIFAR-10数据集的inception score。为了限制图像的数量,请使用--samples 选项。 python example.py --model inception_score.model ...在Python中的使用示例 import numpy as npfrom chainer import serializers, datasetsfrom inception_score import Inception, inception_score注意 从inception score的得分情况来看,该实现相较于原来的基于CIFAR-10,使用双线性插值从(32,32)到(299,299)上采样的分数要高得多。 《训练生成对抗网络的技术改进》 Inception score模块的Chainer实现发布于《训练生成对抗网络的技术改进》这篇论文中,科研人员提出了将应用于生成对抗网络(GAN)框架的各种新的架构特征和训练程序。他们专注于GAN的两个应用:半监督学习,以及人类视觉逼真意义上的图像生成。与大多数生成模型的工作不同,其主要目标不是训练一个分配高相似性以测试数据的模型,也不要求模型能够在不使用任何标签的情况下进行学习。 (责任编辑:本港台直播) |