学习TensorFlow确实是因为工作需要,是为了分析单细胞测序的数据。
TensorFlow(以下简称为tf)是一个AI的编程框架,有自己的设计理念,必须理解这个理念才能灵活调用其API来开发AI模型。
接下来说一下tf的设计理念:
1. 图。
可以看到黑色箭头在流动,流动的就是tensor,也就是数据。仔细观察,箭头经过的节点就是对数据的操作,输入数据经过某个操作后,继续往下流。这张图片很好解释了TensorFlow名字的内涵。计算机程序=数据+算法。tf框架正是采用了图(graph)的概念将复杂的数据流动抽象管理起来。图相当于AI模型的蓝图,包含所有设计逻辑。在tf图里,可以对变量进行管理,可以添加对变量的操作。tf可以声明常量(tf.constant)、变量(tf.Variable)和占位量(tf.placeholder)。区别于常量,变量和占位量值都可以改变。变量在声明的时候需要有初始值,而占位量可以在运行时传入值。学过c++等语言的应该很容易理解tf.placeholder,也就是需要提前给定变量的形状(如大小和类型)。有了变量,就一定有变量作用域,tf通过tf.name_score()等函数来管理变量作用域。
2. 执行运算。
有了图之后,tf通过创建会话(session)来执行图。
这是学习tf的第二天,一些心得,有不对之处,请大家多方确认。