Použití automatizovaného strojového učení v kanálu Azure Machine Learning v Pythonu
PLATÍ PRO: Python SDK azureml v1
Funkce automatizovaného strojového učení ve službě Azure Machine Learning pomáhá zjišťovat vysoce výkonné modely, aniž byste museli znovu vytvářet všechny možné přístupy. V kombinaci s kanály Azure Machine Learning můžete vytvářet nasaditelné pracovní postupy, které rychle zjistí algoritmus, který je pro vaše data nejvhodnější. V tomto článku se dozvíte, jak efektivně spojit krok přípravy dat s automatizovaným krokem ML. Automatizované strojové učení dokáže rychle zjistit algoritmus, který je pro vaše data nejvhodnější, a zároveň vás umístí na cestu k MLOps a zprovoznění životního cyklu modelu s kanály.
Požadavky
Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte si bezplatnou nebo placenou verzi služby Azure Machine Learning ještě dnes.
Pracovní prostor služby Azure Machine Learning. Viz Vytvoření prostředků pracovního prostoru.
Znalost automatizovaných kanálů strojového učení a kanálů strojového učení v Azure a sady SDK
Kontrola centrálních tříd automatizovaného strojového učení
Automatizované strojové učení v kanálu je reprezentováno objektem AutoMLStep
. Třída AutoMLStep
je podtřídou třídy PipelineStep
. Graf PipelineStep
objektů definuje .Pipeline
Existuje několik podtříd .PipelineStep
Kromě tohoto AutoMLStep
článku se zobrazí PythonScriptStep
také příprava dat a další pro registraci modelu.
Upřednostňovaným způsobem, jak nejprve přesunout data do kanálu ML, je s Dataset
objekty. Pokud chcete přesouvat data mezi kroky a možným uložením výstupu dat ze spuštění, je upřednostňovaným způsobem s OutputFileDatasetConfig
objekty a OutputTabularDatasetConfig
objekty. Chcete-li objekt použít AutoMLStep
s objektem, PipelineData
musí být transformován na PipelineOutputTabularDataset
objekt. Další informace najdete v tématu Vstupní a výstupní data z kanálů ML.
Konfiguruje se AutoMLStep
prostřednictvím objektu AutoMLConfig
. AutoMLConfig
je flexibilní třída, jak je popsáno v tématu Konfigurace experimentů automatizovaného strojového učení v Pythonu.
A Pipeline
běží v objektu Experiment
. Run
Kanál má pro každý krok podřízený StepRun
kanál . Výstupy automatizovaného strojového učení StepRun
jsou trénovací metriky a nejvýkonnější model.
Aby bylo všechno konkrétní, tento článek vytvoří jednoduchý kanál pro úlohu klasifikace. Úkol předpovídá přežití Titanicu, ale nebudeme diskutovat o datech nebo úkolu s výjimkou předávání.
Začínáme
Načtení počáteční datové sady
Pracovní postup ML často začíná před existujícími daty směrného plánu. Toto je vhodný scénář pro registrovanou datovou sadu. Datové sady jsou viditelné v celém pracovním prostoru, podporují správu verzí a dají se interaktivně prozkoumat. Existuje mnoho způsobů, jak vytvořit a naplnit datovou sadu, jak je popsáno v tématu Vytváření datových sad Azure Machine Learning. Vzhledem k tomu, že k vytvoření kanálu použijeme sadu Python SDK, pomocí sady SDK stáhněte základní data a zaregistrujte je s názvem "titanic_ds".
from azureml.core import Workspace, Dataset
ws = Workspace.from_config()
if not 'titanic_ds' in ws.datasets.keys() :
# create a TabularDataset from Titanic training data
web_paths = ['https://dprepdata.blob.core.windows.net/demo/Titanic.csv',
'https://dprepdata.blob.core.windows.net/demo/Titanic2.csv']
titanic_ds = Dataset.Tabular.from_delimited_files(path=web_paths)
titanic_ds.register(workspace = ws,
name = 'titanic_ds',
description = 'Titanic baseline data',
create_new_version = True)
titanic_ds = Dataset.get_by_name(ws, 'titanic_ds')
Kód se nejprve přihlásí k pracovnímu prostoru Azure Machine Learning definovanému v config.json (vysvětlení najdete v tématu Vytvoření konfiguračního souboru pracovního prostoru. Pokud ještě není datová sada s názvem 'titanic_ds'
zaregistrovaná, vytvoří ji. Kód stáhne data CSV z webu, použije je k vytvoření instance TabularDataset
a pak zaregistruje datovou sadu v pracovním prostoru. Nakonec funkce Dataset.get_by_name()
přiřadí Dataset
funkci titanic_ds
.
Konfigurace úložiště a cílového výpočetního objektu
Další prostředky, které kanál bude potřebovat, jsou úložiště a obecně výpočetní prostředky služby Azure Machine Learning.
from azureml.core import Datastore
from azureml.core.compute import AmlCompute, ComputeTarget
datastore = ws.get_default_datastore()
compute_name = 'cpu-cluster'
if not compute_name in ws.compute_targets :
print('creating a new compute target...')
provisioning_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
min_nodes=0,
max_nodes=1)
compute_target = ComputeTarget.create(ws, compute_name, provisioning_config)
compute_target.wait_for_completion(
show_output=True, min_node_count=None, timeout_in_minutes=20)
# Show the result
print(compute_target.get_status().serialize())
compute_target = ws.compute_targets[compute_name]
Průběžná data mezi přípravou dat a krokem automatizovaného strojového učení se dají uložit do výchozího úložiště dat pracovního prostoru, takže nemusíme provádět více než volání get_default_datastore()
objektu Workspace
.
Potom kód zkontroluje, jestli už cílový výpočetní objekt 'cpu-cluster'
služby Azure Machine Learning existuje. Pokud ne, určíme, že chceme malý cílový výpočetní objekt založený na procesoru. Pokud plánujete používat funkce hloubkového učení automatizovaného strojového učení (například funkci funkce textu s podporou DNN), měli byste zvolit výpočetní prostředky se silnou podporou GPU, jak je popsáno ve velikostech virtuálních počítačů optimalizovaných pro GPU.
Kód blokuje, dokud se cíl nezřídí, a pak vytiskne některé podrobnosti o právě vytvořeném cílovém výpočetním objektu. Nakonec se pojmenovaný cílový výpočetní objekt načte z pracovního prostoru a přiřadí se mu compute_target
.
Konfigurace trénovacího spuštění
Kontext modulu runtime je nastavený vytvořením a konfigurací objektu RunConfiguration
. Tady nastavíme cílový výpočetní objekt.
from azureml.core.runconfig import RunConfiguration
from azureml.core.conda_dependencies import CondaDependencies
aml_run_config = RunConfiguration()
# Use just-specified compute target ("cpu-cluster")
aml_run_config.target = compute_target
# Specify CondaDependencies obj, add necessary packages
aml_run_config.environment.python.conda_dependencies = CondaDependencies.create(
conda_packages=['pandas','scikit-learn'],
pip_packages=['azureml-sdk[automl]', 'pyarrow'])
Příprava dat pro automatizované strojové učení
Zápis kódu pro přípravu dat
Základní datová sada Titanic se skládá ze smíšených číselných a textových dat s některými chybějícími hodnotami. Pokud ho chcete připravit na automatizované strojové učení, krok kanálu přípravy dat:
- Vyplnění chybějících dat náhodnými daty nebo kategorií odpovídající neznámé
- Transformace kategorických dat na celá čísla
- Vyřazení sloupců, které nemáme v úmyslu použít
- Rozdělení dat do trénovacích a testovacích sad
- Zápis transformovaných dat do
OutputFileDatasetConfig
výstupních cest
%%writefile dataprep.py
from azureml.core import Run
import pandas as pd
import numpy as np
import argparse
RANDOM_SEED=42
def prepare_age(df):
# Fill in missing Age values from distribution of present Age values
mean = df["Age"].mean()
std = df["Age"].std()
is_null = df["Age"].isnull().sum()
# compute enough (== is_null().sum()) random numbers between the mean, std
rand_age = np.random.randint(mean - std, mean + std, size = is_null)
# fill NaN values in Age column with random values generated
age_slice = df["Age"].copy()
age_slice[np.isnan(age_slice)] = rand_age
df["Age"] = age_slice
df["Age"] = df["Age"].astype(int)
# Quantize age into 5 classes
df['Age_Group'] = pd.qcut(df['Age'],5, labels=False)
df.drop(['Age'], axis=1, inplace=True)
return df
def prepare_fare(df):
df['Fare'].fillna(0, inplace=True)
df['Fare_Group'] = pd.qcut(df['Fare'],5,labels=False)
df.drop(['Fare'], axis=1, inplace=True)
return df
def prepare_genders(df):
genders = {"male": 0, "female": 1, "unknown": 2}
df['Sex'] = df['Sex'].map(genders)
df['Sex'].fillna(2, inplace=True)
df['Sex'] = df['Sex'].astype(int)
return df
def prepare_embarked(df):
df['Embarked'].replace('', 'U', inplace=True)
df['Embarked'].fillna('U', inplace=True)
ports = {"S": 0, "C": 1, "Q": 2, "U": 3}
df['Embarked'] = df['Embarked'].map(ports)
return df
parser = argparse.ArgumentParser()
parser.add_argument('--output_path', dest='output_path', required=True)
args = parser.parse_args()
titanic_ds = Run.get_context().input_datasets['titanic_ds']
df = titanic_ds.to_pandas_dataframe().drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)
df = prepare_embarked(prepare_genders(prepare_fare(prepare_age(df))))
df.to_csv(os.path.join(args.output_path,"prepped_data.csv"))
print(f"Wrote prepped data to {args.output_path}/prepped_data.csv")
Výše uvedený fragment kódu je úplný, ale minimální příklad přípravy dat pro data Titanic. Fragment kódu začíná příkazem "magic" Jupyter pro výstup kódu do souboru. Pokud nepoužíváte poznámkový blok Jupyter, odeberte tento řádek a vytvořte ho ručně.
Různé prepare_
funkce ve výše uvedeném fragmentu kódu upravují příslušný sloupec ve vstupní datové sadě. Tyto funkce pracují s daty po změně na objekt Pandas DataFrame
. V každém případě chybějící data jsou buď vyplněná reprezentativními náhodnými daty, nebo kategorickými daty označujícími "Neznámé". Textová kategorická data se mapují na celá čísla. Sloupce, které už nepotřebujete, se přepíšou nebo zahodí.
Jakmile kód definuje funkce pro přípravu dat, kód parsuje vstupní argument, což je cesta, ke které chceme zapsat data. (Tyto hodnoty budou určeny OutputFileDatasetConfig
objekty, které budou popsány v dalším kroku.) Kód načte zaregistrovaný 'titanic_cs'
Dataset
kód , převede ho na Pandas DataFrame
a volá různé funkce pro přípravu dat.
Vzhledem k tomu, že je adresář output_path
, volání určuje to_csv()
název souboru prepped_data.csv
.
Zápis kroku kanálu přípravy dat (PythonScriptStep
)
Výše popsaný kód přípravy dat musí být přidružený k objektu PythonScripStep
, který se má použít s kanálem. Cesta, ke které se zapisuje výstup CSV, je generována objektem OutputFileDatasetConfig
. Prostředky připravené dříve, například ComputeTarget
, a RunConfig
jsou 'titanic_ds' Dataset
použity k dokončení specifikace.
from azureml.data import OutputFileDatasetConfig
from azureml.pipeline.steps import PythonScriptStep
prepped_data_path = OutputFileDatasetConfig(name="output_path")
dataprep_step = PythonScriptStep(
name="dataprep",
script_name="dataprep.py",
compute_target=compute_target,
runconfig=aml_run_config,
arguments=["--output_path", prepped_data_path],
inputs=[titanic_ds.as_named_input('titanic_ds')],
allow_reuse=True
)
Objekt prepped_data_path
je typu OutputFileDatasetConfig
, který odkazuje na adresář. Všimněte si, že je zadaný v parametru arguments
. Pokud si projdete předchozí krok, uvidíte, že v kódu pro přípravu dat je hodnota argumentu '--output_path'
cesta k adresáři, na kterou byl soubor CSV zapsán.
Trénovat pomocí nástroje AutoMLStep
Konfigurace kroku automatizovaného kanálu ML se provádí s AutoMLConfig
třídou. Tato flexibilní třída je popsaná v tématu Konfigurace experimentů automatizovaného strojového učení v Pythonu. Vstup a výstup dat jsou jedinými aspekty konfigurace, které vyžadují zvláštní pozornost v kanálu ML. Vstup a výstup pro AutoMLConfig
kanály je podrobně popsán níže. Kromě dat je výhodou kanálů ML možnost používat různé výpočetní cíle pro různé kroky. Pro automatizovaný proces STROJOVÉho učení můžete použít výkonnější ComputeTarget
. To je stejně jednoduché jako přiřazení výkonnějšího RunConfiguration
parametru AutoMLConfig
objektu run_configuration
.
Odeslání dat do AutoMLStep
V kanálu ML musí být vstupní data objektem Dataset
. Nejvýkonnější způsob je poskytnout vstupní data ve formě OutputTabularDatasetConfig
objektů. Objekt tohoto typu vytvoříte pomocí objektu read_delimited_files()
na objektu OutputFileDatasetConfig
, jako prepped_data_path
je například prepped_data_path
objekt.
# type(prepped_data) == OutputTabularDatasetConfig
prepped_data = prepped_data_path.read_delimited_files()
Další možností je použít Dataset
objekty zaregistrované v pracovním prostoru:
prepped_data = Dataset.get_by_name(ws, 'Data_prepared')
Porovnání těchto dvou technik:
Postup | Výhody a nevýhody |
---|---|
OutputTabularDatasetConfig |
Vyšší výkon |
Přirozená trasa z OutputFileDatasetConfig |
|
Data se po spuštění kanálu neuchovávají | |
Registrovaný Dataset |
Nižší výkon |
Lze vygenerovat mnoha způsoby. | |
Data se uchovávají a jsou viditelná v celém pracovním prostoru. | |
Poznámkový blok znázorňující zaregistrovanou Dataset techniku |
Určení automatizovaných výstupů ML
Výstupy AutoMLStep
jsou konečné skóre metriky vyššího modelu a samotného modelu. Pokud chcete tyto výstupy použít v dalších krocích kanálu, připravte OutputFileDatasetConfig
objekty na jejich příjem.
from azureml.pipeline.core import TrainingOutput, PipelineData
metrics_data = PipelineData(name='metrics_data',
datastore=datastore,
pipeline_output_name='metrics_output',
training_output=TrainingOutput(type='Metrics'))
model_data = PipelineData(name='best_model_data',
datastore=datastore,
pipeline_output_name='model_output',
training_output=TrainingOutput(type='Model'))
Výše uvedený fragment kódu vytvoří dva PipelineData
objekty pro metriky a výstup modelu. Každý se jmenuje, přiřazený k výchozímu úložišti dat načteným dříve a je přidružen ke konkrétnímu type
z TrainingOutput
objektu AutoMLStep
. Vzhledem k tomu, že tyto PipelineData
objekty přiřadímepipeline_output_name
, budou jejich hodnoty k dispozici nejen z jednotlivých kroků kanálu, ale z kanálu jako celku, jak je popsáno níže v části Prozkoumání výsledků kanálu.
Konfigurace a vytvoření kroku automatizovaného kanálu ML
Jakmile jsou definovány vstupy a výstupy, je čas vytvořit AutoMLConfig
a AutoMLStep
. Podrobnosti o konfiguraci budou záviset na vaší úloze, jak je popsáno v tématu Konfigurace experimentů automatizovaného strojového učení v Pythonu. Pro úlohu klasifikace přežití Titanic ukazuje následující fragment kódu jednoduchou konfiguraci.
from azureml.train.automl import AutoMLConfig
from azureml.pipeline.steps import AutoMLStep
# Change iterations to a reasonable number (50) to get better accuracy
automl_settings = {
"iteration_timeout_minutes" : 10,
"iterations" : 2,
"experiment_timeout_hours" : 0.25,
"primary_metric" : 'AUC_weighted'
}
automl_config = AutoMLConfig(task = 'classification',
path = '.',
debug_log = 'automated_ml_errors.log',
compute_target = compute_target,
run_configuration = aml_run_config,
featurization = 'auto',
training_data = prepped_data,
label_column_name = 'Survived',
**automl_settings)
train_step = AutoMLStep(name='AutoML_Classification',
automl_config=automl_config,
passthru_automl_config=False,
outputs=[metrics_data,model_data],
enable_default_model_output=False,
enable_default_metrics_output=False,
allow_reuse=True)
Fragment kódu ukazuje idiom běžně používaný s AutoMLConfig
. Argumenty, které jsou více tekutin (hyperparametry-ish), jsou zadány v samostatném slovníku, zatímco hodnoty s menší pravděpodobností změny se zadají přímo v konstruktoru AutoMLConfig
. V tomto případě automl_settings
zadejte krátké spuštění: spuštění se zastaví pouze po 2 iteraci nebo 15 minutách, podle toho, co nastane dříve.
Slovník automl_settings
se předá konstruktoru AutoMLConfig
jako kwargs. Ostatní parametry nejsou složité:
task
je pro tento příklad nastavenclassification
. Další platné hodnoty jsouregression
aforecasting
path
adebug_log
popište cestu k projektu a místnímu souboru, do kterého se zapíšou informace o ladění.compute_target
je dříve definovanácompute_target
, že v tomto příkladu je levný počítač založený na procesoru. Pokud používáte možnosti hlubokého učení AutoML, měli byste změnit cílový výpočetní objekt tak, aby byl založený na GPU.featurization
je nastavena naauto
hodnotu . Další podrobnosti najdete v části Featurizace dat v dokumentu o konfiguraci automatizovaného strojového učení.label_column_name
určuje, který sloupec nás zajímá o predikci.training_data
je nastaven naOutputTabularDatasetConfig
objekty vytvořené z výstupů kroku přípravy dat.
Sám AutoMLStep
přebírá AutoMLConfig
objekty PipelineData
vytvořené k uchovávání metrik a dat modelu a jako výstupy.
Důležité
Musíte nastavit enable_default_model_output
a enable_default_metrics_output
pouze True
pokud používáte AutoMLStepRun
.
V tomto příkladu proces automatizovaného strojového učení provede křížové ověření v systému training_data
. Počet křížových ověření můžete řídit pomocí argumentu n_cross_validations
. Pokud jste už trénovací data rozdělili v rámci kroků přípravy dat, můžete nastavit validation_data
vlastní Dataset
.
Někdy se může zobrazit použití X
datových funkcí a y
popisků dat. Tato technika je zastaralá a měli byste ji použít training_data
pro vstup.
Registrace modelu generovaného automatizovaným strojovém učením
Posledním krokem v jednoduchém kanálu ML je registrace vytvořeného modelu. Přidáním modelu do registru modelů pracovního prostoru bude dostupný na portálu a může být verze. Pokud chcete zaregistrovat model, napište jiný PythonScriptStep
, který přebírá model_data
výstup AutoMLStep
.
Napsání kódu pro registraci modelu
Model je registrován v .Workspace
Pravděpodobně znáte použití Workspace.from_config()
k přihlášení k pracovnímu prostoru na místním počítači, ale existuje jiný způsob, jak získat pracovní prostor ze spuštěného kanálu ML. Načte Run.get_context()
aktivní Run
. Tento run
objekt poskytuje přístup k mnoha důležitým objektům, včetně Workspace
zde použitých.
%%writefile register_model.py
from azureml.core.model import Model, Dataset
from azureml.core.run import Run, _OfflineRun
from azureml.core import Workspace
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--model_name", required=True)
parser.add_argument("--model_path", required=True)
args = parser.parse_args()
print(f"model_name : {args.model_name}")
print(f"model_path: {args.model_path}")
run = Run.get_context()
ws = Workspace.from_config() if type(run) == _OfflineRun else run.experiment.workspace
model = Model.register(workspace=ws,
model_path=args.model_path,
model_name=args.model_name)
print("Registered version {0} of model {1}".format(model.version, model.name))
Napsání kódu PythonScriptStep
Upozorňující
Pokud používáte sadu Azure Machine Learning SDK v1 a váš pracovní prostor je nakonfigurovaný pro izolaci sítě (VNet), může se při spuštění tohoto kroku zobrazit chyba. Další informace naleznete v tématu HyperdriveStep a AutoMLStep selhání s izolací sítě.
Registrace modelu PythonScriptStep
používá PipelineParameter
pro jeden z jeho argumentů. Parametry kanálu jsou argumenty kanálů, které je možné snadno nastavit v době odeslání za běhu. Jakmile se deklarují, předají se jako normální argumenty.
from azureml.pipeline.core.graph import PipelineParameter
# The model name with which to register the trained model in the workspace.
model_name = PipelineParameter("model_name", default_value="TitanicSurvivalInitial")
register_step = PythonScriptStep(script_name="register_model.py",
name="register_model",
allow_reuse=False,
arguments=["--model_name", model_name, "--model_path", model_data],
inputs=[model_data],
compute_target=compute_target,
runconfig=aml_run_config)
Vytvoření a spuštění automatizovaného kanálu ML
Vytvoření a spuštění kanálu, který obsahuje AutoMLStep
, se neliší od normálního kanálu.
from azureml.pipeline.core import Pipeline
from azureml.core import Experiment
pipeline = Pipeline(ws, [dataprep_step, train_step, register_step])
experiment = Experiment(workspace=ws, name='titanic_automl')
run = experiment.submit(pipeline, show_output=True)
run.wait_for_completion()
Výše uvedený kód kombinuje kroky přípravy dat, automatizovaného strojového učení a registrace modelu do objektu Pipeline
. Potom vytvoří Experiment
objekt. Konstruktor Experiment
načte pojmenovaný experiment, pokud existuje, nebo ho v případě potřeby vytvoří. Odešle Pipeline
do objektu Experiment
, vytvoření Run
objektu, který bude asynchronně spustit kanál. Funkce wait_for_completion()
blokuje, dokud se nespustí.
Prozkoumání výsledků kanálu
run
Po dokončení můžete načíst PipelineData
objekty, které byly přiřazeny pipeline_output_name
. Výsledky si můžete stáhnout a načíst je pro další zpracování.
metrics_output_port = run.get_pipeline_output('metrics_output')
model_output_port = run.get_pipeline_output('model_output')
metrics_output_port.download('.', show_progress=True)
model_output_port.download('.', show_progress=True)
Stažené soubory se zapisují do podadresáře azureml/{run.id}/
. Soubor metrik je formátovaný ve formátu JSON a lze ho převést na datový rámec Pandas ke zkoumání.
Pro místní zpracování možná budete muset nainstalovat relevantní balíčky, jako jsou Pandas, Pickle, sada Azure Machine Learning SDK atd. V tomto příkladu je pravděpodobné, že nejlepší model nalezený automatizovaným ml bude záviset na XGBoost.
!pip install xgboost==0.90
import pandas as pd
import json
metrics_filename = metrics_output._path_on_datastore
# metrics_filename = path to downloaded file
with open(metrics_filename) as f:
metrics_output_result = f.read()
deserialized_metrics_output = json.loads(metrics_output_result)
df = pd.DataFrame(deserialized_metrics_output)
df
Výše uvedený fragment kódu ukazuje soubor metrik, který se načítá z jeho umístění v úložišti dat Azure. Můžete ho také načíst ze staženého souboru, jak je znázorněno v komentáři. Jakmile ho deserializujete a převedete na datový rámec Pandas, můžete zobrazit podrobné metriky pro každou iteraci automatizovaného kroku ML.
Soubor modelu lze deserializovat do objektu Model
, který můžete použít k odvozování, další analýze metrik atd.
import pickle
model_filename = model_output._path_on_datastore
# model_filename = path to downloaded file
with open(model_filename, "rb" ) as f:
best_model = pickle.load(f)
# ... inferencing code not shown ...
Další informace o načítání a práci s existujícími modely najdete v tématu Použití existujícího modelu se službou Azure Machine Learning.
Stažení výsledků automatizovaného spuštění ML
Pokud jste postupovali podle článku, budete mít objekt instance run
. Dokončené Run
objekty ale můžete načíst také z objektu Workspace
Experiment
.
Pracovní prostor obsahuje úplný záznam všech experimentů a spuštění. Pomocí portálu můžete vyhledat a stáhnout výstupy experimentů nebo použít kód. Pokud chcete získat přístup k záznamům z historického spuštění, pomocí služby Azure Machine Learning vyhledejte ID spuštění, které vás zajímá. Pomocí tohoto ID můžete zvolit konkrétní run
způsob a Workspace
Experiment
.
# Retrieved from Azure Machine Learning web UI
run_id = 'aaaaaaaa-bbbb-cccc-dddd-0123456789AB'
experiment = ws.experiments['titanic_automl']
run = next(run for run in ex.get_runs() if run.id == run_id)
Řetězce ve výše uvedeném kódu byste museli změnit na specifika historického spuštění. Výše uvedený fragment kódu předpokládá, že jste přiřadili ws
příslušnému Workspace
normálnímu from_config()
kódu . Experiment zájmu se přímo načte a pak kód najde Run
zájem tím, že se shoduje s run.id
hodnotou.
Jakmile máte Run
objekt, můžete si stáhnout metriky a model.
automl_run = next(r for r in run.get_children() if r.name == 'AutoML_Classification')
outputs = automl_run.get_outputs()
metrics = outputs['default_metrics_AutoML_Classification']
model = outputs['default_model_AutoML_Classification']
metrics.get_port_data_reference().download('.')
model.get_port_data_reference().download('.')
Každý Run
objekt obsahuje StepRun
objekty, které obsahují informace o spuštění jednotlivých kroků kanálu. StepRun
Vyhledá se run
objekt pro AutoMLStep
objekt . Metriky a model se načítají pomocí výchozích názvů, které jsou k dispozici, i když nepředáte PipelineData
objekty parametru outputs
AutoMLStep
.
Nakonec se skutečné metriky a model stáhnou do místního počítače, jak je popsáno v části Prozkoumat výsledky kanálu výše.
Další kroky
- Spusťte tento poznámkový blok Jupyter zobrazující úplný příklad automatizovaného strojového učení v kanálu , který k predikci jízdy taxíkem používá regresi.
- Vytváření automatizovaných experimentů ML bez psaní kódu
- Prozkoumejte celou řadu poznámkových bloků Jupyter, které demonstrují automatizované strojové učení
- Přečtěte si o integraci kanálu do kompletního MLOps nebo prozkoumání úložiště MLOps na GitHubu .