首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

sklearn 如何分布式计算呢?

  •  
  •   SlipStupig · 44 天前 · 829 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在做一个nlp项目,算法都搞好了,训练数据大概 20G 左右的样子,本想用GridSearchCV直接调参(一个有 7 个参数,几万个候选值),结果发现半天都没动静( 48Core e5v3, 128G 内存),但是参数改小后可以正常跑,于是我认为是性能不够,请问一下大家,sklearn有办法分布式调参不?

    第 1 条附言  ·  42 天前

    找到解决方法了,可以使用celery可以完成这项目工作,但是不能用GridSearchCv,而是用RandomsearchCV


    解决思路如下: celery里面需要有一个schedulerworker,下面讲一下作用和思路。

    如何确定scheduler

    用户提交任务后,第一个收到任务的节点将会成为scheduler

    scheduler作用是什么

    将用要调的参数范围确定,根据迭代次数,预先随机生成参数,将参数生成多个任务,发到其它节点上,然后等待所有的worker,将调参结果排序,取score最优结果的参数,进行交叉验证,输出给用户。

    worker作用

    作为计算资源池的一部分,将计算结果通过回调的方式进行返回

    4 回复  |  直到 2019-03-12 14:19:31 +08:00
        1
    Allianzcortex   44 天前   ♥ 1
    我记得之前有人分享过 ML 应该是 Sklearn 出原型,Spark 上生产; DL 是 PyTorch 出原型,TensorFlow 上生产? DataBricks 倒是有一篇文章讲过 sklearn 的分布式计算,https://databricks.com/blog/2016/02/08/auto-scaling-scikit-learn-with-apache-spark.html (:D
        2
    Moming   44 天前
    想调参的话,也没必要 20G 全用上吧。

    @Allianzcortex 顺便问一下,这个怎么讲?是 TF inference 性能好还是因为方便多机多卡?

    > DL 是 PyTorch 出原型,TensorFlow 上生产
        3
    ddzzhen   44 天前 via Android
    之前看过文档没找到
        4
    SorryChen   44 天前
    @Moming #2 发展的早,相对成熟,有很多 终端设备,边缘设备甚至 js 都能用 TF,不过 PyTorch 1.0 已经追上很多了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2701 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 15ms · UTC 12:49 · PVG 20:49 · LAX 05:49 · JFK 08:49
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1