您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Tensorflow:在分布式培训中使用参数服务器

Tensorflow:在分布式培训中使用参数服务器

TensorFlow对“参数服务器”一无所知,但它支持在不同进程中跨多个设备运行图形。其中一些进程的设备名称以开头"/job:ps",并且其中包含变量。工人负责培训过程,当他们运行培训过程时,train_op将导致"/job:ps"设备上发生工作,这将更新共享变量

server.join()方法只是告诉TensorFlow阻塞并监听请求,直到服务器关闭为止(这意味着它永远永久阻塞,或者直到您终止进程为止,因为当前尚未实现干净关闭)。

在我上一个答案的示例中,PS任务是被动的,并且一切都由…中的工作程序任务控制## some training code。如果您将代码拆分到多个设备上,TensorFlow将添加适当的通信,这将扩展到不同进程中的设备。该with tf.device(tf.train.replica_device_setter(...)):块告诉TensorFlow通过将其设备设置为"/job:ps/task:{i}"(对于的不同值{i},以循环方式选择)将每个变量置于不同的PS任务上。

当您调用sess.run(train_op),TensorFlow将运行一个依赖并更新变量的图,并包括更新变量的操作。这部分计算将在"/job:ps"设备上进行,因此这些设备将充当参数服务器。

其他 2022/1/1 18:33:27 有518人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