深度学习库 Keras 2 重磅发布,与 TensorFlow 联系更紧密

昨天,著名深度学习开源库 Keras 通过官方博客正式发布了全新版本:Keras 2。

根据官方介绍,此次更新的重点有两个:

  1. Keras 2 API 将作为 TensorFlow 框架的一部分直接向用户提供支持;
  2. Keras 2 API 经过了重新设计,将成为团队第一个长期支持(long-term-support)的 API。

Keras 表示:从 2015 年 3 月发布第一个版本以来,有数以百计的开发人员对 Keras 的开源代码做了完善和拓展,数以千计的热心用户在社区对 Keras 的发展做出了贡献。目前,有大量的 AI 初创公司在 Keras 的帮助下挂牌成立,大量的研究人员通过 Keras 有效提升了研发效率,大公司的工程师们则通过 Keras 大大简化了他们的工作流程。更为重要的是,通过使用 Keras,更多的从前完全没有机器学习开发经验的用户,从此步入了深度学习的世界。

融入 TensorFlow,成为深度学习的通用语言

在本次版本更新中,最重要的一项内容就是增强了 Keras 与 TensorFlow 的逻辑一致性。按照 Keras 在博客中的说法:“这是将 Keras API 整合到 TensorFlow 核心的一个重要的准备步骤”。

实际上,从 2015 年 12 月的版本开始,Keras 就已经支持用户将 TensorFlow 作为运行后端(runtime backend),但此前,Keras 的 API 与 TensorFlow 的代码库尚处于相互隔离的状态。未来,从 TensorFlow 1.2 版本开始,Keras 2 API 将作为 TensorFlow 框架的一部分直接向用户提供支持,Keras 在博客中表示:“这是 TensorFlow 实现下一个百万用户级目标的关键”。

Keras 在博客中表示,他们更愿意人们将 Keras 视为一种通用的 API 规范,而不仅仅是一个具体的代码库。在这个意义上,他们将此前的 Keras 实现归结为两个大类:

  1. TensorFlow 的内部实现,也就是前不久在 TensorFlow 1.0 版本中发布的 tf.keras 模块,完全基于 TensorFlow 编写,并且与所有 TensorFlow 功能深度兼容;
  2. 通用实现,兼容多种运行后端,包括 Theano 和 TensorFlow 等(将来可能会支持更多其他的后端)。

类似的,知名 Java 深度学习库 Deeplearning4j 目前正在基于 Scala 语言实现 Keras 规范的一部分,即 ScalNet;而为了让 Keras 在浏览器中运行,Keras.js 团队也在基于 JavaScript 实现一部分 Keras API。这样的例子还有很多。

这些例子正符合了 Kera 成为一种通用的 API 规范的发展定位。按照 Keras 在博客中的说法:“Keras API 意在成为一个深度学习实践者的通用语言,一个跨越多种不同的工作流、独立于各种底层平台的深度学习通用语言”。

重新设计,成为第一个长期支持的 API

Keras 2 的另一项重要更新是 API 的变化。Keras 在博客中表示,全新发布的 Keras 2 API 将成为团队第一个长期支持的 API,不但兼容目前最新的软件,而且未来将保持长期有效。为了实现这一点,Keras 重新设计了绝大部分 API,为将来的扩展和更新预留了充足的修改空间。值得一提的是,新设计的 API 完全兼容于谷歌 TensorFlow 规范。

此次 API 更新的要点包括:

  1. 大部分软件层的 API 接口都和从前完全不同,特别是 Dense、BatchNormalization 和所有卷积相关的层。但由于软对设置了兼容接口,因此 Keras 1 的代码不经修改仍然可以在 Keras 2 上运行(但会出现打印警告);
  2. 生成器训练和评估方法相关的 API 也已经改变(包括 fit_generator、predict_generator 和 evaluate_generator 等)。同样,Keras 1 的代码仍然可以运行;
  3. 在 fit 中,nb_epoch 已经被更名为 epochs。而且,这一更改也适用于 API 转换接口;
  4. 许多图层的保存权重格式已更改。同样,以从前的权重保存的文件仍然可以在 Keras 2 中加载;
  5. objectives 模块已经被更名为 losses。

与此前不兼容的地方

由于 Keras 2 是一次重大的版本更新,因此无法避免地要引入一些与此前版本不兼容的地方,特别是对于高级用户而言,这些信息至关重要:

  1. 包括 MaxoutDense、TimeDistributedDense 和 Highway 在内的旧版软件层已经被永久删除;
  2. 许多旧版的指标(metrics)和损失函数(loss functions)被删除;
  3. BatchNormalization 层不再支持 mode 参数;
  4. 由于内核代码已经改变,因此自定义层必须全部更新。不过由于修改相对不大,因此更新应该不会太耗时,更新详情参见: https://keras.io/layers/writing-your-own-keras-layers/ 
  5. 所有使用未记录的(undocumented) Keras 函数的代码段可能都已经不可用;因此高级用户需要进行一些修改。

目前 Keras 2 已经在 Github 上开源: https://github.com/fchollet/keras 

用户可以通过 PyPI 直接更新: pip install keras --upgrade

本文作者:恒亮

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-10-25 10:37:10

深度学习库 Keras 2 重磅发布,与 TensorFlow 联系更紧密的相关文章

