TensorFlow 2是否支持在不同CPU核心上的多进程?

3

我在使用TensorFlow 2实现异步优势演员评论家(A3C)算法时遇到了困难。

问题描述: 为了实现A3C算法,我必须创建一组工作线程(数量等于CPU核心数)和一个主节点。所有的工作者和主节点都将为自己创建一个唯一的卷积神经网络(CNN)模块的副本。当每个工作者需要优化主节点的CNN模块并将其权值与主节点的CNN的权值同步时,就会出现问题。我已经通过多线程实现了这个过程,并没有问题,但是当使用多进程时,Python无法序列化权重或CNN本身以在工作者和主节点之间传递。

其他人的问题: 当我在谷歌上搜索处理此问题时,我注意到有不同的意见(几乎所有的Q-A都与TF1有关)。有些人认为TensorFlow不支持多进程,因此他们转向了PyTorch或仅使用了多线程。其他人则提出了ray library

首先,我想知道是否可以像A3C那样使用TensorFlow 2进行多进程处理。 如果可能的话,我将感激有人与我分享类似的工作。

1个回答

1
我自己也遇到了完全相同的问题。我找到了一个资源(见下面的链接),它使用TF1.X和multiprocessing进行A3C。一般来说,他们使用队列来共享模型权重。
就个人而言,我很好奇是否有更简单或更好的方法来使用multiprocessing进行A3C。我发现很难复制他们的方法,所以如果你找到另一种方法,请分享!

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接