概念
TensorFlow计算方式
TensorFlow中的计算可以被表示为一个有向图,或者叫计算图,其中每一个运算操作被表示为一个节点,连接节点的是边。每一个节点可以有任意多个输入与输出,在计算图中流动(flow)的数据是张量(tensor),因此称为TensorFlow。
TensorFlow内建运算操作
标量运算:
add、sub、mul、div、exp、log、greater、less、equal
向量运算:
concat、slice、split、constant、rank、shape、shuffle
矩阵运算:
matmul、matricinverse、matrixdeterminant
带状态的运算
variable、assign、assignadd
神经网络组建:
softmax、sigmoid、relu、convolution2D、maxpooling
存储、恢复
save、restore
队列及同步运算
enqueue、dequeue、mutexAcquire、mutexrelease
控制流
merge、switch、enter、leave、nextInteration
variable标量的特殊性
计算图有可能会被多次执行,但是数据(tensor)仅是在图中流过并不会被保存,因此对于那些需要在执行完成后获取的变量需要使用variable变量进行定义,如参数W和b,而对于输入数据使用placeholder占位符定义即可。
单机与分布式模式
TensorFlow有单机与分布式两种模式,其中单机指client、master、worker全部在一台机器上的同一个进程中;分布式的版本允许client、master、worker在不同机器的不同进程中,同时由集群调度系统统一管理各项任务。
检查点机制
TensorFlow支持检查点(checkpoint)的保存与恢复,每一个variable node都会链接到一个save node,每隔迭代几轮就会保存一次数据到持久化存储系统;同理,每一个variable node也会链接到一个restore node,在每次重启时会自动调用并恢复数据。如此一来,在故障发生并重启后,模型的参数将得以从上一个checkpoint恢复而不需要从头再来。