我需要使用多台机器进行网络培训和评估,有些仅用于CPU,有些同时用于CPU和GPU。我想使用Tensorflow / Keras API,我认为每个人都需要一个平台来灵活选择设备。我查看了Distributed Tensorflow页,其中简要列出了图形内/图形间和异步/同步模式。在许多页面中,我都认为异步图之间复制是一种很好的方法(例如Distributed Tensorflow: A gentle introduction)。
由于无法使用Tensorflow / Keras API为基于图的异步分布式训练找到完整的示例代码,因此我阅读的内容越来越多,读得越多,我就越困惑。 我最近查看了Distribution Strategy - Revised API页,这似乎是一份正式文件。在那里,它列出了镜像策略(同步/图中),CollectiveAllReduceStrategy(同步/图中),TPU策略和参数服务器策略。现在我的头痛加剧了:
1-没有异步/跨图工人培训策略。
2-当我在Tensorflow API中查看MirroredStrategy参考页面时(我正在使用1.12版),它仅谈论GPU,而没有任何关于CPU的引用。但是当我查看CollectiveAllReduceStrategy时,它也提到了使用CPU的可能性。令人惊讶的是,在Tensorflow API for v 1.14中,MirroredStrategy中有CPU支持,但没有多人支持!
有人可以向我进一步澄清一下吗?再说一次,我真的很感谢有人共享使用Tensorflow / Keras进行分布式培训的示例代码,并将其提供给Tensorflow数据集。