关于 TensorFlow
TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。(参考点击打开链接)
学习资料链接:http://wiki.jikexueyuan.com/project/tensorflow-zh/
TensorFlow v1.0.0-rc2 :http://www.open-open.com/news/view/41c75dc0
关于 Theano
Theano是在BSD许可证下发布的一个开源项目,是由LISA集团(现MILA)在加拿大魁北克的蒙特利尔大学(Yoshua Bengio主场)开发。它是用一个希腊数学家的名字命名的。
Python的核心Theano是一个数学表达式的编译器。它知道如何获取你的结构,并使之成为一个使用numpy、高效本地库的非常高效的代码,如BLAS和本地代码(C++),在CPU或GPU上尽可能快地运行。
它巧妙的采用一系列代码优化从硬件中攫取尽可能多的性能。如果你对代码中的数学优化的基本事实感兴趣,看看这个有趣的名单。
Theano表达式的实际语法是象征性的,可以推送给初学者用于一般软件开发。具体来说,表达式是在抽象的意义上定义,编译和后期是用来进行计算。
它是为深度学习中处理大型神经网络算法所需的计算而专门设计的。它是这类库的首创之一(发展始于2007年),被认为是深度学习研究和开发的行业标准。
和 TensorFlow 类似,Theano 是一个比较低层的库。也因此它并不适合深度学习,而更适合数值计算优化。它支持自动的函数梯度计算,带有 Python 接口并集成了 Numpy,这使得它从一开始就成为了通用深度学习领域最常使用的库之一。
今天,Theano 依然效果良好,但由于它不支持多 GPU 和水平扩展,在 TensorFlow 的热潮下(它们针对同一个领域),Theano 已然开始被遗忘了学习资料链接:http://outlace.com/Beginner-Tutorial-Theano/
关于 keras
Keras 是一个非常高层的库,可以工作在 Theano 和 TensorFlow(可以配置)之上。另外,Keras 强调极简主义——你只需几行代码就能构建一个神经网络。学习资料链接:http://keras-cn.readthedocs.io/en/latest/backend/