第14章 分布式TensorFlow
TensorFlow的一大亮点就是支持分布式计算。分布式TensorFlow是由高性能的gRPC库作为底层技术来支持的。本章我们就来学习分布式TensorFlow所支持的架构和适用场景。
本章前3节主要参考了Martín Abadi、Ashish Agarwal和Paul Barham等的论文《TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems》[1]。
14.1 分布式原理
首先,我们介绍TensorFlow的分布式原理。TensorFlow的分布式集群由多个服务器进程和客户端进程组成。TensorFlow有几种部署方式,如单机多卡和分布式(多机多卡),一般我们把多机多卡的部署称为TensorFlow的分布式。本节先介绍单机多卡和分布式的区别,随后介绍分布式的部署方式。
14.1.1 单机多卡和分布式
单机多卡是指单台服务器有多块GPU。假设一台机器上有4块GPU,单机多GPU的训练过程如下。
(1)在单机单GPU的训练中,数据是一个批次(batch)一个批次地训练的。在单机多GPU中,一次处理4个批次的数据,每个GPU处理一个批次的数据计算。
(2)变量,也就是参数,保存在CPU上,数据由CPU分发给4个GPU,在GPU上完成计算,得到每个批次要更新的梯度。
(3)在CPU上收集完4个GPU
本文深入探讨了TensorFlow的分布式计算,从分布式原理、架构、模式到API使用,详细阐述了单机多卡与分布式部署的区别,以及数据并行、同步更新与异步更新的策略。此外,还介绍了分布式训练的最佳实践,包括代码框架和MNIST数据集的分布式训练示例。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



