分布式TensorFlow集群local server使用详解
通过local server理解分布式TensorFlow集群的应用与实现。
简介
TensorFlow从0.8版本开始,支持分布式集群,并且自带了local server方便测试。
Local server和分布式服务的接口一样,我们将从local server入手,详细解读分布式机器学习集群的用法。
Local server的最简单用法
TensorFlow官方文档提供了local server的最简单用法,安装TensorFlow后直接在交互式Python终端中执行即可。
注意这里server和client启动在同一个进程了,为什么这么说呢?我们都了解TensorFlow客户端可以用Python或C++编写,本质上就是构建一个可执行的Graph,而Graph需要在Session中执行,因此代码中只要包含Session()的就是客户端,这时通过server.target选择本地刚创建的server来执行op。大家可能会好奇server.target是什么,我们在终端可以输出是'grpc://localhost:38612',一个字符串表示服务端的ip和端口,同时也确认它的协议是Google开源的gRPC。
如果你愿意搭建环境测试,只要一行命令即可docker run -it tobegit3hub/ml-dev bash,其中ml-dev是我开发的机器学习镜像包含大量工具库,当然你也可以使用官方的tensorflow/tensorflow镜像。
启动local server服务
前面提到local server和client在同一个进程,输出结果后服务端和客户端都退出了,实际上服务端应该以daemon的形式提供服务,local server也可以的。
我们编写local_server.py文件,注意这里调用join()是为了避免进程退出,同样会暴露一个grpc的端口。
启动客户端服务
启动local server后,我们可以在本地起一个客户端来调用,注意这里local server的地址是
注意要启动客户端,我们需要开另一个终端进入local server的容器,例如“docker exec -it 100cd4fb5bca bash”。
我们看到constant的字符串已经正常输出,有人发现这与单机版的TensorFlow例子很像,实际上Session的参数不同,并且这个op是在local server进程中执行并返回的,如果使用错误端口就会报RPC请求连接错误。
最后总结
我们总结一下,TensorFlow的local server实现了与分布式server一样的接口,通过了解local server的使用和实现我们就更容易理解分布式TensorFlow的使用了。其中server对象有比较重要的概念就是server.targe,客户端通过targe找到对应的集群,还有两个函数分别是server.start()和server.join(),就是启动服务和避免进程退出的。
本文介绍了分布式TensorFlow集群中的local server,欢迎大家关注,下期将介绍完整分布式集群的部署和应用。
分布式TensorFlow集群local server使用详解相关推荐
- 理解和实现分布式TensorFlow集群完整教程
手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...
- mongo 3.4分片集群系列之六:详解配置数据库
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- zookeeper集群配置与配置文件详解
1.配置文件解读 tickTime=2000 //leader和follower之间心跳检测时间 initLimit=10 //初始化连接次数是10次,和第一个配置连在一起意思就是10*2000 20 ...
- java集群_Kafka多节点分布式集群搭建实现过程详解_java
上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...
- Zookeeper集群搭建(配置详解)
软件环境准备: Linux服务器一台.三台.五台(2*n+1台): Java jdk 1.7: zookeeper 3.4.6版: 软件安装: 解压jdk.zookeeper文件到指定目录,执行命令t ...
- 生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解
线上环境elasticsearch5.0.1集群的配置部署 es集群的规划: 硬件: 7台8核.64G内存.2T ssd硬盘加1台8核16G的阿里云服务器 其中一台作为kibana+kafka连接查询 ...
- LB Cluster 之一:集群及LVS基础理论详解
一.核心概念 为什么需要集群? 假如我们有一个web站点,之允许100个用户同时在线访问.网站上线初期,通常只有几个用户在线,后期用户数量达到上千人.网站负荷加重,经常会"反应迟钝就&quo ...
- MySQL Galera 集群安装与配置详解
galera 集群概述与搭建 Galera replication原理 从客户端看整体的流程 其中对应的角色分为2个:协调者和参与者 协调者: 1. 接收客户端请求 2. 广播请求到其他参与者(包括自 ...
- zookeeper集群在线迁移(扩容)详解
zk集群原理 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现. 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅.负载均衡.命 ...
最新文章
- App Store生存法则:iOS开发者经验分享
- 互联工厂大数据云平台打造中国版CPS
- 清北刷题冲刺 11-02 a.m
- 设计模式(一)工厂模式Factory(创建型)
- DbLookUpCombobox的使用方法
- 快速理解shopex模板机制经验教程(一)
- linux-centos7 常用的基本命令--用户账号管理、查看和修改主机名
- 判断用户 小程序_【重要声明】小程序维护中,iphone用户手机暂时用不了小程序...
- java access 不在本地_线上的java项目访问不到线上数据库,但是这个数据库我本地可以连接到,求解...
- mysql中的文件导入导出表设计_mysql导入导出表结构及表数据及执行sql文件
- 顺序图组合片段类型及属性
- java list move_Java中List最重要的特性
- stm32以中断方式扫描矩阵键盘
- H3C交换机SSH配置完全攻略
- HDD Regenerator V2.0绿色中文注册版-(令硬盘起死回生)_-Chaz-_新浪博客
- Android开发常见问题及解决方法
- 盘点那些被AI换脸、一键“脱”衣所滥用的AI模型
- Jshop小程序商城系统说明
- chroma8000使用_台湾致茂MES系统Chroma8000上使用更安全敏捷
- 电脑屏幕保护推荐——Fliqlo
热门文章
- 2022-2028年中国铪行业市场研究及前瞻分析报告
- 阿里云Centos 解决挖矿程序:kdevtmpfsi--服务器CPU占用高、内存占用高
- 解决:sql中将日期字符串当做日期类型处理
- torch.nn.functional.cross_entropy.ignore_index
- pytorch中查看gpu信息
- The bean 'xxxx.FeignClientSpecification', defined in null, could not be registered. A bean with that
- 图像合成与风格转换实战
- YOLO、SSD、FPN、Mask-RCNN检测模型对比
- CVPR2020行人重识别算法论文解读
- 2021年大数据Spark(二十):Spark Core外部数据源引入