编辑:西和西 校对排版:吴双
Caffe
提到深度学习库就不得不提到Caffe,它是由Berkeley Vision and Learning Center建立的深度学习框架。Caffe本身并不是一个Python库,但它可提供绑定到Python上的编程语言。
特性:
1)模块化,且速度极快,能够运行很好的模型与海量数据;
2)在修改结构时,无需修改代码;
3)其模型与相应优化都是以文本而非代码形式给出,因此方便立即上手,被应用于学术界和产业界的各个方面。
Theano
Theano是一个Python库,用来定义、优化、评估涉及多维数组的数学表达式。
它提供了优良的数据结构来表示神经网络层,可以让用户轻松地编写DeepLearning模型,并提供运行在GPU上的选择。与Numpy的数组类似,对线性代数来说十分高效。
特性:
1)紧密集成NumPy——在Theano的编译函数中使用numpy.ndarray;
2)高效的符号分解——Theano替你计算一个或多个输入函数的推倒;
3)速度和稳定性优化——即使x非常小也能正确得到log(1+x)的结果;
4)透明使用GPU——使得执行数据密集型的计算速度高达CPU的140倍(仅对浮点数操作);
5)动态生成C语言代码——计算表达式更快速;
6)广泛的单元测试和自我验证——能检测和诊断许多类型的错误。
Tensorflow
TensorFlow由谷歌的机器智能研究机构内的Google Brain Team研究人员开发。与Theano类似,TensorFlow也是使用数据流图进行数值计算的开源库。二者相比,TensorFlow的主要优点是分布式计算,尤其是在多GPU的环境中。
Keras
Keras是一个简约且高度模块化的神经网络库,基于Theano和Python语言编写,支持GPU和CPU。它的设计参考了Torch,开发侧重于实现快速试验和创造新的深度学习模型。Keras库的编码风格非常简约、清晰。它把所有的要点用小类封装起来,这样一来便能够很容易地组合在一起并创造出一种全新的模型。
特性:
1)可以便捷、快速地建立原型(总体模块化、极简化、可扩展化);
2)支持任意连接方式(包括多输入多输出训练);
3)支持卷积网络和递归网络,以及两者的组合;
4)既可以轻松地构建基于序列的网络,也可以创建基于图形的网络。
Lasagne
Lasagne是Theano中用于构建和训练网络的轻量级库,它使用较少的类和方法尽可能依赖Theano的功能和数据类型,遵循Theano的规定。Lasagne和Keras具有某些类似功能,但并不像Keras一样是一个围绕着Theano的重包装库。简而言之,Lasagne的功能是Theano的低级编程和Keras的高级抽象之间的一个折中。