Sammenligning og Håndtering af Kørsel
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}")
Efter at have logget flere kørsler med forskellige hyperparametre, kan du sammenligne resultater ved hjælp af MLflow's UI eller API. For at bruge MLflow UI, start det ved at køre mlflow ui i din terminal. UI'en viser alle kørsler, deres parametre og metrikker, så du kan sortere eller filtrere efter accuracy, hyperparameterværdier eller tags. Du kan vælge flere kørsler for at sammenligne deres ydeevne side om side og vælge den bedste model baseret på din evalueringsmetrik. Alternativt kan du bruge MLflow Python API til at søge efter kørsler og hente den bedste programmatisk, hvilket er nyttigt til automatisering af modelvalg i produktionsarbejdsgange.
Konsistent navngivning og tagging af kørsler gør store projekter håndterbare. Brug beskrivende løbsnavne og tags til at spore eksperimentets formål, datasætsversion eller hyperparameter-søgegruppe. Denne praksis hjælper dig med hurtigt at identificere og sammenligne relevante kørsler, efterhånden som dit projekt vokser.
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
Sammenligning og Håndtering af Kørsel
Stryg for at vise menuen
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}")
Efter at have logget flere kørsler med forskellige hyperparametre, kan du sammenligne resultater ved hjælp af MLflow's UI eller API. For at bruge MLflow UI, start det ved at køre mlflow ui i din terminal. UI'en viser alle kørsler, deres parametre og metrikker, så du kan sortere eller filtrere efter accuracy, hyperparameterværdier eller tags. Du kan vælge flere kørsler for at sammenligne deres ydeevne side om side og vælge den bedste model baseret på din evalueringsmetrik. Alternativt kan du bruge MLflow Python API til at søge efter kørsler og hente den bedste programmatisk, hvilket er nyttigt til automatisering af modelvalg i produktionsarbejdsgange.
Konsistent navngivning og tagging af kørsler gør store projekter håndterbare. Brug beskrivende løbsnavne og tags til at spore eksperimentets formål, datasætsversion eller hyperparameter-søgegruppe. Denne praksis hjælper dig med hurtigt at identificere og sammenligne relevante kørsler, efterhånden som dit projekt vokser.
Tak for dine kommentarer!