"TensorFlow is an Open Source Software Library for Machine INtenlligence"
本笔记参考tensorflow.org的教程,翻译并记录作者的学习过程,仅供参考,如有不当之处,请及时指出并多多包涵。
TensorFlow是一款开源的数学计算软件,使用data flow graphs的形式进行计算。这种灵活的架构允许我们使用相同的API在单或多CPUs或GPU,servers设置移动设备上进行计算。
Data Flow Graph: 使用有向图的节点和边共同描述数学计算。graph中的nodes代表数学操作,也可以表示数据输入输出的端点。边表示节点之间的关系,传递操作之间互相使用的多位数组(tensors,张量),tensor在graph中流动——这也就是TensorFlow名字的由来。一旦节点相连的边传来了数据流,节点就被分配到计算设备上异步的(节点间)、并行的(节点内)执行。参见上图。
TensorFlow的特点:
- Deep Flexibility: TensorFlow并不只是一个规则的neural network库,事实上如果你可以将你的计算表示成data flow graph的形式,就可以使用TensorFlow。用户构建graph,写内层循环代码驱动计算,TensorFlow可以帮助装配子图。定义新的操作只需要写一个Python函数,如果缺少底层的数据操作,需要写一些C++代码定义操作。
- True Portability: 可以应用在不同设备上,cpus,gpu,移动设备,云平台等
- Connect Research and Production
- Auto-Differentiation:TensorFlow的自动差分能力对很多基于Graph的机器学习算法有益??
- Language Options: TensorFlow很容易使用,有python接口和C++接口。其他语言可以使用SWIG工具使用接口。(SWIG,Simplified Wrapper and Interface Generator, 是一个非常优秀的开源工具,支持您将
C/C++
代码与任何主流脚本语言相集成。) - Maximize Performance: 充分利用硬件资源。TensorFlow可以将graph的不同计算单元分配到不同设备执行,使用TensorFlow处理副本。