百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Chainer-GAN库发布,利用Chainer实现多种GAN算法及特征匹配去噪

wptr33 2025-05-24 17:32 4 浏览

原文来源: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来训练其他算法。

定量评估

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的两个应用:半监督学习,以及人类视觉逼真意义上的图像生成。与大多数生成模型的工作不同,其主要目标不是训练一个分配高相似性以测试数据的模型,也不要求模型能够在不使用任何标签的情况下进行学习。

使用这些新技术后,科研人员在MNIST、CIFAR-10和SVHN的半监督分类中获得了可喜成果。所产生的图像具有已通过视觉图灵测试证实的高质量:该模型可以生成人类无法从实际数据中区分的MNIST样本,以及生成人为错误率为21.3%的CIFAR-10样本。我们还以前所未有的分辨率呈现除出了ImageNet样本,并显示该方法使模型能够学习到ImageNet等级的可识别特征。

在该论文中,科研人员推出了几种旨在鼓励GAN融合的技术,这些技术是从对非收敛问题的理解中获得灵感的。这使得半监督学习实现性能的提升和样本生成的改进。

更多信息可点击链接获取完整论文(
https://arxiv.org/pdf/1606.03498.pdf)

开源代码获取:
https://github.com/pfnet-research/chainer-gan-lib/blob/master/README.md

相关推荐

用Java实现RAG的3大核心模块与7个必知细节

一、真实场景驱动:某制造企业的知识管理之痛某汽车零部件企业有超过20万份技术文档(PDF/HTML/Word),工程师每天平均花费2小时查找资料。我们为其构建的Java版RAG系统,将查询耗时缩短至1...

在 C# .NET 中从 PDF 中提取表数据

概述:...

【分享】教你如何使用 Java 读取 Excel、docx、pdf 和 txt 文件

在Java开发中,我们经常需要读取不同类型的文件,包括Excel表格文件、"doc"和"docx"文档文件、PDF文件以及纯文本文件。其中最常用的是A...

Spring AI 模块架构与功能解析

SpringAI是Spring生态系统中的一个新兴模块,专注于简化人工智能和机器学习技术在Spring应用程序中的集成。本文将详细介绍SpringAI的核心组件、功能模块及其之间的关...

告别付费!一站式服务,PDF多功能工具!

大家好,我是Java陈序员。今天,给大家介绍一个PDF多功能在线操作工具,完全免费开源!...

本地PDF操作神器:永久告别盗版和破解,再也不用担心安全问题

前言PDF(便携式文档格式)目前已经成为了文档交换和存储的标准。然而,找到一个功能全面、安全可靠、且完全本地化的PDF处理工具并不容易。...

Python rembg 库去除图片背景

rembg是一个强大的Python库,用于自动去除图片背景。它基于深度学习模型(如U^2-Net),能够高效地将前景物体从背景中分离,生成透明背景的PNG图像。本教程将带你从安装到实际应用...

31个必备的python字符串方法,建议收藏

字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它。...

python学习day1——输出格式化

print一般在控制台中我们用print进行输出,默认情况下,使用格式为:print(*objects,sep='',end='\n')第一个参数是我们要在控制台...

一张图认识Python(附基本语法总结)

一张图认识Python(附基本语法总结)一张图带你了解Python,更快入门,一张图认识Python(附基本语法总结)Python基础语法总结:1.Python标识符在Python里,标识符有字...

学习编程第188天 python编程 字典格式化

今天学习的是刘金玉老师零基础Python教程第84期,主要内容是python字典格式化。...

Python基础数据类型转换

Python中的基础数据类型转换可以分为隐式转换和显示转换。隐式转换是python解释器自动转换,显示转换是通过内置函数实现。无论哪种方式进行的转换,均为转换为对应类型的数据,而非改变原数据的类型。...

python之json基本操作

1.概述JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,它具有简洁、清晰的层次结构,易于阅读和编写,还可以有效的提升网络传输效率。Python标准库的...

Python之迭代器及其用法

前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用for循环遍历存储...

从初始化一个现代 python项目学习到的东西

uv我准备用uv初始化一个python项目环境我用的是苹果笔记本MacBookPro,具体的操作系统及硬件参数如下:...