50

学习 Tensorflow 到底在学什么

 5 years ago
source link: http://midday.me/article/e2203f1e95444bbab52cf32bfab10b32?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

学习 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 做了分类: yMNnMbB.jpg!web

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK