【问题标题】:Doest TensorFlow 2 supports Multiprocessing on different CPU cores?TensorFlow 2 是否支持不同 CPU 内核上的多处理?
【发布时间】:2020-07-19 09:50:36
【问题描述】:

我一直在使用 TensorFlow 2 实现异步优势 Actor-Critic (A3C)。

问题定义: 对于 A3C 实施,我必须创建一堆工作人员(与 CPU 内核数量一样多)和一个主服务器。所有的工人和主人都会为自己创建一个独特的 CNN 模块的副本。当每个工作人员必须优化主控的 CNN 模块并将其权重与主控的 CNN 的权重同步时,就会出现问题。我已经通过多线程毫无问题地实现了这一点,但是当多处理进入时,python 既不能序列化权重也不能序列化 CNN 本身以在 worker 和 master 之间传递。

别人的问题: 当我在谷歌上搜索解决这个问题时,我注意到了不同的意见(而且几乎所有的问答都与 TF 1 有关)。有些人认为 TensorFlow 不支持多处理,所以他们要么迁移到 PyTorch,要么只使用多线程。其他人提议ray library

首先,我想知道是否可以通过 TF 2 实现像 A3C 这样的多处理方法。 如果可能的话,如果有人与我分享类似的作品,我将不胜感激。

【问题讨论】:

    标签: python tensorflow keras multiprocessing


    【解决方案1】:

    我自己也遇到了完全相同的问题。我确实找到了一个将 TF1.X 和 multiprocessing 用于 A3C 的资源(参见下面的链接)。通常,他们使用队列来共享模型权重。

    就我个人而言,我很好奇是否有一种更简单或更好的方法可以将 multiprocessing 用于 A3C。我发现很难复制他们的方法,所以如果您找到其他方法,请分享!

    https://github.com/hongzimao/a3c/blob/master/train.py

    【讨论】:

      猜你喜欢
      • 2010-09-17
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 2016-04-29
      相关资源
      最近更新 更多