TensorFlow学习之路1-TensorFlow介绍

TensorFlow是一个采用数据流图(data flow graphs),用于数据计算的开源软件库。

什么是数据流图?

TensorFlow的数据流图是由“节点”(nodes)和“线”(edges)组成的有向无环图来描述数学计算。“节点”一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“TensorFlow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行计算。

TensorFlow的特点:

  高度的灵活性

    TensorFlow不是一个严格的“神经网络”库。只要你可以将你的计算表示为一个数据流图,你就可以使用TensorFlow。你来构建图,描写驱动计算的内部循环。TensorFlow提供了有用的工具来帮助用户组装“子图”(常用于神经网络),当然用户也可以自己在TensorFlow基础上写自己的“上层库”。定义顺手好用的新复合操作和写一个python函数一样容易,而且不用担心性能损耗。当然万一找不到想要的底层数据操作,你也可以自己写一点C++代码来丰富底层的操作。

  自动求微分

    基于梯度的机器学习算法会受益于TensorFlow自动求微分的能力。作为TensorFlow用户,你只需要定义预测模型的结构,将这个结构和目标函数(objective function)结合在一起,并添加数据,TensorFlow将自动为你计算相关的微分导数。计算某个变量相对于其他变量的导数仅仅是通过扩展你的图来完成的,所以你能一直清楚看到究竟在发生什么。

 

参考资料:

TensorFlow中文社区

posted on 2018-10-16 11:37  Peyton_Li  阅读(339)  评论(0编辑  收藏  举报

导航