【问题标题】:Better than linear: how to train multiple ML models?优于线性:如何训练多个 ML 模型?
【发布时间】:2018-08-26 06:14:24
【问题描述】:

对于 ML 任务,我通常想比较几个模型。伪代码可以是这样的:

preprocesssing
for model in models:
    model.fit(X_train,y_train)
postprocessing and evaluation

我想知道是否有任何 (python) 框架可以通过以下方式改进此功能:

  1. 模型训练的并行化
  2. 每个模型都经过训练后序列化
  3. 显示中间结果
  4. 型号规格,例如通过 XML 或其他类似模型

我在这里找到了一个相关问题:Train multiple different sklearn models in parallel,但它并没有完全回答我的问题。我非常相信,一定已经有一个框架。

【问题讨论】:

    标签: python serialization machine-learning configuration parallel-processing


    【解决方案1】:

    首先,
    对于一些主要的消歧
    之间
    一个纯粹的-[SERIAL],
    一个“公正”-[CONCURRENT]
    一个真实的-[PARALLEL], kindly review remarks 在你的贬损帖子中


    下一个主题:


    1) 培训:
    不同的 ML 模型(主要是),但也有相同的模型(具有相邻的超参数设置),在不同的运行时间持续时间中执行 .fit(),所以是真的-[PARALLEL] 计划主要是无法实现的,“公正”-[CONCURRENT] 处理在许多 ML 流水线自动化工具中是可行的。除了最初的观点,您可能还知道,Python GIL 步进的问题通常通过 multiprocessing 和/或 架构来逃避,因为性能问题。

    2)序列化:
    有人可能会提醒,除了一些独特的“友好”例外,所有通用 SER/DES 操作本质上都是纯-[SERIAL],在 O( N ) 域的“温和”区域中复杂性-ZOO。

    3) 显示进度:
    专业/HPC ML 管道的非核心部分,但如果愿意为一些此类信息支付 [TIME]-域成本,最好间接报告一些 ML-管道处理监视器,而不是“嵌入”进度条“内部”-ML-管道,如果寻找真正浪费的专业 ML 管道基础设施的纳秒级,它的成本非常高。虽然这对于原型设计来说似乎是一个好主意,但一旦全局搜索空间和问题规模进入几个 [CPU*weeks] 的运行时间范围,甚至每个周期都天真地浪费了几纳秒别再开心了。

    4) XML 美化模型组件:
    我不能笼统地说,因为我没有看到任何来自“昂贵”的非核心 XML-or-*-beautified 模型描述的实用程序。

    过去 ~ 60 年来,专注于高级 HPC 的低延迟精心设计的处理从未使用过单一的非核心功能,以追求极致的处理性能,这在 O( R^n * I^m ) 中扩展了搜索空间,有n ~ ( 3, 6+ ); m ~ ( 1, 4+ ),根本没地方。
    很抱歉直接和开放 - 希望您会喜欢这些观点(营销可能会传播相反的内容,但事实很重要)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 2021-01-10
      • 2019-07-19
      • 2019-04-19
      • 2020-12-15
      • 2017-11-21
      • 1970-01-01
      相关资源
      最近更新 更多