TensorFlow分布式训练策略全解析
1. 模型并行主义
深度神经网络(如Darknet)需要计算数十亿个参数,即使批量大小很小,将整个网络加载到单个CPU或GPU的内存中也是一项挑战。模型并行主义是一种将模型拆分为不同部分的方法,每个部分在不同的CPU、GPU或物理计算机硬件节点上对同一组数据执行操作。相同的数据批次会复制到集群中的所有节点,但节点会获得模型的不同部分。这些模型部分在不同节点上同时对其输入数据集进行操作。
当模型的各个部分并行运行时,它们的共享参数需要同步。这种并行方法在同一台机器上有多个CPU或GPU的情况下效果最佳,因为这些设备通过高速总线连接。
2. TensorFlow分布式策略
TensorFlow提供了一个高级API,用于在多个GPU或多个节点之间分配训练任务。该API通过 tf.distribute.Strategy 类公开。只需添加几行代码并进行一些小的更改,我们就可以对之前示例中探索的神经网络进行分布式训练。
我们可以将 tf.distribute.Strategy 与Keras结合使用,以分布式方式训练使用Keras API构建的网络,也可以用于分布式自定义训练循环。一般来说,TensorFlow中的任何计算都可以使用此API进行分布式处理。
TensorFlow支持以下几种类型的分布式策略:
2.1 MirroredStrategy
MirroredStrategy 支持在一台机器上的多个GPU上进行同步分布式训练。模型的所有变量都会在所有G
超级会员免费看
订阅专栏 解锁全文
657

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



