只是把一些文字部分复制出来方便看,完整还是参考源地址,参考文章https://keras.io/zh/
写在前面:
第一次接触Keras,用自己的话简单概括一下什么事Keras,(不准确之处欢迎批评指出) :
Keras是一个库,基于python的深度学习库(已经用python编写好的高级神经网络API),将一些机器学习常用方法(例如神经网络层、损失函数、优化器、初始化方法、激活函数和正则化方法等)组装起来方便用户调用,也可以自己编写新模块,易扩展,易添加。Keras没有特定格式的单独配置文件,Keras的核心数据结构是model(一种组织网络层的方式),定义在python代码中。
我们可以用其完成模型构建、堆叠、配置和优化,然后用模型批量训练数据,(自动或手动),训练结束以后对模型进行评估或对数据生成预测。
Keras: 基于 Python 的深度学习库
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?
Keras (κέρας) 在希腊语中意为 号角 。它来自古希腊和拉丁文学中的一个文学形象,首先出现于 《奥德赛》 中, 梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας (象牙) / ἐλεφαίρομαι (欺骗)。
Keras 最初是作为 ONEIROS 项目(开放式神经电子智能机器人操作系统)研究工作的一部分而开发的。
"Oneiroi 超出了我们的理解 - 谁能确定它们讲述了什么故事?并不是所有人都能找到。那里有两扇门,就是通往短暂的 Oneiroi 的通道;一个是用号角制造的,一个是用象牙制造的。穿过尖锐的象牙的 Oneiroi 是诡计多端的,他们带有一些不会实现的信息; 那些穿过抛光的喇叭出来的人背后具有真理,对于看到他们的人来说是完成的。" Homer, Odyssey 19. 562 ff (Shewring translation).