TensorFlow 分布式实践
此wiki主要介绍分布式环境使用的一些条件,一直所要注意的内容;
确保在此之前阅读过TensorFlow for distributed
1.集群描述
当前tensorflow 的版本(0.8.0),并没有提供统一的资源管理器,所以若要启动处理节点需要手动完成,并且要每个节点一份完整的集群描述,目的是让该节点能够找到其他的节点

例如:启动Server的命令如下
python ./tensorflow/tools/dist_test/server/grpc_tensorflow_server.py --cluster_spec='ps|10.100.208.23:22222,worker|10.100.208.23:22223;10.100.208.23:22224' --job_name=ps --task_index=0
--cluster_spec:描述集群的所有Server的ip:port,并形成一个dictionary,上边的命令最后形成
"ps":[0.100.208.23:22222]
"worker":[10.100.208.23:22223;10.100.208.23:22224]
--job_name --task_index : 通过这两个参数能够确定,这个当前进程使用dictionary里的哪个ip:port.
NOTE:实际上"ps","worker"并不含有什么实际意义,在启动server时可以自行指定名称,以便后续业务代码识别即可。
2.进行计算:
进行分布式计算可以将某些计算分派给某个Server的某个资源(cpu,gpu)来执行。
例如
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import tensorflow as tfdef main() : with tf.device("/job:ps/task:0/cpu:0"): a = tf.Variable(1) b = tf.Variable(1) with tf.device("/job:worker/task:0/gpu:1"): c = a + b with tf.Session("grpc://localhost:22223",config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True)) as sess: result = sess.run(c) print(result)if __name__ == '__main__': main() |
其中 两个变量a,b的声明工作在ps进程的cpu0上完成; a+b的操作在worker进程的gpu1上完成
NOTE:若要指定运行的device,必须使用源码编译后的启动方式
bazel-bin/tensorflow/core/distributed_runtime/rpc/grpc_tensorflow_server
NOTE:如果在不同的进程里生命的变量进行运算可能会报错
tensorflow.python.framework.errors.FailedPreconditionError: Attempting to use uninitialized value
需要先初始化变量
sess.run(tf.initialize_all_variables())
具体可参考 https://www.tensorflow.org/versions/r0.8/how_tos/variable_scope/index.html#sharing-variables
NOTE:创建tf.Session时,需要制定到worker地址否则会报错
tensorflow.python.framework.errors.InternalError: Blas SGEMM launch failed
并且导致进程退出
TensorFlow 分布式实践的更多相关文章
- TensorFlow分布式实践
大数据时代,基于单机的建模很难满足企业不断增长的数据量级的需求,开发者需要使用分布式的开发方式,在集群上进行建模.而单机和分布式的开发代码有一定的区别,本文就将为开发者们介绍,基于TensorFlow ...
- tensorflow分布式训练
https://blog.csdn.net/hjimce/article/details/61197190 tensorflow分布式训练 https://cloud.tencent.com/dev ...
- [源码解析] TensorFlow 分布式环境(2)---Master 静态逻辑
[源码解析] TensorFlow 分布式环境(2)---Master 静态逻辑 目录 [源码解析] TensorFlow 分布式环境(2)---Master 静态逻辑 1. 总述 2. 接口 2.1 ...
- 基于Python玩转人工智能最火框架 TensorFlow应用实践
慕K网-299元-基于Python玩转人工智能最火框架 TensorFlow应用实践 需要联系我,QQ:1844912514
- 【原创 深度学习与TensorFlow 动手实践系列 - 4】第四课:卷积神经网络 - 高级篇
[原创 深度学习与TensorFlow 动手实践系列 - 4]第四课:卷积神经网络 - 高级篇 提纲: 1. AlexNet:现代神经网络起源 2. VGG:AlexNet增强版 3. GoogleN ...
- 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇
[原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...
- Python玩转人工智能最火框架 TensorFlow应用实践 ☝☝☝
Python玩转人工智能最火框架 TensorFlow应用实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 全民人工智能时代,不甘心只做一个旁观者,那就现在 ...
- java 分布式实践
java 分布式实践 spring boot cloud实践 开源的全链路跟踪很多,比如 Spring Cloud Sleuth + Zipkin,国内有美团的 CAT 等等. 其目的就是当一个请求经 ...
- 基于Python玩转人工智能最火框架 TensorFlow应用实践✍✍✍
基于Python玩转人工智能最火框架 TensorFlow应用实践 随着 TensorFlow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架.而在昨天机器之心发起 ...
随机推荐
- ansible进阶模板和角色使用
使用场景 Ansible 由于采用ssh远程连接登录管理,虽然不需要额外安装agent,但是速度慢效率低.不适合管理大规模的主机一般最大规模在200-300台,超大规模的主机管理适合使用puppet ...
- drf解析器
1.简介 作用:将传过来的数据,解析成字典 2.使用 分为局部使用和全局使用 局部使用,什么都不写,默认就是 parser_classes = [JSONParser,FormParser] from ...
- Mac搭建PHP+rabbitMQ环境
RabbitMQ是一个在AMQP基础上实现的企业级消息系统.何谓消息系统,就是消息队列系统,消息队列是“”消费-生产者模型“”的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅 ...
- python3 判断字符串是否为IP
#!/usr/bin/python3 # -*- coding: utf-8 -*- import re ip = "192.168.1.1" ip = re.findall(&q ...
- Boolean数据类型
boolean 数据类型 boolean 变量存储为 8位(1 个字节)的数值形式,但只能是 True 或是 False,可以把它看做是一个和1代替,并且一定要小写.boolean operate是指 ...
- 搭建redsocks 测试环境
1. 先来谈谈pc的测试环境 socks5代理,因为要在centos下设置,没有yum到socks, 就安装ss5,wget http://jaist.dl.sourceforge.net/proje ...
- idc指令相关
#按不同数据类型打印当前地址opcode print Byte(ea) print Word(ea) print Dword(ea)
- 兼容PC和手机触摸代码
测试环境:unity3d 4.6.1 using UnityEngine; using System.Collections; public class neccc : MonoBehaviour { ...
- nodejs中安卓端的编码如何转换为中文
借助一些模块来转换,比如,html-entities Github var Entities = require('html-entities').XmlEntities; entities = ne ...
- Windows 2012 IIS ASP.NET 安装
from:http://blog.darkthread.net/post-2013-11-29-iis8-asp-net-setup.aspx 專案動用了SignalR 2.0,在我的Windows ...