当Spark遇上Tensorflow:分布式深度学习框架原理和实践_第1页
当Spark遇上Tensorflow:分布式深度学习框架原理和实践_第2页
当Spark遇上Tensorflow:分布式深度学习框架原理和实践_第3页
当Spark遇上Tensorflow:分布式深度学习框架原理和实践_第4页
当Spark遇上Tensorflow:分布式深度学习框架原理和实践_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

当Spark遇上Tensorflow:

分布式深度学习框架原理和实践

2018.4.10受众&&收益如果:有大数据基础,该怎么切入深度学习?有深度学习基础,如何在大数据场景下训练?没有任何基础?NoProblem!带你构建大数据、深度学习以及两者相结合的知识体系

Outline大数据的价值计算的核心问题Spark概述DeepLearning概述DeepLearningOnSparkTensorflowOnSpark案例实践

大数据的价值数据驱动的智能运营(BI、流量分析)数据:行为日志->数据仓库模型:多维分析报表(留存分析、趋势分析、实时分析)数据驱动的智能决策(精准广告、推荐、反欺诈)数据:数据仓库->展现点击数据、用户画像模型:浅层模型(LR、FM、GBDT),人工特征、大规模、实时性数据驱动的深度学习智能(图像分类、AlphaGo)数据:进一步泛化,图像(imagenet)、语音(audioset)、视频、文字模型:深层模型(DNN、CNN、RNN),自动化特征抽取

计算的核心问题:y=f(x)

数据存储(实时、历史)提炼后的数据、特征模型DataETL&QueryModelTrainDataETL&Query数据源对接实时数据聚合数据归一化特征生成计算框架:Spark为代表Input:f()\xOutput:y分布式数据计算Ex:y=groupby(join(a,b),key)ModelTrain:模型建模反向计算、梯度更新超参数调优效果评估计算框架:Tensorflow为代表Input:x\yOuput:f()模型建模和分布式参数更新Ex:y=w*x+bSparkRDD:分布式数据计算抽象RDD(ResilientDistributedDatasets)Consistency:

粗粒度、不变性高效并行:分布式、Locality容错:Lineage机制、RDDCache屏蔽分布式复杂性、简单如单机程序RDDOperationsTransform:

map、flatMap、join、reduceByKeyAction:collect、count、save封装业务计算逻辑、串成计算DAG

Spark的大数据生态支持组件库:SparkSQL:关系计算SparkStreaming:实时计算Mllib:传统机器学习、迭代计算GraphX:图计算部署环境:

Yarn、Kubernetes、Mesos、StandaloneDataSource:HDFS、Kafka、FlumeHBase、Cassandra、Mongodb

SparkSQL典型应用场景:OLAP多维分析DataFrame:等价于RDD<Row>

、LikeTableSQLAPI:SQL关系计算、分布式的执行优化:如PredictPushDownDataSource:Parquet、Hbase、MongodbMongoDBCase:spark-mongo-connector

SparkStreaming典型应用场景:实时特征处理DstreamsContinuousrdds(mini-batch)Receivers:Kafka、Flume、HDFS与rdd具有类似operationsWindowsOperationsStructuredStreamingKafkaCase:Todo:structurestreaming

DeepLearning模型多层感知器模型(MLP)

全连接:y=wx+b,w:weightb:bias

激活函数:非线性化Softmax转换为最直观的概率

MLP的表达能力:

理论可以拟合一切函数

DeepLearning模型CNN卷积神经网络感受野卷积操作Cnn的优势局部空间更深的网络语义表达(自动特征构建过程)

tensorflow核心抽象:模型建模Tensor&&VariableTensor:

多维数组、数值引用Variable:可变参数(weight\bias、卷积核)OperatorAdd、MatMul、Conv2d、MaxPoolGraph如InceptionV3:2500W参数、50亿次FLOPS

训练的核心问题:拟合f()反向梯度计算目的:计算梯度、更新参数Loss函数:如交叉熵最小化Loss:SGD、ADAM等

链式求导:

dC/db=Add_grads(dC/dy,z)

dC/dz=Add_grads(dC/dy,b)

dC/dw=MatlMul_grads(dC/dz,x)

dC/dx=MatMul_grads(dC/dz,w)

训练流程(batch_size\epoch)

batch_size:一次前向计算和反向计算的样本数

epoch:pass所有训练样本

Tensorflow代码示例以多层感知器模型MLP为例:

Tensorflow分布式训练机制大规模数据场景:how?

Imagenet(1500W+)并行机制

模型并行(In-GraphReplication):基于图拆分数据并行(Between-GraphReplication):基于数据拆分参数服务器工作节点

DeepLearningOnSparkSpark:分布式通用计算框架DeepLearning(tensorflow):分布式模型训练(梯度计算)框架整合的意义:DistributedTraining:Tensorflow分布式机制的问题:手动的组建节点网络(ClusterSpec)数据并行训练(RDDAPIBased):集成SparkSQL、SparkStreamingDataPipelineDataIngest、DataPreprocess、ModelTrain&&Evaluation、ModelPredictPre-trainedModel应用:离线预测、特征抽取等

AllInOneCluster:高级抽象API、集群复用、避免数据跨集群

DeepLearningOnSparkDistributedTrainingTensorflowOnSpark

Yahoo开源:/yahoo/TensorFlowOnSpark其他:CaffeOnSpark、MMLSpark(CNTK)、PaddleOnSparkTensorflowOnSparkExecutor&&TensorflowProcessClusterAPI:cluster=TFCluster.run(sc,map_fn,args,

num_executors,num_ps,…)

DeepLearningOnSparkRDD-Based数据并行机制:

DeepLearningOnSparkspark-deep-learning:DataBricks发起,SparkMLibPipelineAPI

https:///databricks/spark-deep-learning2018.1发布r0.3目标:High-LevelAPI、兼容各种深度学习框架(不仅限于tensorflow)

DeepLearningOnSparkTensorflowOnSpark

PipelineTFEstimator:distributedTensorflowOnSparkclusterfortrainingTFModel:modelasfunction(operation)

案例实践问题描述:图像分类:

kaggledataset:FlowersRecogniziton

5个类别、

共4242张图片

(tulip,sunflower,dandelion,rose,daisy)

数据存储于MongoDB:

app_id,image_content,height,width,label_name,label_id分布式方案:DistributedIngest:SparkSQL+spark-mongo-connector获取数据DistributedTrain:TensorflowOnSpark+TensorflowDistributedEv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论