关于深度学习框架 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 在这种情况下是值得推荐的。
3、Theano的安装
4、Theano的用法
 
【Keras】
1、Keras是啥?
——Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化 [1]  。Keras在代码结构上完全由面向对象方法编写,高度模块化并具有可扩展性,其调用机制和说明文档有将用户体验和使用难度纳入考虑,简化了很多复杂算法的实现难度 [1]  。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 就可以。
 
若要修改Backend:
打开  C:\Users\admin(当前用户名)\.keras ,修改文件夹内的keras.json文件如下:

 查看Keras版本的命令:

 

 


 

【Reference】

1、莫凡Python : https://morvanzhou.github.io/

2、keras+theano安装教程:https://blog.csdn.net/qq_37816453/article/details/81903339

 
 

posted on 2019-07-02 15:49  CuriousZero  阅读(12239)  评论(0编辑  收藏  举报

导航