Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在分布式tensorflow中等待所有工作人员完成?_Tensorflow - Fatal编程技术网

如何在分布式tensorflow中等待所有工作人员完成?

如何在分布式tensorflow中等待所有工作人员完成?,tensorflow,Tensorflow,在分布式tensorflow中,我使用SyncReplicasOptimizerV2来聚合和更新渐变,但是当一个普通工人(大多数情况下是首席工人)完成培训后,另一个普通工人将被绞死。我怎样才能解决这个问题 操作系统:Ubuntu 14.04 tensorflow版本:0.12.0-rc1 我的代码在这里: -----------------------------更新1----------2016-12-20------------- 我按照Yaroslav Bulatov的建议应用了同步队列,

在分布式tensorflow中,我使用SyncReplicasOptimizerV2来聚合和更新渐变,但是当一个普通工人(大多数情况下是首席工人)完成培训后,另一个普通工人将被绞死。我怎样才能解决这个问题

操作系统:Ubuntu 14.04

tensorflow版本:0.12.0-rc1

我的代码在这里:

-----------------------------更新1----------2016-12-20-------------

我按照Yaroslav Bulatov的建议应用了同步队列,现在我可以成功停止ParameterServer,但另一个工作进程仍然挂在那里,调用堆栈如下所示:


您的参数服务器(ps)工作人员挂起,还是您的常规(工作人员)工作人员也挂起?谢谢您的关注,只有常规工作人员挂起,但当所有其他工作人员挂起时,ps工作人员的cpu使用率将保持为0%,因此我不太确定ps工作人员是否挂起。这听起来可能像是预期的行为——使用SyncReplicas,该步骤仅在所有工作人员完成更新时发生。因此,如果一名工人死亡,这一步将永远无法完成。因此,当一个工人被解雇时,你可以手动杀死所有其他工人。你可以在共享队列中使用一些技巧,让PS工作人员在任何工作人员完成时死亡,死亡的PS也会杀死其余的工作人员。谢谢,但解决方案听起来有点小技巧,原因有二:1。如果我们在一个工人完成后杀死所有其他工人,可能会导致一些数据未经培训。2.我不确定由于PS死亡而死亡的工作人员的退出代码是什么,我需要通过退出代码检查tensorflow任务运行是否成功。是否有办法同步工人的所有培训过程,并一起退出。您可以填充数据,以便所有工作人员都可以看到相同数量的数据,然后一起退出。2.您可以使用队列作为信号机制,通知其他工作人员优雅地退出,下面是一个示例--您的参数服务器(ps)工作人员挂起,还是您的常规(工作人员)工作人员也挂起?感谢您的关注,只有常规工作人员挂起,但当所有其他工作人员挂起时,ps工作人员的cpu使用率将保持在0%,所以我不太确定ps工作人员是否被绞死。这听起来可能像是故意的行为——对于SyncReplicas,这一步只有在所有工作人员完成更新后才会发生。因此,如果一名工人死亡,这一步将永远无法完成。因此,当一个工人被解雇时,你可以手动杀死所有其他工人。你可以在共享队列中使用一些技巧,让PS工作人员在任何工作人员完成时死亡,死亡的PS也会杀死其余的工作人员。谢谢,但解决方案听起来有点小技巧,原因有二:1。如果我们在一个工人完成后杀死所有其他工人,可能会导致一些数据未经培训。2.我不确定由于PS死亡而死亡的工作人员的退出代码是什么,我需要通过退出代码检查tensorflow任务运行是否成功。是否有办法同步工人的所有培训过程,并一起退出。您可以填充数据,以便所有工作人员都可以看到相同数量的数据,然后一起退出。2.您可以使用队列作为信号机制,告诉其他员工优雅地退出,下面是一个示例--