Loggning av Experiment 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}")
För att förstå hur experimentloggning fungerar i praktiken kan du följa denna steg-för-steg-genomgång av den tillhandahållna koden. Först laddar koden ett exempeldataset med load_diabetes från scikit-learn och delar sedan upp det i tränings- och testuppsättningar. Experimentet namnges med mlflow.set_experiment, vilket antingen väljer ett befintligt experiment eller skapar ett nytt vid behov.
Huvuddelen av arbetsflödet börjar med mlflow.start_run(), vilket initierar en ny körning och säkerställer att alla efterföljande loggar grupperas tillsammans. Inom denna körning definieras en Ridge-regressionsmodell med en specifik alpha-parameter och tränas på träningsdata. Efter träningen görs prediktioner på testuppsättningen och medelkvadratiskt fel (MSE) beräknas som prestandamått.
MLflows loggningsfunktioner används sedan för att fånga viktiga aspekter av experimentet. Parametern alpha loggas med mlflow.log_param och det beräknade mse loggas som en metrisk variabel med mlflow.log_metric. Den tränade modellen sparas som en artefakt med mlflow.sklearn.log_model, vilket gör det enkelt att hämta eller distribuera modellen senare. För reproducerbarhet loggar koden även en parameter data_version, som registrerar ursprung eller version av det dataset som användes för träning.
Varning: logga alltid relevant metadata såsom dataversion, slumpmässigt frö och miljöinformation. Utan dessa blir det mycket svårare att reproducera resultat eller felsöka problem.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 6.67
Loggning av Experiment med MLflow
Svep för att visa menyn
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}")
För att förstå hur experimentloggning fungerar i praktiken kan du följa denna steg-för-steg-genomgång av den tillhandahållna koden. Först laddar koden ett exempeldataset med load_diabetes från scikit-learn och delar sedan upp det i tränings- och testuppsättningar. Experimentet namnges med mlflow.set_experiment, vilket antingen väljer ett befintligt experiment eller skapar ett nytt vid behov.
Huvuddelen av arbetsflödet börjar med mlflow.start_run(), vilket initierar en ny körning och säkerställer att alla efterföljande loggar grupperas tillsammans. Inom denna körning definieras en Ridge-regressionsmodell med en specifik alpha-parameter och tränas på träningsdata. Efter träningen görs prediktioner på testuppsättningen och medelkvadratiskt fel (MSE) beräknas som prestandamått.
MLflows loggningsfunktioner används sedan för att fånga viktiga aspekter av experimentet. Parametern alpha loggas med mlflow.log_param och det beräknade mse loggas som en metrisk variabel med mlflow.log_metric. Den tränade modellen sparas som en artefakt med mlflow.sklearn.log_model, vilket gör det enkelt att hämta eller distribuera modellen senare. För reproducerbarhet loggar koden även en parameter data_version, som registrerar ursprung eller version av det dataset som användes för träning.
Varning: logga alltid relevant metadata såsom dataversion, slumpmässigt frö och miljöinformation. Utan dessa blir det mycket svårare att reproducera resultat eller felsöka problem.
Tack för dina kommentarer!