惊!C++竟然还能有这种操作——高性能深度学习库(DLL)

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud  作为一个深度学习的老司机,你是不是以为只有Python才能够玩转深度学习?如果是这样的话,那么本文作者可能就要教你怎么"做人"了.毕竟大牛的世界我们不懂! 第一个版本C++的深度学习库(DLL)1.0发布了!DLL是一个关注速度和易用性的神经网络库.大约4年前,作者就开始编写这个库.为了获得博士学位,作者需要一个很好的库来训练和使用受限制的玻尔兹曼机器(RBMs),因为当时还没有很好的库来完成这项

30个深度学习库:按Python和C++等10种语言分类

本文介绍了包括 Python.Java.Haskell等在内的一系列编程语言的深度学习库. 一.Python 1.Theano 是一种用于使用数列来定义和评估数学表达的 Python 库.它可以让 Python 中深度学习算法的编写更为简单.很多其他的库是以 Theano 为基础开发的: Keras 是类似 Torch 的一个精简的,高度模块化的神经网络库.Theano 在底层帮助其优化 CPU 和 GPU 运行中的张量操作. Pylearn2 是一个引用大量如随机梯度(Stochastic G

【Science】超越深度学习300倍, Vicarious发布生成视觉模型,LeCun批“这就是AI炒作的教科书”

最近大家都在探索"超越深度学习"的方法,"美国版DeepMind" Vicarious 近日在Science上发布的一项研究,使用不同于深度学习的方法,将数据使用效率提升了300多倍,"对于未来的通用人工智能有重要意义".该研究称,使用这种新的技术,他们攻破了网站常见的验证码防御,相当于通过了"反向图灵测试".LeCun对这家公司和他们的研究提出了尖锐的批评,说"这是AI炒作教科书式的例子".不过,支持Vi

Intel开源基于Spark的深度学习库BigDL

近日,Intel 开源了 BigDL,这是一个基于 Apache Spark 的分布式深度学习库.使用 BigDL ,用户可以将他们的深度学习应用程序作为标准的 Spark 程序,它可以直接运行在现有的 Spark 或 Hadoop 集群之上. 特性: 丰富的深度学习支持.BigDL 模仿 Torch,提供对深度学习的全方位支持,包括数值计算(通过Tensor)和高层次神经网络.此外,用户可以使用 BigDL 将预训练的 Caffe 或 Torch 模型加载到 Spark 程序中. 极其高的性能

英特尔开源分布式深度学习库BigDL:支持高性能大数据分析

近日,英特尔开源了一个运行在 Apache Spark 上的分布式深度学习库 BigDL,其可以利用已有的 Spark 集群来运行深度学习计算,并且还能简化从 Hadoop 的大数据集的数据加载. 开源地址>>> 据介绍,在 Xeon 服务器上的测试表明,BigDL 相比于 Caffe.Torch 或 TensorFlow 等开源框架实现了显著的速度提升.其速度可与主流的 GPU 相媲美,而且 BigDL 也能扩展到多达数十个 Xeon 服务器. BigDL 库支持 Spark 1.5.

Intel 开源 BigDL,基于 Spark 的深度学习库

近日,Intel 开源了 BigDL,这是一个基于 Apache Spark 的分布式深度学习库.使用 BigDL ,用户可以将他们的深度学习应用程序作为标准的 Spark 程序,它可以直接运行在现有的 Spark 或 Hadoop 集群之上. 特性: 丰富的深度学习支持.BigDL 模仿 Torch,提供对深度学习的全方位支持,包括数值计算(通过Tensor)和高层次神经网络.此外,用户可以使用 BigDL 将预训练的 Caffe 或 Torch 模型加载到 Spark 程序中. 极其高的性能

【深度学习笔记】(二)Hello, Tensorflow!

[深度学习笔记](二)Hello, Tensorflow! 一.安装 官方安装的方式很多种,本文采用Docker方式.Docker的深入使用文案很长很多,但我们都不需要,我们的主要目的还是Tensorflow,所以只需要基本的使用即可.PS:打开Tensorflow官网是需要翻墙的,所以上面的一些链接不能翻墙的情况下是打不开的,然鹅!Docker不需要翻墙就能打开,所以用Docker来安装Tensorflow就是为了绕墙而走. 1.Docker安装 既然不用翻墙,首先就是点我下载安装包,打开页面

这几天 AI 圈都在关注的深度学习库评测

2016 年是雷锋网(公众号:雷锋网) AI 科技评论非常重要的一年,我们围绕人工智能做了一系列的业界.学界.开发者报道,也请了一系列导师大牛过来给我们做技术解读的公开课,在给这些导师大牛提供了一个绝佳展示舞台的同时,也给读者们带来了最深度的公开课内容,下面是雷锋网 AI 科技评论年度盘点之语义识别篇. 深入 NLP---看中文分词如何影响你的生活点滴 嘉宾介绍:徐博士,约翰霍普金斯大学语言和语音实验室博士.2012年毕业后加入微软总部,先后在Bing和微软研究院从事自然语言处理和机器学习相关的

开源深度学习库BigDL在阿里云E-MapReduce上的实践

近些年来机器学习中的子领域深度学习成为一个热门的话题,特别是在围棋领域,谷歌的AlphaGo也使用了深度学习的技术. 在大数据领域,Spark MLlib是一个很流行的机器学习算法库,如果你想用Spark来做深度学习训练,MLlib还无法很好的支持.本文要介绍Intel开源的深度学习框架BigDL,他也是在Spark上的一个算法库,提供了全面的深度学习算法支持,包括数值计算(Tensor)和高阶神经网络等. 因为BigDL是在Spark上运行的,借助Spark平台的分布式扩展性,可以方便的扩展到