Sammenligning og håndtering av kjøringer
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import logging import mlflow import mlflow.sklearn from mlflow.models import infer_signature from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load data iris = load_iris() X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.2, random_state=42 ) # Optionally set/announce experiment experiment_name = "IrisRandomForest" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Define different hyperparameter sets hyperparams_list = [ {"n_estimators": 50, "max_depth": 2}, {"n_estimators": 100, "max_depth": 3}, {"n_estimators": 150, "max_depth": 4} ] for params in hyperparams_list: run_name = f"rf_n{params['n_estimators']}_d{params['max_depth']}" logging.info(f"Starting run: {run_name} with params: {params}") with mlflow.start_run(run_name=run_name) as run: clf = RandomForestClassifier( n_estimators=params["n_estimators"], max_depth=params["max_depth"], random_state=42 ) clf.fit(X_train, y_train) preds = clf.predict(X_test) acc = accuracy_score(y_test, preds) logging.info(f"Accuracy: {acc:.4f}") # Log hyperparameters and metrics mlflow.log_params(params) mlflow.log_metric("accuracy", acc) # Log the model with input example and signature to avoid warnings input_example = X_test[:5] signature = infer_signature(X_test, preds) mlflow.sklearn.log_model(clf, "model", input_example=input_example, signature=signature) run_id = run.info.run_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Artifact URI: {artifact_uri}")
Etter å ha logget flere kjøringer med ulike hyperparametere, kan du sammenligne resultatene ved å bruke MLflow sitt brukergrensesnitt (UI) eller API. For å bruke MLflow UI, start det ved å kjøre mlflow ui i terminalen. Grensesnittet viser alle kjøringer, deres parametere og måleverdier, slik at du kan sortere eller filtrere etter accuracy, hyperparameterverdier eller tagger. Du kan velge flere kjøringer for å sammenligne ytelsen side om side og velge den beste modellen basert på evalueringsmetrikken. Alternativt kan du bruke MLflow Python API for å søke etter kjøringer og hente den beste programmatisk, noe som er nyttig for å automatisere modellvalg i produksjonsarbeidsflyter.
Konsistent navngivning og tagging av kjøringer gjør store prosjekter håndterbare. Bruk beskrivende kjøringsnavn og tagger for å spore eksperimentets formål, datasettversjon eller gruppe for hyperparametersøk. Denne praksisen hjelper deg å raskt identifisere og sammenligne relevante kjøringer etter hvert som prosjektet vokser.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 6.67
Sammenligning og håndtering av kjøringer
Sveip for å vise menyen
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import logging import mlflow import mlflow.sklearn from mlflow.models import infer_signature from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load data iris = load_iris() X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.2, random_state=42 ) # Optionally set/announce experiment experiment_name = "IrisRandomForest" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Define different hyperparameter sets hyperparams_list = [ {"n_estimators": 50, "max_depth": 2}, {"n_estimators": 100, "max_depth": 3}, {"n_estimators": 150, "max_depth": 4} ] for params in hyperparams_list: run_name = f"rf_n{params['n_estimators']}_d{params['max_depth']}" logging.info(f"Starting run: {run_name} with params: {params}") with mlflow.start_run(run_name=run_name) as run: clf = RandomForestClassifier( n_estimators=params["n_estimators"], max_depth=params["max_depth"], random_state=42 ) clf.fit(X_train, y_train) preds = clf.predict(X_test) acc = accuracy_score(y_test, preds) logging.info(f"Accuracy: {acc:.4f}") # Log hyperparameters and metrics mlflow.log_params(params) mlflow.log_metric("accuracy", acc) # Log the model with input example and signature to avoid warnings input_example = X_test[:5] signature = infer_signature(X_test, preds) mlflow.sklearn.log_model(clf, "model", input_example=input_example, signature=signature) run_id = run.info.run_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Artifact URI: {artifact_uri}")
Etter å ha logget flere kjøringer med ulike hyperparametere, kan du sammenligne resultatene ved å bruke MLflow sitt brukergrensesnitt (UI) eller API. For å bruke MLflow UI, start det ved å kjøre mlflow ui i terminalen. Grensesnittet viser alle kjøringer, deres parametere og måleverdier, slik at du kan sortere eller filtrere etter accuracy, hyperparameterverdier eller tagger. Du kan velge flere kjøringer for å sammenligne ytelsen side om side og velge den beste modellen basert på evalueringsmetrikken. Alternativt kan du bruke MLflow Python API for å søke etter kjøringer og hente den beste programmatisk, noe som er nyttig for å automatisere modellvalg i produksjonsarbeidsflyter.
Konsistent navngivning og tagging av kjøringer gjør store prosjekter håndterbare. Bruk beskrivende kjøringsnavn og tagger for å spore eksperimentets formål, datasettversjon eller gruppe for hyperparametersøk. Denne praksisen hjelper deg å raskt identifisere og sammenligne relevante kjøringer etter hvert som prosjektet vokser.
Takk for tilbakemeldingene dine!