标题: Keras 入门 探究此基于 Python 的深度学习库 [打印本页] 作者: look_w 时间: 2018-3-17 11:35 标题: Keras 入门 探究此基于 Python 的深度学习库
Keras 是基于 Python 的深度学习库,不同于其他深度学习框架。 充当神经网络的高级 API 规范。它既可作为用户界面,也可扩展它在其中运行的其他深度学习框架后端的功能。
Keras 起初是作为学术界热门 Theano 框架的简化前端。此后,Keras API 成为了 Google TensorFlow 的一部分。Keras 正式支持 Microsoft Cognitive Toolkit (CNTK)、Deeplearning4J,不久之后还将支持 Apache MXNet。
鉴于获得了广泛的支持,Keras 作为框架间迁移工具的地位已不可撼动。开发人员不仅可以移植深度学习神经网络算法和模型,还可以移植预先训练的网络和权重。
关于 KerasKeras 名称的起源
Chollet 创建了 Keras 作为开放式神经电子智能机器人操作系统 (ONEIROS) 机器人研究项目的神经网络的 API。ONEIROS 这一名称是对古希腊史诗《奥德赛》的致意,在这部史诗中,神话人物 Oneiroi(Oneiros 的单数形式)为人类指明了两条进入梦境的路:一条路穿过宏伟的象牙之门进入噩梦,另一条路则穿过低矮的兽角之门,最终呈现一片神圣的景象。Keras 在希腊语中意为角,这个名称非常合适,因为 Keras API 旨在为与神经网络协同使用提供一条捷径。
Keras 是开源 Python 包,由麻省理工学院 (MIT) 许可发行,由 François Chollet、Google、Microsoft 和其他贡献者共同持有该软件的部分版权。
Keras 前端支持在研究中快速构建神经网络模型的原型。此 API 易于学习和使用,并且具有易于在框架间移植模型的附加优势。
由于 Keras 的独立性,使用时无需与运行它的后端框架进行交互。Keras 具有自己的图形数据结构,用于定义计算图形:它不依靠底层后端框架的图形数据结构。此方法使您可以免于学习对后端框架进行编程,正因如此,Google 已选择将 Keras API 添加到其 TensorFlow 核心。
本文将概述 Keras,包括此框架的优势、支持的平台、安装注意事项以及支持的后端。
Keras 的优势为何要使用 Keras?它具有多种优势,包括:
更加良好的深度学习应用程序用户体验 (UX)。Keras API 对用户友好。此 API 经过精心设计、面向对象且灵活易用,因而改善了用户体验。研究人员无需使用可能十分复杂的后端即可定义全新深度学习模型,从而实现了更简洁明了的代码。
无缝 Python 集成。Keras 是本机 Python 包,能够轻松访问整个 Python 数据科学生态系统。例如,Python Scikit-learn API 也可以使用 Keras 模型。熟悉后端(如 TensorFlow)的开发人员同样可以使用 Python 来扩展 Keras。
Microsoft Azure:您可以在 Microsoft 数据科学虚拟机系列的 Microsoft Azure 机器实例上以 CNTK 后端安装 Keras,仅使用 CPU 或者包含最多四个 K80 GPU 都可。
将 Keras 用作其他框架的 APIKeras 各层及模型均与纯 TensorFlow 张量完全兼容;因此,Keras 为 TensorFlow 提供了良好的模型定义附件。您甚至可以同时使用 Keras 和其他 TensorFlow 库。Keras 现已成为 TensorFlow 核心的正式组成部分。有关详细信息,请阅读此。
从 TensorFlow 后端切换至其他某个正式支持的 Keras 后端十分简单,只需在 JavaScript 对象表示法 (JSON) 配置文件中进行一项更改即可。有关详细信息,请参阅 。
目前,可以使用 Keras 作为以下这些框架的 API:
Keras 与 Theano。最近淘汰的 Theano 是 Keras 最先支持的后端,后被 TensorFlow 所取代。TensorFlow 支持大部分 Theano 开发的 Keras 模型。要使用 GPU 运行 Theano 后端,请遵循中有关 Theano 的部分来操作。
Keras 与 CNTK。Keras 对 Microsoft Cognitive Toolkit (CNTK) 后端的支持仍处于测试阶段。您可以阅读 ,了解更多详细信息和资料。
Keras 与 Deeplearning4j。Deeplearing4j 可使用其 deeplearing4j-modelimport 模块来导入大部分 Keras 模型。目前,Deeplearning4j 可支持导入有关层次、损失、激活、初始化程序、正则化项、约束条件、度量标准和优化程序的模型信息。有关更多信息,请访问 。
Keras 与 Apache MXNet。Keras 对 Apache MXNet 后端的支持仍处于早期测试阶段。这是由 Distributed (Deep) Machine Learning Community 主导的工作。此后端正逐步变为另一个正式支持的 Keras 后端。此 中提供了该后端的代码。
结束语Keras 不同于其他深度学习框架。按照设计,它旨在成为神经网络建模的 API 规范。它可作为用户界面,也可扩展它在其中运行的其他深度学习框架后端的功能。
Keras API 已成为 Google TensorFlow 的一部分。Keras 同时还正式支持 CNTK、Deeplearning4j,很快就会支持 Apache MXNet。
由于这一广泛的支持,Keras 已成为了实现框架间迁移的实际工具。开发人员不仅可以移植深度学习神经网络算法和模型,还可以移植预先训练的网络和权重