美文网首页开源的机器学习
BigDL入门 (4)- 优化器Optimizer

BigDL入门 (4)- 优化器Optimizer

作者: 飞驰2019 | 来源:发表于2019-04-21 14:43 被阅读0次

    优化器是模型训练的主要承担者,当模型输出的数据通过损失函数得到梯度后,优化器根据相应的优化算法计算得到新的模型参数,如下图所示:

图 1

    在BigDL中,可以通过Optimizer对象的apply方法创建优化器:

     val optimizer = Optimizer(

        model = buildModel(classNum),

        sampleRDD = trainingRDD,

        criterion = new ClassNLLCriterion[Float](),

        batchSize = param.batchSize

     )

    BigDL中为优化器提供了两个实现,即LocalOptimizerDistriOptimizer。前者主要用于单进程环境下的测试,后者才是用于Spark环境下的实现,其工作流程主要包含一下几部分:

    1. 环境初始化

    Spark应用以Executor进程作为调度单元,因而在初始化阶段,DistriOptimizer将模型以Spark broadcast的方式将定义好的模型为每个数据分区clone一个模型副本,供后续训练使用。

    2. 梯度计算

    对于每一轮迭代,以Spark任务的方式,在每个数据分片上,首先根据当前的梯度得到最新的模型参数,执行前向计算,然而根据前向计算的输出,得到本轮迭代的梯度。最后,将各个分片的梯度通过BlockManager写入。

    3. 梯度汇聚

    通过另外一个Spark任务,从BlockManager读出各个分片写入的梯度,进行聚合,供下一轮迭代使用。

相关文章

  • BigDL入门 (4)- 优化器Optimizer

    优化器是模型训练的主要承担者,当模型输出的数据通过损失函数得到梯度后,优化器根据相应的优化算法计算得到新的模型参数...

  • Optimizer 优化器

    本文介绍常见的优化器及其作用 1.数据及超参数准备 2. 批训练数据 注:Data.DataLoader ,组合数...

  • Optimizer优化器

    1、Adagrad优化算法(https://www.zhihu.com/question/453599361/an...

  • MySql高级之性能分析(四)

    1.MySql Query Optimizer:查询优化器。 ​ 1). Mysql中有专门负责优化SELECT语...

  • 01-08 Optimizers: Buliding a par

    优化器:构建参数化模型 Optimizer: find minimum values of functions b...

  • keras-常用函数

    顺序模型 Sequential 配置学习过程 compile 优化器 optimizer 损失函数 loss 评估...

  • RBO和CBO详解

    RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL...

  • sql优化

    1、 优化器 优化器(Optimizer)是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。主要有以...

  • ProGuard入门

    ProGuard入门 简单过程 shrinker:检测和移除无用的类、方法、变量和属性 optimizer:优化代...

  • 优化器算法Optimizer

    记: 梯度下降算法 系数更新公式为:不妨设,且损失函数为:则梯度为:对于BGD,n为全体数据量;对于SGD,n为1...

网友评论

    本文标题:BigDL入门 (4)- 优化器Optimizer

    本文链接:https://www.haomeiwen.com/subject/atxjgqtx.html