本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【j2开奖】谷歌、亚马逊和百度的深度学习野心:TensorFlow、MXNet、PaddlePaddle 三(3)

时间:2017-03-05 18:19来源:香港现场开奖 作者:j2开奖直播 点击:
tf不同的功能以job划分,例如运行整个computation graph是一个功能,作为parameter server存储更新交换参数是一个功能。job由一系列task组成,每个task是一个进程

  tf不同的功能以job划分,例如运行整个computation graph是一个功能,作为parameter server存储更新交换参数是一个功能。job由一系列task组成,每个task是一个进程,它完成指定的工作,计算、传输、读写等等。在tf的分布式实现中,用户要实现的分布式程序主要是两个部分,分别是graph的配置和集群的配置,client需要定义computation graph的结构,节点放在哪个job/task上,并且创建session,通过session请求graph计算到什么地方,一个client对应一个computation graph,如果采用了数据并行,那么就会产生多个graph。集群配置确定了有多少台机器,哪台机器执行哪个task。

  tf没有专门实现paramter server,而是实现了server,server对象负责交换数据,但不是只交换网络的参数,只要涉及到不同设备间要交换的数据都是由server管理,例如下图中machine0的device 0和device 1之间交换网络的输入输出,因此,在实现神经网络时一般需要将网络参数放在称为ps的job中,从而在网络运行时自动的更新参数。一个task会实例化一个server对象,不同机器之间交换数据的协议有多种,例如gRPC、RDMA等。然后手动在不同的机器上分别执行程序,如下图所示。

  

wzatv:【j2开奖】谷歌、亚马逊和百度的深度学习野心:TensorFlow、MXNet、PaddlePaddle 三大框架对比

图4 TensorFlow各台机器涉及到的内容

  MXNet通过kvstore实现parameter server从而实现多机运行程序,设备之间传输是通过确定数据所在的context后相互交换NDArray。从15年推出的时候就已经支持分布式了,它将网络分布式训练的过程已经封装好,用户只需要确定网络的配置,哪些操作放在哪个GPU之上,开放给用户的接口是Module类的fit函数,这个函数内部会自动创建kvstore对象,在训练的时候梯度和权重会自己push/pull。启动分布式程序也不需要自己手动在多台机器上执行命令,MXNet封装好了launch.py,传入机器个数、主机ip等就能在一台机器上启动多台机器运行程序。

  

wzatv:【j2开奖】谷歌、亚马逊和百度的深度学习野心:TensorFlow、MXNet、PaddlePaddle 三大框架对比

图5 MXNet各台机器涉及到的内容

  PaddlePaddle的分布式结构主要有两个部分,trainer和parameter server。前者是配置网络,功能层、优化算法的python接口封装在了trainer_config_helpers类中,用户可以使用这些接口配置自己的网络,后者没有将接口放出来给用户使用,而是在c++程序中实现的,再通过python来调用c++程序。pd给的例子中通过fabric库来启动分布式程序,可以做到在一台机器上启动多台机器。在parameter server的使用上,pd针对一个网络可以拥有多个参数服务器ps,每个ps负责一部分的网络参数,与所有的trainers进行交换数据,如下图所示。

  

wzatv:【j2开奖】谷歌、亚马逊和百度的深度学习野心:TensorFlow、MXNet、PaddlePaddle 三大框架对比

图6 PaddlePaddle分布式结构

  4.小结

  零零碎碎聊了一些各个框架中我比较关注的内容,作为Caffe的真爱粉,这三个框架我没有什么偏好,各有各的优点各有各的缺点,都有很多值得学习的地方。写之前对PaddlePaddle 的印象还挺不错的,没想到文档资料并不多,github上面的star虽然有4400+,但是感觉用的人好少,官方的文件对这个框架本身的东西介绍也少,重心放在了怎么使用上面。就使用上来看,周围的同学反而用Keras的比较多,有条件的话其实都下载试一试才能确定哪个更适合自己。

  个人理解有限,如果文章有不对的地方,欢迎批评指正。

  5. 参考文献

  [1] TensorFlow

  [2] MXNet

  [3] PaddlePaddle

  [4] Benchmarking State-of-the-Art Deep Learning Software Tools

  [5] Comparative Study of Deep Learning Software Frameworks

  [6] TensorFlow Serving

  [7] Learn (contrib)

  [8] 谷歌发布深度学习库TensorFlow Fold,支持动态计算图

  [9] TensorFlow Mobile

  [10] 宣布 TensorFlow 1.0

  [11] MXNet设计和实现简介

  [12] Deep Learning in a Single File for Smart Devices

  [13] [RELEASE] Announcing v0.9 Release Candidate 1

  [14] MXNet专栏 | 陈天奇:NNVM打造模块化深度学习系统

  [15] 跑在Kubernetes上的开源深度学习,百度这次带来了哪些技术看点?

  [16] TensorBoard: 图表可视化

  [17] Finetuning AlexNet with TensorFlow

  [18] Sentiment Analysis Tutorial

  [19] Large Scale Distributed Deep Networks

  [20] Scaling Distributed Machine Learning with the Parameter Server

  [21] 理解和实现分布式TensorFlow集群完整教程

  [22] Run Deep Learning with PaddlePaddle on Kubernetes

  本文获我爱计算机授权转载发布,特此感谢。

  原文地址:?p=1639

新智元招聘

  

职位:COO

  职位年薪:50万(工资+金)-100万元(含期权)

  工作地点:北京-海淀区

  所属部门:运营部

  汇报对象:CEO

  下属人数:10人

  年龄要求:25 岁至 40 岁

  语 言:英语六级以上或海外留学从业背景

  职位背景:在IT领域有专业团队管理经验

  学历要求:硕士及以上

  职位描述:

  1. 负责新智元总体市场运营,智库与人工智能百人会经营,atv直播,政府关系统筹协调

  2. 擅长开拓市场,并与客户建立长期多赢关系,有建构产业生态系统能力

  3. 深度了解人工智能及机器人产业及相关市场状况,善于捕捉商业机会

  4. 统筹管理公司各运营部门,兼管公司HR及财务部门

  5. 带领运营团队完成营业额目标,并监控协调运营部与编辑部、研究部运作

  6. 负责公司平台运营总体战略计划、合作计划的制定与实施

  岗位要求

  1、硕士以上学历,英语六级以上,较强的英语沟通能力或外企从业经验

  2、 3年以上商务拓展经验,有团队管理经验,熟悉商务部门整体管理工作

  3、 IT领域商务拓展经验、强大的团队统筹管理能力

  4、 有广泛的TMT领域人脉资源、 有甲方市场部工作经验优先考虑

  5、 知名IT媒体商务部门管理经验,广告、公关公司市场拓展部负责人优先

  应聘邮箱:[email protected]

  HR微信:13552313024

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容