Keras学习手册(一),开篇-使用 Python3 的Deep Learning 库

跟風遠走 提交于 2020-04-08 08:31:19

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30656.html

===

你恰好发现了 Keras。

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

如果你在以下情况下需要深度学习库,请使用 Keras:

  • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
  • 同时支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在 CPU 和 GPU 上无缝运行。

查看文档,请访问 Keras.io。

Keras 兼容的 Python 版本: Python 2.7-3.6


指导原则

  • 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
  • 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
  • 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

快速开始:30 秒上手 Keras

Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。

Sequential 模型如下所示:

from keras.models import Sequential  
  
model = Sequential()  

可以简单地使用 .add() 来堆叠模型:

from keras.layers import Dense  
  
model.add(Dense(units=64, activation='relu', input_dim=100))  
model.add(Dense(units=10, activation='softmax'))  

在完成了模型的构建后, 可以使用 .compile() 来配置学习过程:

model.compile(loss='categorical_crossentropy',  
              optimizer='sgd',  
              metrics=['accuracy'])  

如果需要,你还可以进一步地配置你的优化器。Keras 的核心原则是使事情变得相当简单,同时又允许用户在需要的时候能够进行完全的控制(终极的控制是源代码的易扩展性)。

model.compile(loss=keras.losses.categorical_crossentropy,  
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))  

现在,你可以批量地在训练数据上进行迭代了:

# x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。  
model.fit(x_train, y_train, epochs=5, batch_size=32)  

或者,你可以手动地将批次的数据提供给模型:

model.train_on_batch(x_batch, y_batch)  

只需一行代码就能评估模型性能:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)  

或者对新的数据生成预测:

classes = model.predict(x_test, batch_size=128)  

构建一个问答系统,一个图像分类模型,一个神经图灵机,或者其他的任何模型,就是这么的快。深度学习背后的思想很简单,那么它们的实现又何必要那么痛苦呢?

有关 Keras 更深入的教程,请查看:

  • 开始使用 Sequential 模型
  • 开始使用函数式 API

在代码仓库的 examples 目录中,你会找到更多高级模型:基于记忆网络的问答系统、基于栈式 LSTM 的文本生成等等。


安装指引

在安装 Keras 之前,请安装以下后端引擎之一:TensorFlow,Theano,或者 CNTK。我们推荐 TensorFlow 后端。

  • TensorFlow 安装指引。
  • Theano 安装指引。
  • CNTK 安装指引。

你也可以考虑安装以下可选依赖

  • cuDNN (如果你计划在 GPU 上运行 Keras,建议安装)。
  • HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。
  • graphviz 和 pydot (用于可视化工具绘制模型图)。

然后你就可以安装 Keras 本身了。有两种方法安装 Keras:

  • 使用 PyPI 安装 Keras (推荐):
sudo pip install keras  

如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo:

pip install keras  

  • 或者:使用 GitHub 源码安装 Keras:

首先,使用 git 来克隆 Keras:

git clone https://github.com/keras-team/keras.git  

然后,cd 到 Keras 目录并且运行安装命令:

cd keras  
sudo python setup.py install  


配置你的 Keras 后端

默认情况下,Keras 将使用 TensorFlow 作为其张量操作库。请跟随这些指引来配置其他 Keras 后端。


技术支持

你可以提出问题并参与开发讨论:

  • Keras Google group。
  • Keras Slack channel。 使用 这个链接 向该频道请求邀请函。

你也可以在 GitHub issues 中发布漏洞报告和新功能请求(仅限于此)。注意请先阅读规范文档。


为什么取名为 Keras?

Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。

Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。

"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).

为什么选择 Keras?

在如今无数深度学习框架中,为什么要使用 Keras 而非其他?以下是 Keras 与现有替代品的一些比较。


Keras 优先考虑开发人员的经验

  • Keras 是为人类而非机器设计的 API。Keras 遵循减少认知困难的最佳实践: 它提供一致且简单的 API,它将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
  • 这使 Keras 易于学习和使用。作为 Keras 用户,你的工作效率更高,能够比竞争对手更快地尝试更多创意,从而帮助你赢得机器学习竞赛。
  • 这种易用性并不以降低灵活性为代价:因为 Keras 与底层深度学习语言(特别是 TensorFlow)集成在一起,所以它可以让你实现任何你可以用基础语言编写的东西。特别是,tf.keras 作为 Keras API 可以与 TensorFlow 工作流无缝集成。

Keras 被工业界和学术界广泛采用

Deep learning 框架排名,由 Jeff Hale 基于 7 个分类的 11 个数据源计算得出

截至 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)等。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!