通过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,欢迎大家关注,下期将介绍完整分布式集群的部署和应用。​​​​

最新文章

  1. oracle普通用户登录em
  2. 遗传算法在JobShop中的应用研究(part4:变异)
  3. js-FCC算法-Symmetric Difference
  4. topcoder SRM 624 DIV2 CostOfDancing
  5. 泛函编程(12)-数据流-Stream
  6. cf_ducational Codeforces Round 16_D(gcd)
  7. Length of Last Word
  8. 百度地图API 简单使用
  9. MyContentProvider
  10. 代码静态分析工具——splint的学习与使用
  11. Cocos2d-x优化中关于背景图片优化
  12. 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】07-基本数据类型
  13. Office启动加载vs。。。项
  14. Spring MVC 前后台数据交互
  15. win8.1 安装webaccess遇到的写访问权限错误
  16. Oracle Day3 多行函数、多表查询
  17. Windows下的DOM操作
  18. [idea] SpringBoot整合swagger2实现CRUD
  19. 第一天接触stm32
  20. 四元数--结合《real time rendering》中关于四元数部分

热门文章

  1. NOIP模拟 6.30
  2. Liferay 7:portlet name
  3. 【JZOJ5086】【GDOI2017第四轮模拟day1】数列 折半搜索
  4. 在VMware安装Windows server 2003操作系统帮助文档
  5. docker.[5] 网络配置-1
  6. tablespaces
  7. Leetcode3.Longest Substring Without Repeating Characters无重复字符的最长字串
  8. 写一个杀死Gradle Daemon的shell脚本和bat脚本
  9. Unrecognised tag: 'build'
  10. 网络流24题 搭配飞行员(DCOJ8000)