深度学习框架Keras简介
深度学习的框架Tensorflow,Pytorch,Keras,Theano..,每个都有它自身的优势,有的性能好,有的学习曲线平滑,有的部署方便。
这一小节,简单介绍一下Keras.
什么是Keras
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
如果你在以下情况下需要深度学习库,请使用 Keras:
- 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
- 同时支持卷积神经网络和循环神经网络,以及两者的组合。
- 在 CPU 和 GPU 上无缝运行。
查看文档,请访问 Keras.io。
Keras 兼容的 Python 版本: Python 2.7-3.6。
为什么选择 Keras?
在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。
Keras 优先考虑开发人员的经验
- Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
- 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
- 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,
tf.keras
作为 Keras API 可以与 TensorFlow 工作流无缝集成。
Keras 被工业界和学术界广泛采用
截至 2018 年中期,Keras 拥有超过 250,000 名个人用户。与其他任何深度学习框架相比,Keras 在行业和研究领域的应用率更高(除 TensorFlow 之外,且 Keras API 是 TensorFlow 的官方前端,通过 tf.keras
模块使用)。
您已经不断与使用 Keras 构建的功能进行交互 - 它在 Netflix, Uber, Yelp, Instacart, Zocdoc, Square 等众多网站上使用。它尤其受以深度学习作为产品核心的创业公司的欢迎。
Keras也是深度学习研究人员的最爱,在上载到预印本服务器 arXiv.org 的科学论文中被提及的次数位居第二。Keras 还被大型科学组织的研究人员采用,特别是 CERN 和 NASA。
Keras 可以轻松将模型转化为产品
与任何其他深度学习框架相比,你的 Keras 模型可以在更广泛的平台上轻松部署:
- 在 iOS 上,通过 Apple’s CoreML(苹果为 Keras 提供官方支持)。这里有一个教程。
- 在 Android 上,通过 TensorFlow Android runtime,例如:Not Hotdog app。
- 在浏览器中,通过 GPU 加速的 JavaScript 运行时,例如:Keras.js 和 WebDNN。
- 在 Google Cloud 上,通过 TensorFlow-Serving。
- 在 Python webapp 后端(比如 Flask app)中。
- 在 JVM 上,通过 SkyMind 提供的 DL4J 模型导入。
- 在 Raspberry Pi 树莓派上。
Keras 支持多个后端引擎,不会将你锁定到一个生态系统中
你的 Keras 模型可以基于不同的深度学习后端开发。重要的是,任何仅利用内置层构建的 Keras 模型,都可以在所有这些后端中移植:你可以用一种后端训练模型,再将它载入另一种后端中(例如为了发布的需要)。支持的后端有:
- 谷歌的 TensorFlow 后端
- 微软的 CNTK 后端
- Theano 后端
亚马逊也正在为 Keras 开发 MXNet 后端。
如此一来,你的 Keras 模型可以在 CPU 之外的不同硬件平台上训练:
- NVIDIA GPU
- Google TPU,通过 TensorFlow 后端和 Google Cloud
- OpenCL 支持的 GPU, 比如 AMD, 通过 PlaidML Keras 后端
Keras 拥有强大的多 GPU 和分布式训练支持
- Keras 内置对多 GPU 数据并行的支持。
- 优步的 Horovod 对 Keras 模型拥有一流的支持。
- Keras 模型可以被转换为 TensorFlow Estimators 并在 Google Cloud 的 GPU 集群上训练。
- Keras 可以在 Spark(通过 CERN 的 Dist-Keras)和 Elephas 上运行。
Keras 的发展得到深度学习生态系统中的关键公司的支持
Keras 的开发主要由谷歌支持,Keras API 以 tf.keras
的形式包装在 TensorFlow 中。此外,微软维护着 Keras 的 CNTK 后端。亚马逊 AWS 正在开发 MXNet 支持。其他提供支持的公司包括 NVIDIA、优步、苹果(通过 CoreML)等。
相关文章
- 深度学习四大框架之争(Tensorflow、Pytorch、Keras和Paddle)
- Spring MVC框架学习(二)---- 使用原生的配置 熟悉 SpringMVC 的执行流程
- 学习爬虫之Scrapy框架学习(六)–1.直接使用scrapy;使用scrapy管道;使用scrapy的媒体管道类进行猫咪图片存储。媒体管道类学习。自建媒体管道类存储图片
- Celery 框架学习笔记
- zigbee学习之路(十二):zigbee协议原理介绍
- labuladong的算法小抄之js实现-第0章-学习算法和刷题的框架思维
- 6个机器学习可解释性框架!
- ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?
- MySQL存储过程学习
- 高效学习:成为学习高手的5个方法
- 吴恩达机器学习IV
- 手把手教你从零实现一个深度学习框架(附代码实现)
- Flask框架实现注册加密功能详解【Flask企业课学习】
- 原创 | 让你捷足先登的深度学习框架
- Java基础学习笔记十六 集合框架(二)详解编程语言
- 主流深度学习框架汇总与对比
- 预告:MXNet火了,AI从业者该如何选择深度学习开源框架丨硬创公开课
- AI 从业者该如何选择深度学习开源框架丨雷锋网公开课
- 盘点四大民间机器学习开源框架:Theano、Caffe、Torch 和 SciKit-learn
- 学习MySQL数据库:第四版详解(mysql第4版)
- F8 2017 | Facebook 开源全新深度学习框架 Caffe2,让 AI 从云端走向终端
- python网络编程学习笔记(10):webpy框架
- PythonORM框架SQLAlchemy学习笔记之安装和简单查询实例