您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
     
   
 订阅
  捐助
TensorFlow 技术框架解析 | 图文理解深度学习技术实现
 
97 次浏览     评价:  
 2018-12-6
 
编辑推荐:

本文来自于csdn,本文章主要介绍了深度学习框架TensorFlow入门及相关问题和部署方案,带你了解tensorflow实现,希望对您的学习有帮助。

先来认识一下TF的价值:

TensorFlow,是Google在15年年底发布的机器学习平台,发布以后由于其速度快,扩展性好,推广速度也很快。

Google的大战略:Android占领了移动端;TF占领神经网络提供AI服务。未来的趋势恰好是语音图像以及AI的时代。

TF的特点之一就是可以支持很多种设备,大到GPU、CPU,小到手机平板,五花八门的设备都可以跑起来TF。不得不说这一点很有前瞻性,可以预见的是,mobile-end的用户将会享受到越来越多的AI服务。

系统概述

整个系统从底层到上层可分为七层:

1.最底层是硬件计算资源,支持CPU、GPU;

2.支持两种通信协议;

3.数值计算层提供最基础的计算,有线性计算、卷积计算;

4.数据的计算都是以数组的形式参与计算;

5.计算图层用来设计神经网络的结构;

6.工作流层提供轻量级的框架调用

7.最后构造的深度学习网络可以通过TensorBoard服务端可视化

技术架构

整体技术栈分为两部分:

1.前端系统:提供编程模型,负责构造计算图;

2.后端系统:提供运行时环境,负责执行计算图。

组件交互

master节点给两种类型的节点分发任务:

1./job:ps/task:0: 负责模型参数的存储和更新

2./job:worker/task:0: 负责模型的训练或推理

会话(Session)

客户端使用会话来和TF系统交互,一般的模式是,建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,然后执行。

实现(Implementation)

1.TF中最重要的Tensor被支持的非常全面,8bit到64bit, signed和unsigned,IEEE float/double,complex number等等。使用引用计数来保存tensor,当计数到0时,tensor被回收。

2.客户端,用户会使用;与master和一些worker process交流

3.master,用来与客户端交互,同时调度任务;

4.worker process,工作节点,每个worker process可以访问一到多个device。

5.device,TF的计算核心,通过将device的类型、job名称、在worker process中的索引将device命名。可以通过注册机制来添加新的device实现,每个device实现需要负责内存分配和管理调度TF系统所下达的核运算需求。

跨设备 通信

当两个需要通信的op在不同的机器上时,就需要跨设备通信,当它们需要通信时,TF会在它们之间的联系中添加Send和Recv节点,通过Send和Recv之间进行通信来达到op之间通信的效果。如上所示。

梯度计算( Gradient Computation )

连接式的机器学习算法往往需要使用梯度下降法来求取参数,TF通过扩展图的方式实现了自动求导,TF做法如下:

对于每张计算图,得到从输入I到输出C的路径,并从C到I回溯,回溯过程中对于路径上的每个节点A,添加另一个节点来计算A’来计算偏导,在计算偏导的过程中,A’不仅仅将上一层传下来的反向导数作为输入,还可能将A的输入和输出也作为其输入。

数据并行计算( Data Parallel Training)

通过数据并行的方式来提升模型的效率,比如,假如每次模型的mini-batch是1000个样本,那么,切成10份,每份100个,然后将模型复制10份,每份都将梯度传到参数服务器上。

数据切分也分为同步和异步两种方式,同步的切分是等待每个独立的model传上来的梯度都到齐后再进行更新,这样和一个大的batch没有区别。异步的切分则是不用等待,每个独立的模型的参数更新直接更新。

模型并行训练( Model Parallel Training)

还可以对模型进行切分,让模型的不同部分执行在不同的设备上,这样可以一个迭代的样本可以在不同的设备上同时执行。如上图所示的LSTM模型

   
97 次浏览  评价: 差  订阅 捐助
相关文章

我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
 
相关文档

数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
相关课程

高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号