学习 Tensorflow 到底在学什么

学习 Tensorflow 到底在学什么

本文记录一些对 Tensorflow 学习的一点儿想法。

Tensorflow 是用来表达和执行机器学习算法的系统,可以在电脑端移动端甚至浏览器上运行。Tensorflow 不像是一个工具包倒像是“语言”一种用来描述机器学习算法的语言。NLTK, OpenCV, Scikit-learn 可以算是工具包,开箱即用。但是 Tensorflow 给我们提供的功能远比这复杂,虽然 Tensorflow 也提供了 Dataset、train、inference, Serving 等相关的接口,好像 Tensorflow 也在致力于打造一个机器学习算法开发和部署的 papline . 我简单总结一些 Tensorflow 主要做的事情 :

  1. 机器学习算法的表达
  1. 自动微分
  2. 实现计算可以在不同的设备,不同的系统上运行
  3. 分布式计算实现

我们通常只需要关注第一部分,分布式的实现和在各种设备上的计算,Tensorflow 会给我们提供各种方便的接口。

Tensorflow 可以分为两部分:client 和 master , client 主要有 Python 和 C++ 的接口,用来描述各种计算,比如深度学习算法。master 负责把各种计算放到对应的设备上,以及分布式的实现等等各种复杂的问题。lient 和 master 之间通过 sessin 来进行交互。

Tensorflow 把所有的计算(或者机器学习算法)抽象成有向图,有些类似 Spark 中的数据流图。client 通常可以用来构造计算图,计算图的节点被叫做一个 operation 。每个节点有多个或 0 个输入,输出也一样,各个 operation 之间的依赖关系就是边,在边上流动的是数据,用 Tensor 表示,Tensor 相当于一个多维数组,数组中的元素可以是不同类型 .

作为一个使用者想用 Tensorflow 来实现机器学习算法,就需要对各种类型的 operation 很了解,更进一步可以自己实现自定义的 operation 就更加自由了。通常情况下我们不需要自己去实现 operation 。Tensorflow 对各种 operation 做了分类:

所以如果说学好 Tensorflow 的关键是在理解架构之上对各种 operation 的理解和使用应该不会错。

还是推荐仔细读一下 Tensorflow white papers

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章