【问题标题】:How does Spark's StreamingLinearRegressionWithSGD work?Spark 的 StreamingLinearRegressionWithSGD 是如何工作的?
【发布时间】:2017-08-24 04:59:20
【问题描述】:

我正在研究StreamingLinearRegressionWithSGD,它有两种方法trainOnpredictOn。这个类有一个model 对象,当训练数据到达trainOn 参数中指定的流时更新。

同时使用相同的模型进行预测。

我想知道模型权重是如何在工作人员/执行者之间更新和同步的。

任何链接或参考都会有所帮助。谢谢。

【问题讨论】:

    标签: apache-spark linear-regression apache-spark-mllib


    【解决方案1】:

    这里没有魔法。 StreamingLinearAlgorithm keeps a mutable reference 到当前的GeneralizedLinearModel

    trainOnuses DStream.foreachRDD to train a new model on each batch, and then updates the modelpredictOn uses DStream.map to predict 与当前版本的 model 类似。

    由于 Spark 将为每个阶段序列化闭包,因此无需任何额外的同步。 Spark 将在每次计算闭包时使用model 的当前值。

    实际上它相当于在驱动程序上运行一个循环,将runpredict 交错。

    【讨论】:

    • 感谢您的回答,我挖掘了代码,发现在 GradientDescent 中权重正在广播。这是发生权重同步的步骤吗?在这种情况下,每个执行者可能会在本地计算不同的权重。
    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 2015-02-11
    • 2014-04-13
    • 2015-10-11
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多