Hi all, I have two questions around what's best pr...
# ask-metaflow
h
Hi all, I have two questions around what's best practice in structuring flows: 1) It seems that you cannot branch out from a combine step. Is there a reason why that is so? In my current experimental flow this leads to having basically empty "pass through" steps that only contain a
self.next(self.foreach_step, foreach=...)
, so that I can continue, which at least feels strange? 2) How can I combine branching out to multiple steps and using
foreach
? In my example, I'm preparing different types of features and splits and then want to train also multiple types of models on all feature & split combinations, and later collect all their results. It seems that it's not possible to combine
foreach
with the static branching out, e.g.
self.next(self.train_model_A, self.train_model_B, ..., foreach="features_splits")
. I think I could workaround in two ways: Either by having another pass through step before each
self.train_model_*
that is again basically empty and just has a
self.next(self.train_model_*, foreach="features_splits")
or by including the model type etc. in my branching and having a generic train step that handles the logic on which model to pick etc., e.g.
self.next(self.train_model, foreach="model_types_features_splits")
, but in that case all model training steps would also be called the same in the UI. Any tips/ideas on what's recommended as an approach? Maybe this should be handled completely differently? Thanks!