当前位置: 首页>>技术教程>>正文


深度学习库Keras入门

qingchuan 技术教程, 机器学习, 算法&结构 , , 去评论

Keras简介

Keras是一个高级神经网络API,用Python编写,能够运行在TensorFlow或者Theano之上。它的开发重点是实现快速实验。从想法到结果延迟很小,是做好研究的重要途径。

keras

如果您需要一个深度学习库,请使用Keras,因为:

  • 允许简单快速的原型(通过用户友好,模块化和可扩展性)。
  • 支持卷积神经网络和循环神经网络,以及两者的组合。
  • 在CPU和GPU上无缝运行。
    Keras当前兼容于:Python 2.7-3.5

Keras设计原则

  • 用户友好 Keras是为人类而不是机器设计的API。它以用户体验为中心。 Keras遵循降低认知负担的最佳实践:它提供一致和简单的API,它可以最大限度地减少常见用例所需的用户操作数量,并根据用户错误提供清晰可行的反馈。
  • 模块化 模块化是指独立的、完全可配置的模块的序列或图形,能够以很少的限制组合到一起。特别地,神经层,损失函数,优化器,初始化方案,激活函数,正则化方案都是独立的模块,您可以结合来创建新的模型。
  • 易扩展性 很容易添加新模块(作为新类和函数),现有的模块提供了很多示例。能够轻松创建新模块,使得Keras适合高级研究。
  • 使用Python语言 不需要单独的模型配置文件。模型使用Python代码进行描述,它是紧凑的,易于调试的,并且易于扩展。

30秒入门Keras

Keras的核心数据结构是一个模型(model),是组织层次的一种方式。最简单的模型是序列(Sequential)模型,即多个层的线性堆叠。对于更复杂的体系结构,您应该使用Keras functional API,,这允许构建层的任意图结构。

以下是序列Sequential模型:

from keras.models import Sequential

model = Sequential()

堆叠层只需要调用`.add(),非常简单:

from keras.layers import Dense, Activation

model.add(Dense(units=64, input_dim=100))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(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 and y_train are Numpy arrays --just like in the 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的更深入的教程,您可以查看:

在代码库的示例文件夹中(examples folder),您会发现更高级的模型:使用记忆网络的问答,使用堆叠LSTM的文本生成等等。

Keras安装

Keras使用了如下依赖:

  • numpy, scipy
  • yaml
  • HDF5h5py(可选,如果您使用模型保存/加载功能)
  • 可选,但如果您使用CNN,建议使用:cuDNN
  • TensorFlow(使用TensorFlow作为后端)
  • Theano(使用Theano作为后端)

要安装Keras,请cd到Keras文件夹并运行install命令:

sudo python setup.py install

您还可以从PyPI安装Keras:

sudo pip install keras

默认情况下,Keras将使用TensorFlow作为张量操纵库。要切换到其他后端(Theano), 参考这里

本文由《纯净的天空》出品。文章地址: https://vimsky.com/article/3500.html,未经允许,请勿转载。