Reproduzierbarkeit: Seeds, Konfigurationen und Umgebungen
random.seed(), np.random.seed(), YAML-Konfigurationsdateien und Umgebungen mit pip freeze festschreiben.
Reproduzierbarkeit: Seeds, Konfigurationen und Umgebungen ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Warum Reproduzierbarkeit?
Ein Experiment, das Sie nicht reproduzieren können, ist keine Wissenschaft. Wenn derselbe Code bei zweimaliger Ausführung unterschiedliche Ergebnisse liefert, können Sie Vergleichen nicht vertrauen und Regressionen nicht zuverlässig untersuchen.
Drei Säulen machen KI-Arbeit reproduzierbar: festgelegte Zufalls-Seeds, ausgelagerte Konfigurationen und festgeschriebene Umgebungen.
Quellen der Zufälligkeit
Zufälligkeit kann an vielen Stellen auftreten: beim Durchmischen der Daten, bei der Aufteilung in Trainings- und Testdaten, bei der Initialisierung von Gewichten, bei Dropout und bei Augmentierungen. Jede dieser Stellen kann einen anderen Zufallszahlengenerator verwenden.
Um einen Lauf zu reproduzieren, müssen Sie jeden Generator initialisieren, den Ihr Code verwendet.
Python und NumPy mit einem Seed versehen
Initialisieren Sie die Generatoren der Standardbibliothek und von NumPy mit einem einzigen festgelegten Seed (42 ist eine gängige Konvention).
import random
import numpy as np
random.seed(42)
np.random.seed(42)Frameworks mit Seeds initialisieren
ML-Frameworks verfügen über eigene Zufallszahlengeneratoren. Initialisieren Sie auch diese und übergeben Sie den Seed an Funktionen, die random_state akzeptieren.
import numpy as np
from sklearn.model_selection import train_test_split
X_train, X_test = train_test_split(X, test_size=0.2, random_state=42)
# torch.manual_seed(42) / tf.random.set_seed(42) for deep learningEine set_seed-Hilfsfunktion
Kapseln Sie die gesamte Initialisierung der Seeds in einer Funktion und rufen Sie diese am Anfang jedes Skripts auf – damit Sie keinen Generator vergessen.
import random, os
import numpy as np
def set_seed(seed=42):
random.seed(seed)
np.random.seed(seed)
os.environ["PYTHONHASHSEED"] = str(seed)
set_seed(42)Hartcodierte Hyperparameter sind eine Falle
Wenn Sie 0.01, 200 und 0.2 im Code verteilen, lassen sich Läufe nur schwer nachvollziehen und ändern. Betrug die Lernrate in dem Lauf mit dem besten Ergebnis 0.01 oder 0.001?
Die Lösung: Legen Sie alle Hyperparameter in einer Konfigurationsdatei ab, nicht im Code.
YAML-Konfigurationsdateien
YAML ist ein menschenlesbares Format, das sich ideal für Konfigurationen eignet. Eine Datei erfasst sämtliche Einstellungen für einen Lauf.
# config.yaml
seed: 42
model:
name: random_forest
n_estimators: 200
max_depth: 8
training:
test_size: 0.2
data:
path: data/processed/train.csvYAML mit PyYAML einlesen
Laden Sie die Konfiguration am Anfang Ihres Skripts mit PyYAML. Nun liest Ihr Code die Werte aus cfg, anstatt sie fest im Code zu hinterlegen.
import yaml
with open("config.yaml") as f:
cfg = yaml.safe_load(f)
print(cfg["model"]["n_estimators"]) # 200
set_seed(cfg["seed"])Konfiguration an den Code übergeben
Funktionen erhalten die Konfiguration oder deren Werte als Argumente. Für ein neues Experiment ändern Sie die YAML-Datei, nicht den Python-Code.
from sklearn.ensemble import RandomForestClassifier
m = cfg["model"]
model = RandomForestClassifier(
n_estimators=m["n_estimators"],
max_depth=m["max_depth"],
random_state=cfg["seed"],
)Die Umgebung mit festen Versionen versehen
Unterschiedliche Bibliotheksversionen erzeugen unterschiedliche Ergebnisse. Legen Sie exakte Versionen fest, damit andere Personen und auch Ihr zukünftiges Ich denselben Software-Stack installieren.
# requirements.txt with pinned versions
pandas==2.2.0
scikit-learn==1.4.0
numpy==1.26.4
# generate it with:
# pip freeze > requirements.txtVirtuelle Umgebungen
Isolieren Sie jedes Projekt, damit dessen festgelegte Versionen nicht mit denen anderer Projekte kollidieren. Erstellen und aktivieren Sie eine virtuelle Umgebung und installieren Sie anschließend die Abhängigkeiten aus der Datei mit den festgelegten Versionen.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtSchnelltest: Hyperparameter
Sie möchten zehn verschiedene Hyperparameter-Kombinationen ausprobieren und jeden Lauf reproduzierbar und nachvollziehbar halten.
Rückblick: Reproduzierbarkeit
Sie haben die drei Säulen reproduzierbarer KI kennengelernt:
- Seeds:
random.seed(42),np.random.seed(42), Framework-Seeds undrandom_state - Konfigurationen: alle Hyperparameter in
config.yaml, geladen mit PyYAML - Umgebungen: festgelegte Versionen in
requirements.txtinnerhalb einer virtuellen Umgebung
Ändern Sie die Konfiguration, nicht den Code. Als Nächstes: Best Practices für Jupyter-Notebooks.
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 53
- Lektionen
- 225
Häufig gestellte Fragen
Ist die Lektion „Reproduzierbarkeit: Seeds, Konfigurationen und Umgebungen“ kostenlos?
Ja — der vollständige Text von „Reproduzierbarkeit: Seeds, Konfigurationen und Umgebungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Reproduzierbarkeit: Seeds, Konfigurationen und Umgebungen“?
random.seed(), np.random.seed(), YAML-Konfigurationsdateien und Umgebungen mit pip freeze festschreiben. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Reproduzierbarkeit: Seeds, Konfigurationen und Umgebungen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Professionelle Verzeichnisstruktur für KI-Projekte
- Git für KI-Projekte
- Reproduzierbarkeit: Seeds, Konfigurationen und Umgebungen
- Best Practices für Jupyter Notebooks