初次使用 TensorFlow

前言

TensorFlow™ 是一个使用数据流图进行数值计算的开源软件库。图中的节点代表数学运算, 而图中的边则代表在这些节点之间传递的多维数组(张量)。

TensorFlow 在机器学习、分布式系统方面都非常值得学习,而这些又是自然语言处理等领域的基础。此外,TensorFlow 还处在一个早期采用者使用的阶段,日后的应用前景广阔,目前可以做的工作还很多。因此 TensorFlow 值得深入学习。

本文针对 mac 10.13 python 3.6.1 版本,TensorFlow 1.3 版本。

论文概述

Tensorflow

实现机器学习算法和运行机器学习算法的接口。

用 Tensorflow 表示的计算过程几乎不用修改即可运行在从手机到分布式系统等各种环境下。

Tensorflow 的通用性使其部署和维护成本较低。

Tensorflow 支持各种机器学习算法的研究和生产。

概念

有向图

node 节点表示操作实例 instantiation of an operation.

normal edge 普通边表示任意维度的数组 tensor 进行流动

special edge 特殊边是控制依赖,control dependencies,表示来源操作执行结束,目标操作才能开始执行。

operation 操作是抽象的计算,有名字,例如 add。有属性,常用于实现多态。

kernel 内核是特定设备上操作的实现。

Tensorflow 二进制通过 registration mechanism 生成 operation 和 kernel 集,可以与其他 operation 和 kernel linking。

session extend 增加其他节点和边

run 目标为求得所需的变量,会计算传递闭包,并 按照依赖执行合适的节点计算。

只创建 一次 session,多次运行 run 执行整个图或部分图。

variable 变量是经历多次图计算仍能够保留的 tensor。

运行环境

官方安装指南 https://www.tensorflow.org/install/。

个人在实际使用用直接 pip install tensorflow 就好了。

由于现在代码非常活跃,如果遇到 bug,多在 https://github.com/tensorflow/tensorflow/issues 找找解决方案。

目标

https://github.com/hieast/text-classification-cnn-rnn

相关网站

https://www.tensorflow.org/

http://www.infoq.com/cn/articles/introduction-of-tensorflow-part01

坚持原创技术分享,您的支持将鼓励我继续创作!