Tensorflow可能是最受欢迎,增长最快的机器学习框架。在Github拥有超过70000个点赞,并得到Google的支持,不仅拥有比Linux更多的点赞,还拥有大量的资源。
如果那都不能激起你的兴趣,我不知道还会有什么可以引起你的兴趣。
如果你以前一直在关注机器学习101系列,你会注意到我们已经使用sklearn框架来实现我们的模型。然而,当我们开始勇于进入神经网络,深度学习和一些算法的内部运作时,我们将开始使用Tensorflow框架,该框架具有访问更多低级API的能力,为我们提供在模型上更细致的控制。
因此,我们将花费一些时间熟悉Tensorflow及其设计理念,以便我们在后续教程中可以开始使用它,而无需介绍。
在本教程中,我们将讨论:
总体设计理念
可视化
涵盖常见用例的示例
它与机器学习有什么关系?
在官方白皮书中,Tensorflow被描述为“用于表达机器学习算法的接口和用于执行这种算法的实现”。 它比其他框架的主要优点是在各种设备上执行代码非常容易。这与它在开源之前的发展动机有关。 Google最初开发了Tensorflow来弥合研究与生产之间的差距,希望从研究到生产都不需要对代码进行编辑。
Tensorflow是用于表达机器学习算法的接口,以及用于执行这种算法的实现。
为了实现这一点,Tensorflow在幕后实现一个计算图; 在你的代码中,你只是定义那个图:张量的流动。
那么,什么是张量?
就像一个向量可以看作是一个数组或列表,标量(普通数字1, 2,PI),那么矩阵可以看作数组向量,张量可以认为是矩阵数组。所以张量实际上是一个n维矩阵。事实上,正如我们在编码示例中所看到的那样,这种架构在使进行机器学习时非常有意义。
流动是什么呢?
流动是张量如何在网络中传递。当张量传递时,它们的值和形状由图运算更新。
做个比喻,你可以把图形想象成一个拥有一系列工作站的汽车工厂。一个站可以装上汽车的轮子,另一个安装变速箱。然后,流程描述一个汽车骨架必须采取的路线,以便成为一个全功能的汽车。这个比喻中传递的张量是汽车原型或骨架。