优于线性:如何训练多个ML模型?

时间:2018-03-17 06:39:17

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

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

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

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

  1. 模型训练的并行化
  2. 每次训练后对模型进行序列化
  3. 显示中间结果
  4. 模型的规格,例如通过XML或其他类似模型
  5. 我在这里找到了一个相关问题:Train multiple different sklearn models in parallel,但它没有完全回答我的问题。我相信必须已有一个框架。

1 个答案:

答案 0 :(得分:0)

首先,
一些主要的歧义
之间 纯粹的 [SERIAL]
a"只是" - [CONCURRENT]
你的专利帖子中的真实 - [PARALLEL] kindly review remarks

接下来的主题:

1)培训:
不同的ML模型(主要),但也是相同的模型(具有相邻的超参数设置),在不同的运行时间内执行 .fit() ,所以true- { {1}} 时间表主要是无法实现的,只有" - [PARALLEL] 处理在许多ML管道自动化工具中都是可行的。除了初始视图之外,您可能也知道,通过将 [CONCURRENT] 和/或转换为架构,可以逃避Python GIL步骤的问题,因为性能问题。

2)SERIALIZATION:
有人可能会提醒,除了一些独特且友好的"例外,所有通用的SER / DES操作本质上都是纯粹的[SERIAL],在温和的#34; Complexity-ZOO的 multiprocessing 域的区域。

3)显示进度:
专业/ HPC ML管道的非核心部分,但如果愿意为少量此类信息支付 O( N ) - 域成本,则可以间接更好地报告一些{{3 ML-pipeline处理监视器,而不是"嵌入"进度条"内部" -ML-管道,如果寻找专业的ML管道基础设施确实浪费了几纳秒,它的价格非常昂贵。虽然对于原型设计来说似乎是一个好主意,但是一旦全局搜索空间和问题规模进入少数 [TIME] 的运行时间范围,即使是几纳秒的天真浪费也是如此每个周期停止变得有趣。

4)XML-BEAUTIFIED MODEL组件:
我不能说一般,因为我没有看到任何来自"昂贵"非核心XML或 - * - 美化模型描述。

最近〜60年的高级HPC专注,低延迟精心处理从未使用过单一的非核心功能,如果努力实现最终的处理性能,在 [CPU*weeks] 缩放搜索 - O( R^n * I^m )的空间根本没有位置 对不起直接和开放 - 希望你会喜欢这些观点(营销可能会播出相反的事情,但事实很重要)。