一Tensorflow基础
(1)Tensorflow前端支持C++,Python, Go, Java,后端使用C++,Cuda
(2) 适合进行工业化应用,拓展到分布式集群。
(3)Tensorflow中的client(客户端),通过Session与 master和多个 worker相连。
单机版:client->master->控制多个worker, 在同一个机器上 //job:localhost/device:cpu:0
分布式模式: client->master->worker在多台机器上. /job:worker/task:17/device:gpu:3
(4)Tensorflow中的数据通信:节点分配策略,子图划分:使用同一个设备并且相邻的节点会被划分到同一个子图。可以显示定义使用哪个设备
. with tf.device("/gpu:%d" % d):
(5)Tensorflow的自动求导:正向传播时,确定了执行顺序,tensor产生后迅速被后续节点使用。不会持续占用内存。但在反向传播时,经常需要用到计算图开头的Tensor, 这些tensor会占用大量GPU显存,限制了模型的规模。
(6)Tensorflow支持单独执行子图: feed/fetch,定义输入输出
Tensorflow支持计算图的控制流: if-condition和while-loop, 提供switch和merge operator
(7) Tf中的任务调度符合队列