谷歌推出TFGAN:开源的轻量级生成对抗网络库

简介:
本文来自AI新媒体量子位(QbitAI)

一般情况下,训练一个神经网络要先定义一下损失函数,告诉神经网络输出的值离目标值偏差大概多少。举个例子来说,对于图像分类网络所定义的损失函数来说,一旦网络出现错误的分类结果,比如说把狗标记成了猫,就会得到一个高损失值。

不过,不是所有任务都有那么容易定义的损失函数,尤其是那些涉及到人类感知的,比如说图像压缩或者文本转语音系统。

GAN(Generative Adversarial Networks,生成对抗网络),在图像生成文本,超分辨率,帮助机器人学会抓握,提供解决方案这些应用上都取得了巨大的进步。

不过,理论上和软件工程上的更新不够快,跟不上GAN的更新的节奏。


 一段生成模型不断进化的视频

上面的视频可以看出,这个生成模型刚开始只能产生杂乱的噪音,但是最后生成了比较清晰的MNIST数字。

为了让大家更容易地训练和评价GAN,我们提供TFGAN(轻量级GAN库)的源代码。其中包含容易上手的案例,可以充分地展现出TFGAN的表现张力和灵活性。我们还附上了一个示范教程,里面提到了高级的API端口怎么样能快速地用你的数据来训练模型。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 对抗损失对于图像压缩的效果。

顶层是ImageNet数据集里的图,中间那层是传统损失训练出来的图像压缩神经网络压缩和解压后的效果,底层是GAN损失和传统损失一起训练的神经网络效果。可以看得出来,底层的图边缘更锐利,细节更丰富,虽然和原图还是有一定的差距。

当使用端对端的语音合成TacotronTTS网络时,GAN可以增加部分真实的声音特性。如下图所示。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 大多文本转语音(TTS)网络产生的过平滑的声谱图

TacotronTTS可以有效减少生成音频的人工痕迹,出来的语音更真实自然(具体参考,https://arxiv.org/abs/1703.10135)。

TFGAN支持多种主流的实验方法。既有简单的可涵盖大部分GAN案例的函数(只要几行代码,开发者就可以拿自己的数据直接建模了),也有设计独立模块化的特殊GAN函数,你可以随意地组合自己需要的函数,损失、评估、特征、训练函数。

同时,TFGAN也支持搭配其他架构,或者原始的TensorFlow代码。使用了TFGAN搭建的GAN模型,以后底层架构的优化会更加方便。另外,也有大量的已经预置的损失函数或特征函数供开发者选择,不用再花大量时间自己去写。最最最重要的是代码已经被反复测试过了,开发者不用再担心GAN库数据上的错误。

最后,附TFGAN链接:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/gan

原文链接:
https://opensource.googleblog.com/2017/12/tfgan-lightweight-library-for-generative-adversarial-networks.html

本文作者:Root 
原文发布时间:2017-12-13 
相关文章
|
2月前
|
数据采集 JavaScript 前端开发
实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库
实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库
|
27天前
|
数据采集 大数据 数据安全/隐私保护
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
本文探讨了使用Perl和RobotRules库在遵循robots.txt规则下抓取小红书数据的方法。通过分析小红书的robots.txt文件,配合亿牛云爬虫代理隐藏真实IP,以及实现多线程抓取,提高了数据采集效率。示例代码展示了如何创建一个尊重网站规则的数据下载器,并强调了代理IP稳定性和抓取频率控制的重要性。
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
|
9天前
|
机器学习/深度学习 算法 计算机视觉
【CVPR轻量级网络】- 追求更高的FLOPS(FasterNet)
【CVPR轻量级网络】- 追求更高的FLOPS(FasterNet)
|
24天前
|
JSON Kubernetes 网络架构
Kubernetes CNI 网络模型及常见开源组件
【4月更文挑战第13天】目前主流的容器网络模型是CoreOS 公司推出的 Container Network Interface(CNI)模型
|
1月前
|
数据采集 网络协议 API
python中其他网络相关的模块和库简介
【4月更文挑战第4天】Python网络编程有多个流行模块和库,如requests提供简洁的HTTP客户端API,支持多种HTTP方法和自动处理复杂功能;Scrapy是高效的网络爬虫框架,适用于数据挖掘和自动化测试;aiohttp基于asyncio的异步HTTP库,用于构建高性能Web应用;Twisted是事件驱动的网络引擎,支持多种协议和异步编程;Flask和Django分别是轻量级和全栈Web框架,方便构建不同规模的Web应用。这些工具使网络编程更简单和高效。
|
2月前
|
数据采集 存储 Scala
挖掘网络宝藏:利用Scala和Fetch库下载Facebook网页内容
本文介绍了如何使用Scala和Fetch库下载Facebook网页内容,同时通过爬虫代理服务(以亿牛云为例)绕过网络限制。代码示例展示了配置代理服务器、多线程爬取及内容存储的过程。注意实际应用时需替换代理服务器配置和目标URL,并考虑应对复杂的反爬虫机制。此方法兼顾匿名性和效率。
挖掘网络宝藏:利用Scala和Fetch库下载Facebook网页内容
|
2月前
|
机器学习/深度学习 算法框架/工具 Python
如何使用Python的Keras库构建神经网络模型?
如何使用Python的Keras库构建神经网络模型?
13 0
|
2月前
|
Python
如何使用Python的Requests库进行网络请求和抓取网页数据?
如何使用Python的Requests库进行网络请求和抓取网页数据?
14 0
|
3月前
|
机器学习/深度学习 安全 网络安全
谷歌推出新一代恶意文件检测工具Magika:网络安全的重大进步
【2月更文挑战第9天】谷歌推出新一代恶意文件检测工具Magika:网络安全的重大进步
43 4
谷歌推出新一代恶意文件检测工具Magika:网络安全的重大进步
|
3月前
|
数据采集 安全 网络协议
构建网络下载器:Wt库指南让您轻松获取豆瓣网的美图
Wt(Web Toolkit)是一个用C编写的开源库,它可以让您使用C开发Web应用程序。Wt提供了一套丰富的组件,包括窗口、按钮、表单、图表、布局等,让您可以像使用GUI库一样,使用C++构建Web界面。 除了提供Web界面的组件,Wt还提供了一个网络模块,它可以让您使用C++进行网络编程,包括HTTP请求、响应、会话、Cookie等。这个网络模块非常适合用来开发网络爬虫,因为它可以让您方便地发送HTTP请求,获取网页的内容,解析HTML,提取所需的数据,保存到本地或数据库等。