一、TensorFlow概要
什么是TensorFlow?
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,是一个采用数据流图(data flow graphs),用于数值计算的开源的机器学习库。
Tensorflow的命名来源于本身的运行原理:Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,数据流图中的图就是我们所说的有向图。在图这种数据结构中包含两种基本元素:节点和边。这两种元素在数据流图中有自己各自的作用:节点用来表示要进行的数学操作,任何一种操作都有输入\输出,因此它也可以表示数据的输入的起点\输出的终点;边表示节点与节点之间的输入\输出关系,一种特殊类型的数据沿着这些边传递。这种特殊类型的数据在TensorFlow被称之为tensor,即张量,所谓的张量通俗点说就是多维数组。当我们向这种图中输入张量后,节点所代表的操作就会被分配到计算设备完成计算。TensorFlow就是张量从流图的一端流动到另一端的计算过程。
下面这张图可以帮我们了解Tensorflow的基本工作流程:
为什么要用TensorFlow?
TensorFlow既是一个实现机器学习算法的接口,同时也是执行机器学习算法的框架。它前端支持Python、C++、Go、Java等多种开发语言,后端使用C++、CUDA等写成。TensorFlow实现的算法可以在众多异构的系统上方便地移植,如Android、iPhone、CPU服务器,乃至大规模的GPU集群。除了执行深度学习算法,TensorFlow还可以用来实现很多其他算法,包括线性回归、逻辑回归、随机森林等。TensorFlow建立的大规模深度学习模型的应用场景也非常广,包括语音识别、自然语言处理、计算机视觉、机器人控制、信息抽取、药物研发、分子活动预测等,使用TensorFlow开发的模型也在这些领域获得了最前沿的成果。
TensorFlow有哪些特性?
· 灵活性:非严格的“神经网络”库。这意味着我们的计算只要能够表示为数据流图,就能够使用。