首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Tensorflow中强制本地设备放置

在Tensorflow中强制本地设备放置
EN

Stack Overflow用户
提问于 2017-08-12 13:06:53
回答 1查看 143关注 0票数 0

我正在尝试创建一个带有服务器和一个或多个使用它的客户端的分布式Tensorflow应用程序。

指定哪些变量或操作应该放在服务器中很容易。只需使用定义‘ClusterSpec’作业的服务器启动一个tf.train.Server,然后执行以下操作:

代码语言:javascript
复制
with tf.device('/job:server/task:0'):
  server_vars = ...
  server_ops = ...

但是,如果我想在客户端放置其他var或on,则必须为每个客户端定义一个新作业,为其启动一个新的tf.train.Server,定义放置在每个特定客户端上的新var和on,并在ClusterSpec中包含所有客户端地址和端口。

有没有办法使用tf.device将op和var放在本地?不一定要发送到任何特定设备(CPU、GPU),但不需要远程访问服务器。

代码语言:javascript
复制
# No device is specified, so it's up to TF to decide where to place it.
# Let's say it decides to place it locally. How can we enforce that?
# Is there a tf.device(/local/) or similar?
client_vars = ...
client_ops = ...

with tf.Session('grpc://%s' % SERVER) as session:
  # Do stuff.
  # Can we run client ops from this session?

注意:我假设服务器是被动工作的,不会尝试直接访问任何客户端操作或var。相反,客户端访问服务器的操作和变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-14 01:38:47

如果您没有在本地运行tf.Server,那么在本地运行ops的唯一选择就是创建一个本地会话tf.Session()并在该会话中运行ops。不同的会话不能直接通信。如果您使用的是分布式TensorFlow,则必须从分布式会话中获取数据,然后自己将其输入到本地会话中。(反之亦然)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45646716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档