导读:本文推荐了一些对深入理解TensorFlow非常有帮助的资料。通过阅读这些资料,可以帮助你理解TensorFlow的实现机制以及一些高级技巧。本文是该系列的第二篇,后续还会持续推荐一些与TensorFlow相关的精品资料。
官方API——利用Python自定义Operation
链接:https://www.tensorflow.org/api_docs/python/tf/py_func
该API使得用户可以利用Python定义TensorFlow的Operation,但缺点在于这样定义的Operation只能在CPU上运行,因此在计算中,一般不采用py_func来自定义操作,取而代之的是现有Operation的组合或用C++自定义的Operation。但是,py_func在数据读取中仍起到很大的作用,在使用tf.data API进行输入导入时,数据的读取也是由Operation定义的,数据的读取与业务相关,需要大量的自定义操作,且不依赖GPU,py_func是一个不错的选择。
官方教程——利用C++自定义Operation
链接:https://www.tensorflow.org/extend/adding_an_op
该教程介绍如何通过C++自定义一个TensorFlow Operation,虽然TensorFlow提供的Operation可以完成大部分的功能,但仍有一小部分操作需要通过使用C++自定义Operation来实现。自定义TensorFlow Operation是一件比较繁琐的事情,一方面,C++ Operation的定义、编译等需要额外的编译器,且自定义的Operaiton需要通过代码进行注册,另一方面,CPU版和GPU版的代码是不同的。具体细节可在链接中查看。
官方教程——分布式TensorFlow
链接:https://www.tensorflow.org/deploy/distributed
该教程提供了使用分布式TensorFlow的方法及模型。TensorFlow并不能做到一键式分布式计算,而是需要经过选择分布式模型、根据分布式模型重新设计并修改代码等繁琐的步骤,希望使用分布式TensorFlow的朋友建议详细阅读该教程。
Eigen——TensorFlow依赖的CPU矩阵运算库
链接:http://eigen.tuxfamily.org
TensorFlow等大部分深度学习框架往往都依赖于一个深度优化的矩阵运算库来完成CPU上的矩阵运算,例如Eigen、OpenBlas、MKL等,这些矩阵运算库大多经过多年的深度优化,且其中一些库在特殊型号的CPU上还有特殊的优化。TensorFlow选择Eigen作为CPU上的矩阵运算库,学习Eigen可以加深对TensorFlow底层计算的理解。
更多教程资料请访问:专知AI会员计划
-END-