tensorflow简介以及与Keras的关系
原文地址:https://blog.csdn.net/li528405176/article/details/83857286
tensorflow是Google开源的基于数据流图的机器学习框架,支持python和c++程序开发语言。轰动一时的AlphaGo就是使用tensorflow进行训练的,其命名基于工作原理,tensor 意为张量(即多维数组),flow 意为流动。即多维数组从数据流图一端流动到另一端。目前该框架支持 Windows、Linux、Mac乃至移动手机端等多种平台。下图为其数据流动示意图。
Theano 基于 Python,是最早的深度学习开源框架。但是Theano框架从2017年开始已经停止更新
Theano 严格来说是一个擅长处理多维数组的 Python 库,十分适合与其它深度学习库结合起来进行数据探索,高效地解决多维数组的计算问题。它设计的初衷是为了执行深度学习中大规模神经网络算法的运算。其实,Theano 可以被更好地理解为一个数学表达式的编译器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,在 GPU 或 CPU 中高效运行。
Keras是基于TensorFlow和Theano(由加拿大蒙特利尔大学开发的机器学习框架)的深度学习库,是由纯python编写而成的高层神经网络API,也仅支持python开发。它是为了支持快速实践而对tensorflow或者Theano的再次封装,让我们可以不用关注过多的底层细节,能够把想法快速转换为结果。Keras默认的后端为tensorflow,如果想要使用theano可以自行更改。tensorflow和theano都可以使用GPU进行硬件加速,往往可以比CPU运算快很多倍。因此如果你的显卡支持cuda的话,建议尽可能利用cuda加速模型训练。
流行的机器学习框架一览表:(表引自:http://blog.51cto.com/zero01/2065598)