我最近开始使用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内存耗尽,立即导致该步骤失败。
有没有一种方法可以告诉metaflow线性地/一次一个地做这些步骤,或者另一个变通方法?
谢谢
发布于 2020-02-12 04:08:01
@BBQuercus您可以使用--max-workers
标志来限制并行化。
目前,我们并行运行的任务不超过16个,例如,您可以将其覆盖为python myflow.py run --max-workers 32
。
https://stackoverflow.com/questions/60053025
复制相似问题