我知道TensorFlow提供了分布式训练API,可以在多个设备上进行训练,比如多个GPU、CPU、TPU,或者多台计算机(工作节点)。请参考以下文档:https://www.tensorflow.org/tutorials/distribute/multi_worker_with_keras
但我有一个问题,是否有任何可能的方法可以使用数据并行来分割训练任务,以在多个机器上进行训练(包括移动设备和计算机设备)?
如果你有任何教程或指南,我将非常感激。
回答:
据我所知,TensorFlow仅支持CPU、TPU和GPU进行分布式训练,并且所有设备应在同一网络中。
如你所提到的,可以参考多工作节点训练来连接多个设备。
tf.distribute.Strategy
已集成到tf.keras
中,因此当使用model.fit
与tf.distribute.Strategy
实例时,再使用strategy.scope()
来定义你的模型,可以创建分布式变量。这使得输入数据能在你的设备上均匀分配。你可以参考这个教程了解更多细节。
此外,分布式输入也可能对你有帮助。