Logning af Eksperimenter med MLflow
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")
For at forstå, hvordan eksperimentlogning fungerer i praksis, kan du følge denne trin-for-trin-gennemgang af den angivne kode. Først indlæser koden et eksempel-datasæt ved hjælp af load_diabetes fra scikit-learn og deler det derefter op i trænings- og testdatasæt. Eksperimentet navngives med mlflow.set_experiment, som enten vælger et eksisterende eksperiment eller opretter et nyt, hvis det er nødvendigt.
Hoveddelen af arbejdsgangen begynder med mlflow.start_run(), som initialiserer et nyt run og sikrer, at alle efterfølgende logninger grupperes sammen. Inden for dette run defineres en Ridge-regressionsmodel med en specifik alpha-parameter og trænes på træningsdataene. Efter træningen laves der forudsigelser på testdatasættet, og mean squared error (MSE) beregnes som en præstationsmetrik.
MLflows logningsfunktioner bruges derefter til at registrere nøgleaspekter af eksperimentet. alpha-parameteren logges med mlflow.log_param, og den beregnede mse logges som en metrik ved hjælp af mlflow.log_metric. Den trænede model gemmes som et artefakt med mlflow.sklearn.log_model, hvilket gør det nemt at hente eller implementere modellen senere. For reproducerbarhed logger koden også en data_version-parameter, som registrerer oprindelsen eller versionen af det datasæt, der blev brugt til træning.
Advarsel: log altid relevant metadata såsom dataversion, tilfældig seed og miljøinformation. Uden disse bliver det meget sværere at reproducere resultater eller fejlfinde problemer.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 6.67
Logning af Eksperimenter med MLflow
Stryg for at vise menuen
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")
For at forstå, hvordan eksperimentlogning fungerer i praksis, kan du følge denne trin-for-trin-gennemgang af den angivne kode. Først indlæser koden et eksempel-datasæt ved hjælp af load_diabetes fra scikit-learn og deler det derefter op i trænings- og testdatasæt. Eksperimentet navngives med mlflow.set_experiment, som enten vælger et eksisterende eksperiment eller opretter et nyt, hvis det er nødvendigt.
Hoveddelen af arbejdsgangen begynder med mlflow.start_run(), som initialiserer et nyt run og sikrer, at alle efterfølgende logninger grupperes sammen. Inden for dette run defineres en Ridge-regressionsmodel med en specifik alpha-parameter og trænes på træningsdataene. Efter træningen laves der forudsigelser på testdatasættet, og mean squared error (MSE) beregnes som en præstationsmetrik.
MLflows logningsfunktioner bruges derefter til at registrere nøgleaspekter af eksperimentet. alpha-parameteren logges med mlflow.log_param, og den beregnede mse logges som en metrik ved hjælp af mlflow.log_metric. Den trænede model gemmes som et artefakt med mlflow.sklearn.log_model, hvilket gør det nemt at hente eller implementere modellen senere. For reproducerbarhed logger koden også en data_version-parameter, som registrerer oprindelsen eller versionen af det datasæt, der blev brugt til træning.
Advarsel: log altid relevant metadata såsom dataversion, tilfældig seed og miljøinformation. Uden disse bliver det meget sværere at reproducere resultater eller fejlfinde problemer.
Tak for dine kommentarer!