【问题标题】:Stop Metaflow from parallelising foreach steps停止 Metaflow 并行化 foreach 步骤
【发布时间】:2020-02-04 08:06:47
【问题描述】:

我最近开始使用 Metaflow 进行超参数搜索。我对所有参数都使用foreach,如下所示:

from metaflow import FlowSpec, step

@step
def start_hpo(self):
    self.next(self.train_model, foreach='hpo_parameters')

@step
def train_model(self):
    # Trains model...

这很有效,因为它按预期启动了步骤train_model,但不幸的是它希望一次并行化所有步骤。这会导致我的 gpu / cpu 在步骤失败时立即耗尽内存。

有没有办法告诉元流线性地/一次一个地执行这些步骤,或者另一种解决方法?

谢谢

【问题讨论】:

    标签: python deep-learning netflix-metaflow


    【解决方案1】:

    @BBQuercus 您可以使用--max-workers 标志来限制并行化。

    目前,我们并行运行的任务不超过 16 个,例如,您可以将其覆盖为 python myflow.py run --max-workers 32

    【讨论】:

    • 有没有办法为特定步骤指定这个,或者在foreach启动的不同步骤中自定义max-workers
    • 目前没有,我们刚刚打开了一个跟踪功能请求的 Github 问题 - github.com/Netflix/metaflow/issues/172
    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    相关资源
    最近更新 更多