获取方案
当前位置:
关于深度学习框架 TensorFlow、Theano 和 Keras
来源: | 作者:tpl-ceae956 | 发布时间: 2020-04-02 | 2565 次浏览 | 分享到:
关于深度学习框架 TensorFlow、Theano 和 Keras三种框架的解读。

【TensorFlow】

1、TensorFlow是啥?

TensorFlow是Google开发的一款神经网络的Python外部的结构包,也是一个采用数据流图来进行数值计算的开源软件库。TensorFlow 让我们可以先绘制计算结构图, 也可以称是一系列可人机交互的计算操作, 然后把编辑好的Python文件 转换成 更高效的C++,并在后端进行计算。

2、为什么用TensorFlow?

1)TensorFlow 无可厚非地能被认定为 神经网络中最好用的库之一。

2)它擅长的任务就是训练深度神经网络

3)通过使用TensorFlow我们就可以快速的入门神经网络,大大降低了深度学习(也就是深度神经网络)的开发成本和开发难度。

4)TensorFlow 的开源性, 让所有人都能使用并且维护, 巩固它。使它能迅速更新,提升。

【Theano】

1、Theano是啥?

Theano 是神经网络python机器学习的模块,和TensorFlow非常类似,可以说是TensorFlow的鼻祖。TensorFlow基于 Theano进行了很多的升级改进。

2、为什么用Theano?

1)Tensowflow 目前只能在 MacOS 和 Linux, theano 不仅可以在前两个系统中运行, 还可以在 Windows 系统下运行。

2)Theano 可以使用 GPU 进行运算,用GPU运行比CPU快100倍左右,theano 是比较优秀的 python 模块。 

3)对于初学者来说,如果可以在 theano 和 tensorflow 中选择, 个人推荐使用 tensowflow. tensowflow 是比较商业化的模块,用起来没有theano 学术化。如果是使用机器学习进行学术性研究,网上已经有很多使用 theano 的学术性资料。所以 theano 在这种情况下是值得推荐的。

【Keras】

1、Keras是啥?

Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化 。Keras在代码结构上完全由面向对象方法编写,高度模块化并具有可扩展性,其调用机制和说明文档有将用户体验和使用难度纳入考虑,简化了很多复杂算法的实现难度  。Keras支持现代人工智能领域的主流算法,包括前馈结构和递归结构的深度神经网络,也可用和参与构建统计学习模型。

2、为什么用Keras?

1)Keras是对Theano进行了包装,直接使用Keras可以减少很多细节程序的书写,它是模块儿化的,使用比较方便。

2)如果说 Tensorflow 或者 Theano 神经网络方面的巨人. 那 Keras 就是站在巨人肩膀上的人. Keras 是一个兼容 Theano 和 Tensorflow 的神经网络高级包, 用他来组件一个神经网络更加快速, 几条语句就搞定了. 而且广泛的兼容性能使 Keras 在 Windows 和 MacOS 或者 Linux 上运行无阻碍。

3、兼容 backend

Keras 可以基于两个Backend(也就是Keras 基于什么东西来做运算)

一个是 Theano,一个是 Tensorflow(是默认的后端)。

如果我们选择Theano作为Keras的Backend, 那么Keras就用 Theano 在底层搭建你需要的神经网络;

同样,如果选择 Tensorflow 的话呢,Keras 就使用 Tensorflow 在底层搭建神经网络。

目前 Tensorflow 支持 Mac 和 Linux 系统,而 Theano 不但支持包括 Mac 和 Linux,还支持 Windows 系统, 所以我们就可以选择自己可以用的 Backend 就可以。