[PYTHON] Déboguer le pipeline avec Metaflow

Metaflow Metaflow | https://metaflow.org/ スクリーンショット 2020-06-16 11.32.58.png

Implémentation du pipeline

train.py



from metaflow import FlowSpec, step, Parameter

class TrainingPipeline(FlowSpec):
    param_config_str = Parameter('config',
                             help='Training config json str.',
                             default='{}')

    @step
    def start(self):
        self.config = json.loads(self.param_config_str)
        self.a = 0
        self.next(self.step1)

    @step
    def step1(self):
        self.a = 1
        self.next(self.step2)

    @step
    def step2(self):
        self.a = 2
        self.next(self.end)

   @step
    def end(self):
        pass

if __name__ == '__main__':
    TrainingPipeline()

Courir

python train.py

déboguer

Lorsque vous l'exécutez, vous verrez qu'un répertoire ".metaflow" a été créé dans le dossier d'exécution. Préparez le script suivant dans la hiérarchie où se trouve le répertoire .metaflow.

debug.py


from metaflow import Flow, namespace, Step

namespace(None)
data_start = Step('TrainingPipeline/[RUN_ID]/start').task.data
print('Step start : a -> {}'.format(data_start.a))

data1 = Step('TrainingPipeline/[RUN_ID]/step1').task.data
print('Step step1 : a -> {}'.format(data1.a))

data2 = Step('TrainingPipeline/[RUN_ID]/step2').task.data
print('Step step2 : a -> {}'.format(data2.a))

Courir

python debug.py

résultat

Step start : a -> 0
Step step1 : a -> 1
Step step2 : a -> 2

En passant, vous pouvez également enregistrer correctement DataFrame, etc.

Recommended Posts

Déboguer le pipeline avec Metaflow
Débogage C / C ++ avec gdb
Débogage facile avec ipdb
Débogage avec pdb en Python
Utile lors du débogage avec TouchDesigner
Débogage à distance avec Visual Studio 2017