通过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使用详解相关推荐

  1. 理解和实现分布式TensorFlow集群完整教程

    手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...

  2. mongo 3.4分片集群系列之六:详解配置数据库

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  3. zookeeper集群配置与配置文件详解

    1.配置文件解读 tickTime=2000 //leader和follower之间心跳检测时间 initLimit=10 //初始化连接次数是10次,和第一个配置连在一起意思就是10*2000 20 ...

  4. java集群_Kafka多节点分布式集群搭建实现过程详解_java

    上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...

  5. Zookeeper集群搭建(配置详解)

    软件环境准备: Linux服务器一台.三台.五台(2*n+1台): Java jdk 1.7: zookeeper 3.4.6版: 软件安装: 解压jdk.zookeeper文件到指定目录,执行命令t ...

  6. 生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解

    线上环境elasticsearch5.0.1集群的配置部署 es集群的规划: 硬件: 7台8核.64G内存.2T ssd硬盘加1台8核16G的阿里云服务器 其中一台作为kibana+kafka连接查询 ...

  7. LB Cluster 之一:集群及LVS基础理论详解

    一.核心概念 为什么需要集群? 假如我们有一个web站点,之允许100个用户同时在线访问.网站上线初期,通常只有几个用户在线,后期用户数量达到上千人.网站负荷加重,经常会"反应迟钝就&quo ...

  8. MySQL Galera 集群安装与配置详解

    galera 集群概述与搭建 Galera replication原理 从客户端看整体的流程 其中对应的角色分为2个:协调者和参与者 协调者: 1. 接收客户端请求 2. 广播请求到其他参与者(包括自 ...

  9. zookeeper集群在线迁移(扩容)详解

    zk集群原理 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现. 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅.负载均衡.命 ...

最新文章

  1. App Store生存法则:iOS开发者经验分享
  2. 互联工厂大数据云平台打造中国版CPS
  3. 清北刷题冲刺 11-02 a.m
  4. 设计模式(一)工厂模式Factory(创建型)
  5. DbLookUpCombobox的使用方法
  6. 快速理解shopex模板机制经验教程(一)
  7. linux-centos7 常用的基本命令--用户账号管理、查看和修改主机名
  8. 判断用户 小程序_【重要声明】小程序维护中,iphone用户手机暂时用不了小程序...
  9. java access 不在本地_线上的java项目访问不到线上数据库,但是这个数据库我本地可以连接到,求解...
  10. mysql中的文件导入导出表设计_mysql导入导出表结构及表数据及执行sql文件
  11. 顺序图组合片段类型及属性
  12. java list move_Java中List最重要的特性
  13. stm32以中断方式扫描矩阵键盘
  14. H3C交换机SSH配置完全攻略
  15. HDD Regenerator V2.0绿色中文注册版-(令硬盘起死回生)_-Chaz-_新浪博客
  16. Android开发常见问题及解决方法
  17. 盘点那些被AI换脸、一键“脱”衣所滥用的AI模型
  18. Jshop小程序商城系统说明
  19. chroma8000使用_台湾致茂MES系统Chroma8000上使用更安全敏捷
  20. 电脑屏幕保护推荐——Fliqlo

热门文章

  1. 2022-2028年中国铪行业市场研究及前瞻分析报告
  2. 阿里云Centos 解决挖矿程序:kdevtmpfsi--服务器CPU占用高、内存占用高
  3. 解决:sql中将日期字符串当做日期类型处理
  4. torch.nn.functional.cross_entropy.ignore_index
  5. pytorch中查看gpu信息
  6. The bean 'xxxx.FeignClientSpecification', defined in null, could not be registered. A bean with that
  7. 图像合成与风格转换实战
  8. YOLO、SSD、FPN、Mask-RCNN检测模型对比
  9. CVPR2020行人重识别算法论文解读
  10. 2021年大数据Spark(二十):Spark Core外部数据源引入