前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习库 Keras 2 重磅发布,与 TensorFlow 联系更紧密

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

作者头像
AI研习社
发布2018-03-29 14:35:43
8300
发布2018-03-29 14:35:43
举报
文章被收录于专栏:AI研习社

昨天,著名深度学习开源库 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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • █ 融入 TensorFlow,成为深度学习的通用语言
  • █ 重新设计,成为第一个长期支持的 API
  • █ 与此前不兼容的地方
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档