Tensorflow是用于大规模的分布式训练与预测而设计的,但它同样可以支持新的机器学习模型和系统层面优化的实验。

首先,Tensorflow runtime是跨平台的库,下面是Tensorflow的架构图,C API 可以让用户通过不同语言使用Tensorflow。

layer 说明
client 定义计算的数据流图;通过session执行图形运算
Distributed Master 修剪子图,并由Session.run()定义; 将子图划分到不同片,使其运行在不同的进程和设备; 将graph piece分布到worker service 通过worker service执行graph piece
Worker Service(针对每个task) 选择合适的硬件资源(CPUs,GPUs等)schedule图形运算运行发送和接收来自其它worker services的运行结果
Kernel Implementations 对每个图形运算执行计算

上图中,/job:worker/task:0/job:ps/task:0 都是worker services的tasks。

PS表示parameter server,任务是存储和更新模型的参数。

其它tasks当优化参数时,会将更新发送到ps的参数。

需要注意的是,Distributed Master和Worker Service只存在于分布式的tensorflow。

对于single-process的Tensorflow,它包含特殊的Session实现,它会做distributed master做的一切事情,但是只会与local process的设备通信。

Client

用户编写client Tensorflow程序构建计算图形。

【参考】

1。Tensorflow官方:https://www.tensorflow.org/extend/architecture

results matching ""

    No results matching ""