什么是Keras?
Keras是一个用Python编写的开源神经网络库,运行在Theano或Tensorflow之上。它采用模块化设计,速度快,易于使用。由Google工程师FrançoisChollet开发。
Keras不处理低级计算。相反,它使用另一个库来执行它,称为"后端。因此Keras是低级API的高级API包装器,能够在TensorFlow,CNTK或Theano之上运行。
Keras高级API处理我们制作模型,定义图层或设置多个输入输出模型的方式。在这个级别,Keras还使用损失和优化函数编译我们的模型,使用拟合函数训练过程。Keras不处理低级API,例如图层,张量或其他变量的底层操作,因为它已由"Backend"引擎处理。
什么是Backend?
Backend是Keras中的一个术语,它可以在其他库(如Tensorflow或Theano)的帮助下执行所有低级计算,如张量积,卷积和许多其他事物。因此,"Backend引擎"将执行模型的计算和开发。Tensorflow是默认的"Backend引擎",但可以在配置中更改它。
Theano,Tensorflow和CNTK
Theano是一个开源项目,由加拿大魁北克省蒙特利尔大学的MILA小组开发。这是第一个广泛使用的框架。它是一个Python库,可以帮助使用Numpy或Scipy进行数学运算的多维数组。Theano可以使用GPU进行更快的计算,它还可以自动构建用于计算梯度的符号图。在其网站上,Theano声称它可以识别数值不稳定的表达式并使用更稳定的算法计算它们,这对灵活的表达式非常有用。
Tensorflow是深度学习框架中的后起之秀。由Google的Brain团队开发,它是最受欢迎的深度学习工具。具有许多功能,研究人员有助于为深度学习目的开发此框架。
Keras的另一个引擎是Microsoft Cognitive Toolkit或CNTK。它是由Microsoft团队开发的开源深度学习框架。它可以在多GPU或多机上运行,用于大规模培训深度学习模型。在某些情况下,据报道CNTK比其他框架如Tensorflow或Theano更快。
Keras的优点
快速部署,易于理解
Keras可以非常快速地建立网络模型。如果你想用几行制作一个简单的网络模型,Keras可以帮助你。
1. from keras.models import Sequential
2. from keras.layers import Dense, Activation
3.
4. model = Sequential()
5. model.add(Dense(64, activation='relu', input_dim=50)) #input shape of 50
6. model.add(Dense(28, activation='relu')) #input shape of 50
7. model.add(Dense(10, activation='softmax'))
基于调用方便的API,这个调用过程可以容易理解。
大型社区支持
有很多AI社区使用Keras进行深度学习框架,并向公众发布他们的代码以及教程。
有多个后端
您可以选择Tensorflow,CNTK和Theano作为Keras的后端。您可以根据需要为不同的项目选择不同的后端。每个后端都有自己独特的优势。
跨平台且易于模型部署
通过各种支持的设备和平台,您可以在任何设备上部署Keras
· iOS与CoreML
· Android版采用Tensorflow Android,
· 支持.js的Web浏览器
· 云引擎
多GPU支持
您可以在单个GPU上训练Keras或一次使用多个GPU。因为Keras内置了对数据并行性的支持,因此它可以处理大量数据并加快培训所需的时间。
在Linux中安装Keras
要使用Tensorflow作为后端引擎启用Keras,需要先安装Tensorflow。运行此命令以使用CPU安装tensorflow(无GPU)
pip install --upgrade tensorflow
如果要为tensorflow启用GPU支持,可以使用此命令
pip install --upgrade tensorflow-gpu
进入Python以查看tensorflow的安装是否成功
$ python Python 3.6.4 (default, Mar 20 2018, 11:10:20) [GCC 5.4.0 20160609] on linux Type "help