Parametrisierung

In der nächsten Phase unseres Beispiels parametrisieren wir die Verarbeitung und erstellen hierfür die Datei params.yaml mit folgendem Inhalt:

max_features: 6000
ngram_range:
  lo: 1
  hi: 2

Damit die Parameter gelesen werden, wird dem dvc run-Befehl noch -p <filename>:<params_list> hinzugefügt, also in unserem Beispiel:

$ dvc run -n featurize -d src/featurization.py -d data/splitted \
    -p params.yaml:max_features,ngram_range.lo,ngram_range.hi -o data/features \
    python src/featurization.py data/splitted data/features

Dies ergänzt die dvc.yaml-Datei um:

featurize:
  cmd: python src/featurization.py data/splitted data/features
  deps:
  - data/splitted
  - src/featurization.py
  params:
  - max_features
  - ngram_range.lo
  - ngram_range.hi
  outs:
  - data/features

Damit diese Phase wiederholt werden kann, werden die MD5-Hashwerte und Parameterwerte in der dvc.lock-Datei gespeichert:

featurize:
  cmd: python src/featurization.py data/splitted data/features
  deps:
  - path: data/splitted
    md5: 1ce9051bf386e57c03fe779d476d93e7.dir
  - path: src/featurization.py
    md5: a56570e715e39134adb4fdc779296373
  params:
    params.yaml:
      max_features: 1000
      ngram_range.hi: 2
      ngram_range.lo: 1

Schließlich müssen noch dvc.lock, dvc.yaml und data/.gitignore im Git-Repository aktualisiert werden:

$ git add dvc.lock dvc.yaml data/.gitignore

Siehe auch