前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >问答 | tensorflow 怎么配置非数据并行分布式?

问答 | tensorflow 怎么配置非数据并行分布式?

作者头像
AI研习社
发布2018-09-25 15:52:59
7710
发布2018-09-25 15:52:59
举报
文章被收录于专栏:AI研习社AI研习社
社长为你推荐来自 AI 研习社问答社区的精华问答。如有你也有问题,欢迎进社区提问。

话不多说,直接上题

@iresine 问:tensorflow 怎么配置非数据并行分布式?

假设模型有两个conv层和1个fc层,有3台服务器每台各一块显卡,请问要怎么实现把计算图拆成3部分,每块显卡分别计算一个层,而不是把计算图完整复制3份放到3块卡上独立计算?

来自社友的回答

▼▼▼

@王奇文:

你指的是in-graph模式的模型并行吧?思考以下几个问题:

①cpu和gpu的优势和劣势分别是什么?cpu擅长指定操作,逻辑判断,gpu擅长矩阵运算,二者相互补充,一边用cpu执行参数更新、逻辑运算,gpu执行矩阵运算

②tf的分布式实现有哪些类别?单机单卡,单机多卡,多机多卡。此处适用于多机多卡(单卡),3个服务器分成两类:参数服务器ps,计算服务器work,中间通过gRPC调用、传输

③2个卷积核1个fc真的有必要分散在三台机器吗?如果纯粹为了做实验,可以参考下tf官方的in-graph实现。基本方法是:

定义网络结构时,指定tf.device(''),如:

代码语言:javascript
复制
with tf.device('/job:ps/task:0'):#参数定义在机器D上

    w=tf.get_variable('w',(2,2),tf.float32,initializer=tf.constant_initializer(2))

    b=tf.get_variable('b',(2,2),tf.float32,initializer=tf.constant_initializer(5))

with tf.device('/job:worker/task:0/cpu:0'):#在机器A cpu上运行

    addwb=w+b

with tf.device('/job:worker/task:1/cpu:0'):#在机器B cpu上运行

    mutwb=w*b

with tf.device('/job:worker/task:2/cpu:0'):#在机器C cpu上运行

    divwb=w/b
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 话不多说,直接上题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档