Reproduzieren

Um die Ergebnisse eines Projekts zu reproduzieren, clonen wir den Code und rufen anschließend die mit DVC verwalteten Daten ab:

$ git clone https://github.com/veit/dvc-example.git
$ cd dvc-example
$ dvc pull -TR
A       data/data.xml
1 file added
$ ls data/
data.xml    data.xml.dvc

Anschließend könnt ihr die Ergebnisse einfach reproduzieren mit dvc repro:

$ dvc repro
Verifying data sources in stage: 'data/data.xml.dvc'
Stage 'split' didn't change, skipping
Stage 'featurize' didn't change, skipping
Stage 'train' didn't change, skipping
Stage 'evaluate' didn't change, skipping

Ihr könnt nun z.B. Parameter in der params.yaml-Datei ändern und anschließend die Pipeline erneut durchlaufen:

$ dvc repro
Stage 'data/data.xml.dvc' didn't change, skipping
Stage 'split' didn't change, skipping
Running stage 'featurize' with command:
    python src/featurization.py data/splitted data/features

Stage 'train' didn't change, skipping
Stage 'evaluate' didn't change, skipping
To track the changes with git, run:
    git add dvc.lock

In unserem Fall hatte die Änderung der Parameter also keinen Einfluss auf das Ergebnis. Beachtet dabei jedoch, dass DVC Änderungen an Abhängigkeiten und Ausgaben über md5-Hashwerte erkennt, die in der dvc.lock-Datei gespeichert sind.