Остановить Metaflow от распараллеливания шагов foreach - PullRequest
0 голосов
/ 04 февраля 2020

Я недавно начал использовать 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 не хватает памяти, мгновенно завершается с ошибкой.

Есть ли способ указать метапотоку выполнять эти шаги линейно / по одному вместо другого или другого обходного пути?

Спасибо

1 Ответ

1 голос
/ 11 февраля 2020

@ BBQuercus Вы можете ограничить распараллеливание, используя флаг --max-workers.

В настоящее время мы выполняем не более 16 задач параллельно, и вы можете переопределить его, например, как python myflow.py run --max-workers 32.

...