Condividi tramite


Run Classe

Definisce la classe di base per tutte le esecuzioni dell'esperimento di Azure Machine Learning.

Un'esecuzione rappresenta una singola versione di valutazione di un esperimento. Le esecuzioni vengono usate per monitorare l'esecuzione asincrona di una versione di valutazione, le metriche di log e archiviare l'output della versione di valutazione e per analizzare i risultati e accedere agli artefatti generati dalla versione di valutazione.

Gli oggetti Run vengono creati quando si invia uno script per eseguire il training di un modello in molti scenari diversi in Azure Machine Learning, incluse le esecuzioni di HyperDrive, le esecuzioni della pipeline e le esecuzioni autoML. Un oggetto Run viene creato anche quando si submit o start_logging con la Experiment classe .

Per iniziare a usare esperimenti e esecuzioni, vedere

Inizializzare l'oggetto Run.

Ereditarietà
azureml._run_impl.run_base._RunBase
Run

Costruttore

Run(experiment, run_id, outputs=None, **kwargs)

Parametri

Nome Descrizione
experiment
Necessario

Oggetto contenente l'esperimento.

run_id
Necessario
str

ID dell'esecuzione.

outputs
str

Output da tenere traccia.

valore predefinito: None
_run_dto
Necessario
<xref:azureml._restclient.models.run_dto.RunDto>

Solo per uso interno.

kwargs
Necessario

Dizionario di parametri di configurazione aggiuntivi.

experiment
Necessario

Oggetto contenente l'esperimento.

run_id
Necessario
str

ID dell'esecuzione.

outputs
Necessario
str

Output da tenere traccia.

kwargs
Necessario

Dizionario di parametri di configurazione aggiuntivi.

Commenti

Un'esecuzione rappresenta una singola versione di valutazione di un esperimento. Un oggetto Run viene usato per monitorare l'esecuzione asincrona di una versione di valutazione, le metriche di log e archiviare l'output della versione di valutazione e per analizzare i risultati e accedere agli artefatti generati dalla versione di valutazione.

L'esecuzione viene usata all'interno del codice di sperimentazione per registrare metriche e artefatti nel servizio Cronologia di esecuzione.

L'esecuzione viene usata all'esterno degli esperimenti per monitorare lo stato di avanzamento e per eseguire query e analizzare le metriche e i risultati generati.

La funzionalità Di esecuzione include:

  • Archiviazione e recupero di metriche e dati

  • Caricamento e download di file

  • Uso di tag e della gerarchia figlio per una ricerca semplice delle esecuzioni precedenti

  • Registrazione di file di modello archiviati come modello che possono essere operativi

  • Archiviazione, modifica e recupero delle proprietà di un'esecuzione

  • Caricamento dell'esecuzione corrente da un ambiente remoto con il get_context metodo

  • Snapshot efficiente di un file o di una directory per la riproducibilità

Questa classe funziona con in Experiment questi scenari:

  • Creazione di un'esecuzione tramite l'esecuzione di codice tramite submit

  • Creazione di un'esecuzione interattiva in un notebook tramite start_logging

  • Registrazione delle metriche e caricamento di elementi nell'esperimento, ad esempio quando si usa log

  • Lettura delle metriche e download di artefatti durante l'analisi dei risultati sperimentali, ad esempio quando si usa get_metrics

Per inviare un'esecuzione, creare un oggetto di configurazione che descrive come viene eseguito l'esperimento. Ecco alcuni esempi dei diversi oggetti di configurazione che è possibile usare:

  • ScriptRunConfig

  • azureml.train.automl.automlconfig.AutoMLConfig

  • azureml.train.hyperdrive.HyperDriveConfig

  • azureml.pipeline.core.Pipeline

  • azureml.pipeline.core.PublishedPipeline

  • azureml.pipeline.core.PipelineEndpoint

Le metriche seguenti possono essere aggiunte a un'esecuzione durante il training di un esperimento.

  • Scalare

    • Registrare un valore numerico o stringa nell'esecuzione con il nome specificato usando log. La registrazione di una metrica per un'esecuzione fa sì che tale metrica venga archiviata nel record esecuzione nell'esperimento. È possibile registrare la stessa metrica più volte all'interno di un'esecuzione. Il risultato verrà considerato un vettore di tale metrica.

    • Esempio: run.log("accuracy", 0.95)

  • Elenco

    • Registrare un elenco di valori per l'esecuzione con il nome specificato usando log_list.

    • Esempio: run.log_list("accuracies", [0.6, 0.7, 0.87])

  • Riga

    • L'uso di log_row crea una metrica con più colonne, come descritto in kwargs. Ogni parametro denominato genera una colonna con il valore specificato. log_row può essere chiamato una volta per registrare una tupla arbitraria o più volte in un ciclo per generare una tabella completa.

    • Esempio: run.log_row("Y over X", x=1, y=0.4)

  • Tabella

    • Registrare un oggetto dizionario nell'esecuzione con il nome specificato usando log_table.

    • Esempio: run.log_table("Y over X", {"x":[1, 2, 3], "y":[0.6, 0.7, 0.89]})

  • Immagine

    • Registrare un'immagine per il record esecuzione. Usare log_image per registrare un file di immagine o un tracciato matplotlib per l'esecuzione. Queste immagini saranno visibili e confrontabili nel record esecuzione.

    • Esempio: run.log_image("ROC", path)

Metodi

add_properties

Aggiungere proprietà non modificabili all'esecuzione.

I tag e le proprietà (entrambi dict[str, str]) differiscono per la loro mutabilità. Le proprietà non sono modificabili, quindi creano un record permanente a scopo di controllo. I tag sono modificabili. Per altre informazioni sull'uso di tag e proprietà, vedere Tag and find runs .For more information about working with tags and properties, see Tag and find runs.

add_type_provider

Hook di estendibilità per i tipi run personalizzati archiviati nella cronologia di esecuzione.

cancel

Contrassegnare l'esecuzione come annullata.

Se è presente un processo associato a un campo cancel_uri impostato, terminare anche il processo.

child_run

Creare un'esecuzione figlio.

clean

Rimuovere i file corrispondenti all'esecuzione corrente nella destinazione specificata nella configurazione di esecuzione.

complete

Attendere l'elaborazione della coda di attività.

L'esecuzione viene quindi contrassegnata come completata. Viene usato in genere in scenari di notebook interattivi.

create_children

Creare una o più esecuzioni figlio.

download_file

Scaricare un file associato dall'archiviazione.

download_files

Scaricare i file da un determinato prefisso di archiviazione (nome cartella) o dall'intero contenitore se il prefisso non è specificato.

fail

Contrassegnare l'esecuzione come non riuscita.

Impostare facoltativamente la proprietà Error dell'esecuzione con un messaggio o un'eccezione passata a error_details.

flush

Attendere l'elaborazione della coda delle attività.

get

Ottenere l'esecuzione per questa area di lavoro con il relativo ID di esecuzione.

get_all_logs

Scaricare tutti i log per l'esecuzione in una directory.

get_children

Ottenere tutti gli elementi figlio per l'esecuzione corrente selezionata dai filtri specificati.

get_context

Restituire il contesto del servizio corrente.

Usare questo metodo per recuperare il contesto del servizio corrente per la registrazione delle metriche e il caricamento di file. Se allow_offline è True (impostazione predefinita), le azioni sull'oggetto Run verranno stampate in modo standard.

get_detailed_status

Recuperare lo stato più recente dell'esecuzione. Se lo stato dell'esecuzione è "Accodato", mostrerà i dettagli.

get_details

Ottenere la definizione, le informazioni sullo stato, i file di log correnti e altri dettagli dell'esecuzione.

get_details_with_logs

Restituire lo stato di esecuzione, incluso il contenuto del file di log.

get_environment

Ottenere la definizione dell'ambiente usata da questa esecuzione.

get_file_names

Elencare i file archiviati in associazione all'esecuzione.

get_metrics

Recuperare le metriche registrate nell'esecuzione.

Se recursive è True (False per impostazione predefinita), recuperare le metriche per le esecuzioni nel sottoalbero dell'esecuzione specificata.

get_properties

Recuperare le proprietà più recenti dell'esecuzione dal servizio.

get_secret

Ottenere il valore segreto dal contesto di un'esecuzione.

Ottenere il valore segreto per il nome specificato. Il nome segreto fa riferimento a un valore archiviato in Azure Key Vault associato all'area di lavoro. Per un esempio di utilizzo dei segreti, vedere Usare i segreti nelle esecuzioni di training.

get_secrets

Ottenere i valori segreti per un determinato elenco di nomi segreti.

Ottenere un dizionario di segreti trovati e non trovati per l'elenco dei nomi specificati. Ogni nome segreto fa riferimento a un valore archiviato in Azure Key Vault associato all'area di lavoro. Per un esempio di utilizzo dei segreti, vedere Usare i segreti nelle esecuzioni di training.

get_snapshot_id

Ottenere l'ID snapshot più recente.

get_status

Recuperare lo stato più recente dell'esecuzione.

I valori comuni restituiti includono "Running", "Completed" e "Failed".

get_submitted_run

DEPRECATO. Usare get_context.

Ottenere l'esecuzione inviata per questo esperimento.

get_tags

Recuperare il set più recente di tag modificabili nell'esecuzione dal servizio.

list

Ottenere un elenco di esecuzioni in un esperimento specificato dai filtri facoltativi.

list_by_compute

Ottenere un elenco di esecuzioni in un calcolo specificato dai filtri facoltativi.

log

Registrare un valore della metrica per l'esecuzione con il nome specificato.

log_accuracy_table

Registrare una tabella di accuratezza nell'archivio elementi.

La metrica della tabella di accuratezza è una metrica non scalare che può essere usata per produrre più tipi di grafici a linee che variano continuamente sullo spazio delle probabilità stimate. Esempi di questi grafici sono ROC, precisione e curve di sollevamento.

Il calcolo della tabella di accuratezza è simile al calcolo di una curva ROC. Una curva ROC archivia i tassi positivi reali e i tassi falsi positivi a molte soglie di probabilità diverse. La tabella di accuratezza archivia il numero non elaborato di veri positivi, falsi positivi, veri negativi e falsi negativi a molte soglie di probabilità.

Esistono due metodi usati per la selezione di soglie: "probabilità" e "percentile". Sono diversi dal modo in cui campionino dallo spazio delle probabilità stimate.

Le soglie di probabilità sono soglie a spaziatura uniforme tra 0 e 1. Se NUM_POINTS è 5 le soglie di probabilità saranno [0,0, 0,25, 0,5, 0,75, 1,0].

Le soglie percentile vengono spaziate in base alla distribuzione delle probabilità stimate. Ogni soglia corrisponde al percentile dei dati a una soglia di probabilità. Ad esempio, se NUM_POINTS è 5, la prima soglia sarebbe al 0° percentile, la seconda al 25° percentile, la terza al 50° e così via.

Le tabelle di probabilità e le tabelle percentile sono entrambi elenchi 3D in cui la prima dimensione rappresenta l'etichetta di classe, la seconda dimensione rappresenta l'esempio a una soglia (scale con NUM_POINTS) e la terza dimensione ha sempre 4 valori: TP, FP, TN, FN e sempre in tale ordine.

I valori di confusione (TP, FP, TN, FN) vengono calcolati con la strategia uno e rest. Per altre informazioni, vedere il collegamento seguente: https://en.wikipedia.org/wiki/Multiclass_classification

N = # di esempi nel set di dati di convalida (200 in esempio) M = # soglie = # campioni presi dallo spazio di probabilità (5 in esempio) C = classi # nel set di dati completo (3 in esempio)

Alcuni invarianti della tabella di accuratezza:

  • TP + FP + TN + FN = N per tutte le soglie per tutte le classi
  • TP + FN è uguale a tutte le soglie per qualsiasi classe
  • TN + FP è uguale a tutte le soglie per qualsiasi classe
  • Le tabelle di probabilità e le tabelle percentile hanno forma [C, M, 4]

Nota: M può essere qualsiasi valore e controlla la risoluzione dei grafici Questo è indipendente dal set di dati, viene definito durante il calcolo delle metriche e disattiva lo spazio di archiviazione, il tempo di calcolo e la risoluzione.

Le etichette di classe devono essere stringhe, i valori di confusione devono essere interi e le soglie devono essere float.

log_confusion_matrix

Registrare una matrice di confusione nell'archivio artefatti.

Questo registra un wrapper intorno alla matrice di confusione sklearn. I dati delle metriche contengono le etichette di classe e un elenco 2D per la matrice stessa. Per altre informazioni su come viene calcolata la metrica, vedere il collegamento seguente: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_image

Registrare una metrica dell'immagine per il record esecuzione.

log_list

Registrare un elenco di valori delle metriche per l'esecuzione con il nome specificato.

log_predictions

Registrare le stime nell'archivio artefatti.

Questo registra un punteggio della metrica che può essere usato per confrontare le distribuzioni di valori di destinazione reali con la distribuzione dei valori stimati per un'attività di regressione.

Le stime vengono binate e le deviazioni standard vengono calcolate per le barre di errore in un grafico a linee.

log_residuals

Registra i residui nell'archivio artefatti.

Registra i dati necessari per visualizzare un istogramma di residui per un'attività di regressione. I residui sono stimati, effettivi.

Deve essere presente un bordo maggiore del numero di conteggi. Per esempi di utilizzo di conteggi e archi per rappresentare un istogramma, vedere la documentazione dell'istogramma numpy. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_row

Registrare una metrica di riga nell'esecuzione con il nome specificato.

log_table

Registrare una metrica della tabella per l'esecuzione con il nome specificato.

register_model

Registrare un modello per l'operazionalizzazione.

remove_tags

Eliminare l'elenco di tag modificabili in questa esecuzione.

restore_snapshot

Ripristinare uno snapshot come file ZIP. Restituisce il percorso del file ZIP.

set_tags

Aggiungere o modificare un set di tag nell'esecuzione. I tag non passati nel dizionario vengono lasciati invariati.

È anche possibile aggiungere tag stringa semplici. Quando questi tag vengono visualizzati nel dizionario tag come chiavi, hanno il valore Nessuno. Per altre informazioni, vedere Tag and find runs .For more information, see Tag and find runs.

start

Contrassegnare l'esecuzione come avviata.

Questa operazione viene in genere usata in scenari avanzati quando l'esecuzione è stata creata da un altro attore.

submit_child

Inviare un esperimento e restituire l'esecuzione figlio attiva.

tag

Assegnare all'esecuzione una chiave stringa e un valore di stringa facoltativo.

take_snapshot

Salvare uno snapshot del file o della cartella di input.

upload_file

Caricare un file per il record esecuzione.

upload_files

Caricare i file nel record di esecuzione.

upload_folder

Caricare la cartella specificata nel nome del prefisso specificato.

wait_for_completion

Attendere il completamento dell'esecuzione. Restituisce l'oggetto status dopo l'attesa.

add_properties

Aggiungere proprietà non modificabili all'esecuzione.

I tag e le proprietà (entrambi dict[str, str]) differiscono per la loro mutabilità. Le proprietà non sono modificabili, quindi creano un record permanente a scopo di controllo. I tag sono modificabili. Per altre informazioni sull'uso di tag e proprietà, vedere Tag and find runs .For more information about working with tags and properties, see Tag and find runs.

add_properties(properties)

Parametri

Nome Descrizione
properties
Necessario

Proprietà nascoste archiviate nell'oggetto run.

add_type_provider

Hook di estendibilità per i tipi run personalizzati archiviati nella cronologia di esecuzione.

static add_type_provider(runtype, run_factory)

Parametri

Nome Descrizione
runtype
Necessario
str

Valore di Run.type per il quale verrà richiamata la factory. Gli esempi includono "hyperdrive" o "azureml.scriptrun", ma possono essere estesi con tipi personalizzati.

run_factory
Necessario
<xref:function>

Funzione con firma (Experiment, RunDto):> esecuzione da richiamare durante l'esecuzione dell'elenco.

cancel

Contrassegnare l'esecuzione come annullata.

Se è presente un processo associato a un campo cancel_uri impostato, terminare anche il processo.

cancel()

child_run

Creare un'esecuzione figlio.

child_run(name=None, run_id=None, outputs=None)

Parametri

Nome Descrizione
name
str

Nome facoltativo per l'esecuzione figlio, in genere specificato per una "parte".

valore predefinito: None
run_id
str

ID di esecuzione facoltativo per l'elemento figlio; in caso contrario, viene generato automaticamente. In genere questo parametro non è impostato.

valore predefinito: None
outputs
str

La directory di output facoltativa da tenere traccia per l'elemento figlio.

valore predefinito: None

Restituisce

Tipo Descrizione
Run

Esecuzione figlio.

Commenti

Viene usato per isolare parte di un'esecuzione in una sottosezione. Questa operazione può essere eseguita per le "parti" identificabili di un'esecuzione interessanti da separare o per acquisire metriche indipendenti in un'intersezione di un sottoprocesso.

Se per l'esecuzione figlio è impostata una directory di output, il contenuto di tale directory verrà caricato nel record di esecuzione figlio al termine dell'esecuzione figlio.

clean

Rimuovere i file corrispondenti all'esecuzione corrente nella destinazione specificata nella configurazione di esecuzione.

clean()

Restituisce

Tipo Descrizione

Elenco di file eliminati.

complete

Attendere l'elaborazione della coda di attività.

L'esecuzione viene quindi contrassegnata come completata. Viene usato in genere in scenari di notebook interattivi.

complete(_set_status=True)

Parametri

Nome Descrizione
_set_status

Indica se inviare l'evento di stato per il rilevamento.

valore predefinito: True

create_children

Creare una o più esecuzioni figlio.

create_children(count=None, tag_key=None, tag_values=None)

Parametri

Nome Descrizione
count
int

Numero facoltativo di elementi figlio da creare.

valore predefinito: None
tag_key
str

Chiave facoltativa per popolare la voce Tag in tutti gli elementi figlio creati.

valore predefinito: None
tag_Values
Necessario

Elenco facoltativo di valori che verranno mappati a Tags[tag_key] per l'elenco di esecuzioni create.

tag_values
valore predefinito: None

Restituisce

Tipo Descrizione

Elenco di esecuzioni figlio.

Commenti

count È necessario specificare i tag_key parametri OR parametri ANDtag_values.

download_file

Scaricare un file associato dall'archiviazione.

download_file(name, output_file_path=None, _validate_checksum=False)

Parametri

Nome Descrizione
name
Necessario
str

Nome dell'artefatto da scaricare.

output_file_path
Necessario
str

Percorso locale in cui archiviare l'artefatto.

download_files

Scaricare i file da un determinato prefisso di archiviazione (nome cartella) o dall'intero contenitore se il prefisso non è specificato.

download_files(prefix=None, output_directory=None, output_paths=None, batch_size=100, append_prefix=True, timeout_seconds=None)

Parametri

Nome Descrizione
prefix
Necessario
str

Prefisso del percorso file all'interno del contenitore da cui scaricare tutti gli artefatti.

output_directory
Necessario
str

Directory facoltativa usata da tutti i percorsi degli artefatti come prefisso.

output_paths
Necessario
[str]

Percorsi file facoltativi in cui archiviare gli artefatti scaricati. Deve essere univoco e deve corrispondere alla lunghezza dei percorsi.

batch_size
Necessario
int

Numero di file da scaricare per batch. Il valore predefinito è 100 file.

append_prefix
Necessario

Flag facoltativo se aggiungere il prefisso specificato dal percorso del file di output finale. Se False il prefisso viene rimosso dal percorso del file di output.

timeout_seconds
Necessario
int

Timeout per il download di file.

fail

Contrassegnare l'esecuzione come non riuscita.

Impostare facoltativamente la proprietà Error dell'esecuzione con un messaggio o un'eccezione passata a error_details.

fail(error_details=None, error_code=None, _set_status=True)

Parametri

Nome Descrizione
error_details

Dettagli facoltativi dell'errore.

valore predefinito: None
error_code
str

Codice di errore facoltativo dell'errore per la classificazione degli errori.

valore predefinito: None
_set_status

Indica se inviare l'evento di stato per il rilevamento.

valore predefinito: True

flush

Attendere l'elaborazione della coda delle attività.

flush(timeout_seconds=300)

Parametri

Nome Descrizione
timeout_seconds
int

Tempo di attesa (in secondi) per l'elaborazione della coda di attività.

valore predefinito: 300

get

Ottenere l'esecuzione per questa area di lavoro con il relativo ID di esecuzione.

static get(workspace, run_id)

Parametri

Nome Descrizione
workspace
Necessario

Area di lavoro contenente.

run_id
Necessario

ID di esecuzione.

Restituisce

Tipo Descrizione
Run

Esecuzione inviata.

get_all_logs

Scaricare tutti i log per l'esecuzione in una directory.

get_all_logs(destination=None)

Parametri

Nome Descrizione
destination
str

Percorso di destinazione per archiviare i log. Se non specificato, viene creata una directory denominata come ID di esecuzione nella directory del progetto.

valore predefinito: None

Restituisce

Tipo Descrizione

Elenco dei nomi dei log scaricati.

get_children

Ottenere tutti gli elementi figlio per l'esecuzione corrente selezionata dai filtri specificati.

get_children(recursive=False, tags=None, properties=None, type=None, status=None, _rehydrate_runs=True)

Parametri

Nome Descrizione
recursive

Indica se ripetersi attraverso tutti i discendenti.

valore predefinito: False
tags
str oppure dict

Se specificato, restituisce le esecuzioni corrispondenti a "tag" o {"tag": "value"}.

valore predefinito: None
properties
str oppure dict

Se specificato, restituisce le esecuzioni corrispondenti a "property" o {"property": "value"}.

valore predefinito: None
type
str

Se specificato, restituisce le esecuzioni corrispondenti a questo tipo.

valore predefinito: None
status
str

Se specificato, restituisce esecuzioni con stato specificato "stato".

valore predefinito: None
_rehydrate_runs

Indica se creare un'istanza di un'esecuzione del tipo originale o dell'esecuzione di base.

valore predefinito: True

Restituisce

Tipo Descrizione

Elenco di oggetti Run.

get_context

Restituire il contesto del servizio corrente.

Usare questo metodo per recuperare il contesto del servizio corrente per la registrazione delle metriche e il caricamento di file. Se allow_offline è True (impostazione predefinita), le azioni sull'oggetto Run verranno stampate in modo standard.

get_context(allow_offline=True, used_for_context_manager=False, **kwargs)

Parametri

Nome Descrizione
cls
Necessario

Indica il metodo di classe.

allow_offline

Consentire al contesto del servizio di tornare in modalità offline in modo che lo script di training possa essere testato in locale senza inviare un processo con l'SDK. True per impostazione predefinita.

valore predefinito: True
kwargs
Necessario

Dizionario di parametri aggiuntivi.

used_for_context_manager
valore predefinito: False

Restituisce

Tipo Descrizione
Run

Esecuzione inviata.

Commenti

Questa funzione viene comunemente usata per recuperare l'oggetto Run autenticato all'interno di uno script da inviare per l'esecuzione tramite experiment.submit(). Questo oggetto run è un contesto autenticato per comunicare con i servizi di Azure Machine Learning e un contenitore concettuale in cui sono contenute metriche, file (artefatti) e modelli.


   run = Run.get_context() # allow_offline=True by default, so can be run locally as well
   ...
   run.log("Accuracy", 0.98)
   run.log_row("Performance", epoch=e, error=err)

get_detailed_status

Recuperare lo stato più recente dell'esecuzione. Se lo stato dell'esecuzione è "Accodato", mostrerà i dettagli.

get_detailed_status()

Restituisce

Tipo Descrizione

Lo stato e i dettagli più recenti

Commenti

  • stato: stato corrente dell'esecuzione. Stesso valore restituito da get_status().

  • dettagli: informazioni dettagliate per lo stato corrente.


   run = experiment.submit(config)
   details = run.get_detailed_status()
   # details = {
   #     'status': 'Queued',
   #     'details': 'Run requested 1 node(s). Run is in pending status.',
   # }

get_details

Ottenere la definizione, le informazioni sullo stato, i file di log correnti e altri dettagli dell'esecuzione.

get_details()

Restituisce

Tipo Descrizione

Restituisce i dettagli dell'esecuzione

Commenti

Il dizionario restituito contiene le coppie chiave-valore seguenti:

  • runId: ID dell'esecuzione.

  • target

  • stato: stato corrente dell'esecuzione. Stesso valore restituito da get_status().

  • startTimeUtc: ora UTC di quando questa esecuzione è stata avviata, in ISO8601.

  • endTimeUtc: ora UTC di quando l'esecuzione è stata completata (completata o non riuscita), in ISO8601.

    Questa chiave non esiste se l'esecuzione è ancora in corso.

  • proprietà: coppie chiave-valore non modificabili associate all'esecuzione. Le proprietà predefinite includono l'ID snapshot dell'esecuzione e le informazioni sul repository Git da cui è stata creata l'esecuzione (se presente). È possibile aggiungere altre proprietà a un'esecuzione usando add_properties.

  • inputDatasets: set di dati di input associati all'esecuzione.

  • outputDatasets: set di dati di output associati all'esecuzione.

  • Logfiles

  • inviatoBy


   run = experiment.start_logging()

   details = run.get_details()
   # details = {
   #     'runId': '5c24aa28-6e4a-4572-96a0-fb522d26fe2d',
   #     'target': 'sdk',
   #     'status': 'Running',
   #     'startTimeUtc': '2019-01-01T13:08:01.713777Z',
   #     'endTimeUtc': '2019-01-01T17:15:65.986253Z',
   #     'properties': {
   #         'azureml.git.repository_uri': 'https://example.com/my/git/repo',
   #         'azureml.git.branch': 'master',
   #         'azureml.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
   #         'azureml.git.dirty': 'True',
   #         'mlflow.source.git.repoURL': 'https://example.com/my/git/repo',
   #         'mlflow.source.git.branch': 'master',
   #         'mlflow.source.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
   #         'ContentSnapshotId': 'b4689489-ce2f-4db5-b6d7-6ad11e77079c'
   #     },
   #     'inputDatasets': [{
   #         'dataset': {'id': 'cdebf245-701d-4a68-8055-41f9cf44f298'},
   #         'consumptionDetails': {
   #             'type': 'RunInput',
   #             'inputName': 'training-data',
   #             'mechanism': 'Mount',
   #             'pathOnCompute': '/mnt/datasets/train'
   #         }
   #     }],
   #     'outputDatasets': [{
   #         'dataset': {'id': 'd04e8a19-1caa-4b1f-b318-4cbff9af9615'},
   #         'outputType': 'RunOutput',
   #         'outputDetails': {
   #             'outputName': 'training-result'
   #         }
   #     }],
   #     'runDefinition': {},
   #     'logFiles': {},
   #     'submittedBy': 'Alan Turing'
   # }

get_details_with_logs

Restituire lo stato di esecuzione, incluso il contenuto del file di log.

get_details_with_logs()

Restituisce

Tipo Descrizione

Restituisce lo stato dell'esecuzione con contenuto del file di log.

get_environment

Ottenere la definizione dell'ambiente usata da questa esecuzione.

get_environment()

Restituisce

Tipo Descrizione

Restituisce l'oggetto ambiente.

get_file_names

Elencare i file archiviati in associazione all'esecuzione.

get_file_names()

Restituisce

Tipo Descrizione

Elenco di percorsi per gli artefatti esistenti

get_metrics

Recuperare le metriche registrate nell'esecuzione.

Se recursive è True (False per impostazione predefinita), recuperare le metriche per le esecuzioni nel sottoalbero dell'esecuzione specificata.

get_metrics(name=None, recursive=False, run_type=None, populate=False)

Parametri

Nome Descrizione
name
str

Nome della metrica.

valore predefinito: None
recursive

Indica se ripetersi attraverso tutti i discendenti.

valore predefinito: False
run_type
str
valore predefinito: None
populate

Indica se recuperare il contenuto dei dati esterni collegati alla metrica.

valore predefinito: False

Restituisce

Tipo Descrizione

Dizionario contenente le metriche degli utenti.

Commenti


   run = experiment.start_logging() # run id: 123
   run.log("A", 1)
   with run.child_run() as child: # run id: 456
       child.log("A", 2)

   metrics = run.get_metrics()
   # metrics = { 'A': 1 }

   metrics = run.get_metrics(recursive=True)
   # metrics = { '123': { 'A': 1 }, '456': { 'A': 2 } } note key is runId

get_properties

Recuperare le proprietà più recenti dell'esecuzione dal servizio.

get_properties()

Restituisce

Tipo Descrizione

Proprietà dell'esecuzione.

Commenti

Le proprietà sono informazioni generate dal sistema non modificabili, ad esempio durata, data di esecuzione, utente e proprietà personalizzate aggiunte con il add_properties metodo. Per altre informazioni, vedere Tag e trovare esecuzioni.

Quando si invia un processo ad Azure Machine Learning, se i file di origine vengono archiviati in un repository Git locale, le informazioni sul repository vengono archiviate come proprietà. Queste proprietà git vengono aggiunte durante la creazione di un'esecuzione o una chiamata a Experiment.submit. Per altre informazioni sulle proprietà git, vedere Integrazione git per Azure Machine Learning.

get_secret

Ottenere il valore segreto dal contesto di un'esecuzione.

Ottenere il valore segreto per il nome specificato. Il nome segreto fa riferimento a un valore archiviato in Azure Key Vault associato all'area di lavoro. Per un esempio di utilizzo dei segreti, vedere Usare i segreti nelle esecuzioni di training.

get_secret(name)

Parametri

Nome Descrizione
name
Necessario
str

Nome segreto per il quale restituire un segreto.

Restituisce

Tipo Descrizione
str

Valore segreto.

get_secrets

Ottenere i valori segreti per un determinato elenco di nomi segreti.

Ottenere un dizionario di segreti trovati e non trovati per l'elenco dei nomi specificati. Ogni nome segreto fa riferimento a un valore archiviato in Azure Key Vault associato all'area di lavoro. Per un esempio di utilizzo dei segreti, vedere Usare i segreti nelle esecuzioni di training.

get_secrets(secrets)

Parametri

Nome Descrizione
secrets
Necessario

Elenco di nomi segreti per i quali restituire valori segreti.

Restituisce

Tipo Descrizione

Restituisce un dizionario di segreti trovati e non trovati.

get_snapshot_id

Ottenere l'ID snapshot più recente.

get_snapshot_id()

Restituisce

Tipo Descrizione
str

ID snapshot più recente.

get_status

Recuperare lo stato più recente dell'esecuzione.

I valori comuni restituiti includono "Running", "Completed" e "Failed".

get_status()

Restituisce

Tipo Descrizione
str

Stato più recente.

Commenti

  • NotStarted: questo è un oggetto Run lato client temporaneo prima dell'invio cloud.

  • Avvio: l'esecuzione è stata avviata nell'elaborazione nel cloud. Il chiamante ha un ID di esecuzione a questo punto.

  • Provisioning: restituito quando viene creato un calcolo su richiesta per un invio di processo specificato.

  • Preparazione: l'ambiente di esecuzione è in fase di preparazione:

    • Compilazione di immagini docker

    • configurazione dell'ambiente conda

  • Accodato: il processo viene accodato nella destinazione di calcolo. Ad esempio, in BatchAI il processo è in stato accodato

    in attesa che tutti i nodi richiesti siano pronti.

  • Esecuzione: il processo avviato per l'esecuzione nella destinazione di calcolo.

  • Finalizzazione: il codice utente è stato completato e l'esecuzione è in fasi di post-elaborazione.

  • CancelRequested: l'annullamento è stato richiesto per il processo.

  • Completato: l'esecuzione è stata completata correttamente. Ciò include sia il codice utente che l'esecuzione

    fasi di post-elaborazione.

  • Impossibile: l'esecuzione non è riuscita. In genere la proprietà Error in un'esecuzione fornisce informazioni dettagliate sul motivo.

  • Annullata: segue una richiesta di annullamento e indica che l'esecuzione è stata annullata correttamente.

  • NotResponding: per le esecuzioni abilitate per Heartbeat, non è stato inviato di recente alcun heartbeat.


   run = experiment.submit(config)
   while run.get_status() not in ['Completed', 'Failed']: # For example purposes only, not exhaustive
       print('Run {} not in terminal state'.format(run.id))
       time.sleep(10)

get_submitted_run

DEPRECATO. Usare get_context.

Ottenere l'esecuzione inviata per questo esperimento.

get_submitted_run(**kwargs)

Restituisce

Tipo Descrizione
Run

Esecuzione inviata.

get_tags

Recuperare il set più recente di tag modificabili nell'esecuzione dal servizio.

get_tags()

Restituisce

Tipo Descrizione

I tag archiviati nell'oggetto run.

list

Ottenere un elenco di esecuzioni in un esperimento specificato dai filtri facoltativi.

static list(experiment, type=None, tags=None, properties=None, status=None, include_children=False, _rehydrate_runs=True)

Parametri

Nome Descrizione
experiment
Necessario

Oggetto contenente l'esperimento.

type
str

Se specificato, restituisce la corrispondenza del tipo specificato.

valore predefinito: None
tags
str oppure dict

Se specificato, restituisce le esecuzioni corrispondenti a "tag" o {"tag": "value"}.

valore predefinito: None
properties
str oppure dict

Se specificato, restituisce le esecuzioni corrispondenti a "property" o {"property": "value"}.

valore predefinito: None
status
str

Se specificato, restituisce esecuzioni con stato specificato "stato".

valore predefinito: None
include_children

Se impostato su true, recuperare tutte le esecuzioni, non solo quelle di primo livello.

valore predefinito: False
_rehydrate_runs

Se impostato su True (per impostazione predefinita), userà il provider registrato per reinstantiare un oggetto per tale tipo anziché l'esecuzione di base.

valore predefinito: True

Restituisce

Tipo Descrizione

Elenco di esecuzioni.

Commenti

Nell'esempio di codice seguente vengono illustrati alcuni usi del list metodo.


   favorite_completed_runs = Run.list(experiment, status='Completed', tags='favorite')

   all_distinct_runs = Run.list(experiment)
   and_their_children = Run.list(experiment, include_children=True)

   only_script_runs = Run.list(experiment, type=ScriptRun.RUN_TYPE)

list_by_compute

Ottenere un elenco di esecuzioni in un calcolo specificato dai filtri facoltativi.

static list_by_compute(compute, type=None, tags=None, properties=None, status=None)

Parametri

Nome Descrizione
compute
Necessario

Oggetto contenente il calcolo.

type
str

Se specificato, restituisce la corrispondenza del tipo specificato.

valore predefinito: None
tags
str oppure dict

Se specificato, restituisce le esecuzioni corrispondenti a "tag" o {"tag": "value"}.

valore predefinito: None
properties
str oppure dict

Se specificato, restituisce le esecuzioni corrispondenti a "property" o {"property": "value"}.

valore predefinito: None
status
str

Se specificato, restituisce esecuzioni con stato specificato "stato". Solo i valori consentiti sono "Running" e "Queued".

valore predefinito: None

Restituisce

Tipo Descrizione
<xref:builtin.generator>

generatore di ~_restclient.models.RunDto

log

Registrare un valore della metrica per l'esecuzione con il nome specificato.

log(name, value, description='', step=None)

Parametri

Nome Descrizione
name
Necessario
str

Nome della metrica.

value
Necessario

Valore da pubblicare nel servizio.

description
Necessario
str

Descrizione della metrica facoltativa.

step
int

Asse facoltativo per specificare l'ordine di valore all'interno di una metrica.

valore predefinito: None

Commenti

La registrazione di una metrica per un'esecuzione fa sì che tale metrica venga archiviata nel record esecuzione nell'esperimento. È possibile registrare la stessa metrica più volte all'interno di un'esecuzione. Il risultato verrà considerato un vettore di tale metrica. Se il passaggio viene specificato per una metrica, deve essere specificato per tutti i valori.

log_accuracy_table

Registrare una tabella di accuratezza nell'archivio elementi.

La metrica della tabella di accuratezza è una metrica non scalare che può essere usata per produrre più tipi di grafici a linee che variano continuamente sullo spazio delle probabilità stimate. Esempi di questi grafici sono ROC, precisione e curve di sollevamento.

Il calcolo della tabella di accuratezza è simile al calcolo di una curva ROC. Una curva ROC archivia i tassi positivi reali e i tassi falsi positivi a molte soglie di probabilità diverse. La tabella di accuratezza archivia il numero non elaborato di veri positivi, falsi positivi, veri negativi e falsi negativi a molte soglie di probabilità.

Esistono due metodi usati per la selezione di soglie: "probabilità" e "percentile". Sono diversi dal modo in cui campionino dallo spazio delle probabilità stimate.

Le soglie di probabilità sono soglie a spaziatura uniforme tra 0 e 1. Se NUM_POINTS è 5 le soglie di probabilità saranno [0,0, 0,25, 0,5, 0,75, 1,0].

Le soglie percentile vengono spaziate in base alla distribuzione delle probabilità stimate. Ogni soglia corrisponde al percentile dei dati a una soglia di probabilità. Ad esempio, se NUM_POINTS è 5, la prima soglia sarebbe al 0° percentile, la seconda al 25° percentile, la terza al 50° e così via.

Le tabelle di probabilità e le tabelle percentile sono entrambi elenchi 3D in cui la prima dimensione rappresenta l'etichetta di classe, la seconda dimensione rappresenta l'esempio a una soglia (scale con NUM_POINTS) e la terza dimensione ha sempre 4 valori: TP, FP, TN, FN e sempre in tale ordine.

I valori di confusione (TP, FP, TN, FN) vengono calcolati con la strategia uno e rest. Per altre informazioni, vedere il collegamento seguente: https://en.wikipedia.org/wiki/Multiclass_classification

N = # di esempi nel set di dati di convalida (200 in esempio) M = # soglie = # campioni presi dallo spazio di probabilità (5 in esempio) C = classi # nel set di dati completo (3 in esempio)

Alcuni invarianti della tabella di accuratezza:

  • TP + FP + TN + FN = N per tutte le soglie per tutte le classi
  • TP + FN è uguale a tutte le soglie per qualsiasi classe
  • TN + FP è uguale a tutte le soglie per qualsiasi classe
  • Le tabelle di probabilità e le tabelle percentile hanno forma [C, M, 4]

Nota: M può essere qualsiasi valore e controlla la risoluzione dei grafici Questo è indipendente dal set di dati, viene definito durante il calcolo delle metriche e disattiva lo spazio di archiviazione, il tempo di calcolo e la risoluzione.

Le etichette di classe devono essere stringhe, i valori di confusione devono essere interi e le soglie devono essere float.

log_accuracy_table(name, value, description='')

Parametri

Nome Descrizione
name
Necessario
str

Nome della tabella di accuratezza.

value
Necessario
str oppure dict

JSON contenente nome, versione e proprietà dei dati.

description
Necessario
str

Descrizione della metrica facoltativa.

Commenti

Esempio di valore JSON valido:


   {
       "schema_type": "accuracy_table",
       "schema_version": "1.0.1",
       "data": {
           "probability_tables": [
               [
                   [82, 118, 0, 0],
                   [75, 31, 87, 7],
                   [66, 9, 109, 16],
                   [46, 2, 116, 36],
                   [0, 0, 118, 82]
               ],
               [
                   [60, 140, 0, 0],
                   [56, 20, 120, 4],
                   [47, 4, 136, 13],
                   [28, 0, 140, 32],
                   [0, 0, 140, 60]
               ],
               [
                   [58, 142, 0, 0],
                   [53, 29, 113, 5],
                   [40, 10, 132, 18],
                   [24, 1, 141, 34],
                   [0, 0, 142, 58]
               ]
           ],
           "percentile_tables": [
               [
                   [82, 118, 0, 0],
                   [82, 67, 51, 0],
                   [75, 26, 92, 7],
                   [48, 3, 115, 34],
                   [3, 0, 118, 79]
               ],
               [
                   [60, 140, 0, 0],
                   [60, 89, 51, 0],
                   [60, 41, 99, 0],
                   [46, 5, 135, 14],
                   [3, 0, 140, 57]
               ],
               [
                   [58, 142, 0, 0],
                   [56, 93, 49, 2],
                   [54, 47, 95, 4],
                   [41, 10, 132, 17],
                   [3, 0, 142, 55]
               ]
           ],
           "probability_thresholds": [0.0, 0.25, 0.5, 0.75, 1.0],
           "percentile_thresholds": [0.0, 0.01, 0.24, 0.98, 1.0],
           "class_labels": ["0", "1", "2"]
       }
   }

log_confusion_matrix

Registrare una matrice di confusione nell'archivio artefatti.

Questo registra un wrapper intorno alla matrice di confusione sklearn. I dati delle metriche contengono le etichette di classe e un elenco 2D per la matrice stessa. Per altre informazioni su come viene calcolata la metrica, vedere il collegamento seguente: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_confusion_matrix(name, value, description='')

Parametri

Nome Descrizione
name
Necessario
str

Nome della matrice di confusione.

value
Necessario
str oppure dict

JSON contenente nome, versione e proprietà dei dati.

description
Necessario
str

Descrizione della metrica facoltativa.

Commenti

Esempio di valore JSON valido:


   {
       "schema_type": "confusion_matrix",
       "schema_version": "1.0.0",
       "data": {
           "class_labels": ["0", "1", "2", "3"],
           "matrix": [
               [3, 0, 1, 0],
               [0, 1, 0, 1],
               [0, 0, 1, 0],
               [0, 0, 0, 1]
           ]
       }
   }

log_image

Registrare una metrica dell'immagine per il record esecuzione.

log_image(name, path=None, plot=None, description='')

Parametri

Nome Descrizione
name
Necessario
str

Nome della metrica.

path
Necessario
str

Percorso o flusso dell'immagine.

plot
Necessario
<xref:matplotlib.pyplot>

Grafico da registrare come immagine.

description
Necessario
str

Descrizione della metrica facoltativa.

Commenti

Usare questo metodo per registrare un file di immagine o un tracciato matplotlib per l'esecuzione. Queste immagini saranno visibili e confrontabili nel record esecuzione.

log_list

Registrare un elenco di valori delle metriche per l'esecuzione con il nome specificato.

log_list(name, value, description='')

Parametri

Nome Descrizione
name
Necessario
str

Nome della metrica.

value
Necessario

Valori della metrica.

description
Necessario
str

Descrizione della metrica facoltativa.

log_predictions

Registrare le stime nell'archivio artefatti.

Questo registra un punteggio della metrica che può essere usato per confrontare le distribuzioni di valori di destinazione reali con la distribuzione dei valori stimati per un'attività di regressione.

Le stime vengono binate e le deviazioni standard vengono calcolate per le barre di errore in un grafico a linee.

log_predictions(name, value, description='')

Parametri

Nome Descrizione
name
Necessario
str

Nome delle stime.

value
Necessario
str oppure dict

JSON contenente nome, versione e proprietà dei dati.

description
Necessario
str

Descrizione della metrica facoltativa.

Commenti

Esempio di valore JSON valido:


   {
       "schema_type": "predictions",
       "schema_version": "1.0.0",
       "data": {
           "bin_averages": [0.25, 0.75],
           "bin_errors": [0.013, 0.042],
           "bin_counts": [56, 34],
           "bin_edges": [0.0, 0.5, 1.0]
       }
   }

log_residuals

Registra i residui nell'archivio artefatti.

Registra i dati necessari per visualizzare un istogramma di residui per un'attività di regressione. I residui sono stimati, effettivi.

Deve essere presente un bordo maggiore del numero di conteggi. Per esempi di utilizzo di conteggi e archi per rappresentare un istogramma, vedere la documentazione dell'istogramma numpy. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_residuals(name, value, description='')

Parametri

Nome Descrizione
name
Necessario
str

Nome dei residui.

value
Necessario
str oppure dict

JSON contenente le proprietà nome, versione e dati.

description
Necessario
str

Descrizione della metrica facoltativa.

Commenti

Esempio di valore JSON valido:


   {
       "schema_type": "residuals",
       "schema_version": "1.0.0",
       "data": {
           "bin_edges": [50, 100, 200, 300, 350],
           "bin_counts": [0.88, 20, 30, 50.99]
       }
   }

log_row

Registrare una metrica di riga nell'esecuzione con il nome specificato.

log_row(name, description=None, **kwargs)

Parametri

Nome Descrizione
name
Necessario
str

Nome della metrica.

description
str

Descrizione della metrica facoltativa.

valore predefinito: None
kwargs
Necessario

Dizionario di parametri aggiuntivi. In questo caso, le colonne della metrica.

Commenti

L'uso di log_row crea una metrica di tabella con colonne come descritto in kwargs. Ogni parametro denominato genera una colonna con il valore specificato. log_row può essere chiamato una volta per registrare una tupla arbitraria o più volte in un ciclo per generare una tabella completa.


   citrus = ['orange', 'lemon', 'lime']
   sizes = [ 10, 7, 3]
   for index in range(len(citrus)):
       run.log_row("citrus", fruit = citrus[index], size=sizes[index])

log_table

Registrare una metrica della tabella per l'esecuzione con il nome specificato.

log_table(name, value, description='')

Parametri

Nome Descrizione
name
Necessario
str

Nome della metrica.

value
Necessario

Valore della tabella della metrica, un dizionario in cui le chiavi sono colonne da inserire nel servizio.

description
Necessario
str

Descrizione della metrica facoltativa.

register_model

Registrare un modello per l'operazionalizzazione.

register_model(model_name, model_path=None, tags=None, properties=None, model_framework=None, model_framework_version=None, description=None, datasets=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None, **kwargs)

Parametri

Nome Descrizione
model_name
Necessario
str

Nome del modello.

model_path
str

Percorso cloud relativo al modello, ad esempio "outputs/modelname". Se non specificato (Nessuno), model_name viene usato come percorso.

valore predefinito: None
tags

Dizionario di tag chiave-valore da assegnare al modello.

valore predefinito: None
properties

Dizionario di proprietà chiave valore da assegnare al modello. Queste proprietà non possono essere modificate dopo la creazione del modello, ma è possibile aggiungere nuove coppie chiave-valore.

valore predefinito: None
model_framework
str

Framework del modello da registrare. Framework attualmente supportati: TensorFlow, ScikitLearn, Onnx, Custom, Multi

valore predefinito: None
model_framework_version
str

Versione del framework del modello registrato.

valore predefinito: None
description
str

Descrizione facoltativa del modello.

valore predefinito: None
datasets

Elenco di tuple in cui il primo elemento descrive la relazione del modello di set di dati e il secondo elemento è il set di dati.

valore predefinito: None
sample_input_dataset

Facoltativa. Set di dati di input di esempio per il modello registrato

valore predefinito: None
sample_output_dataset

Facoltativa. Set di dati di output di esempio per il modello registrato

valore predefinito: None
resource_configuration

Facoltativa. Configurazione delle risorse per eseguire il modello registrato

valore predefinito: None
kwargs
Necessario

Parametri facoltativi.

Restituisce

Tipo Descrizione

Modello registrato.

Commenti


   model = best_run.register_model(model_name = 'best_model', model_path = 'outputs/model.pkl')

remove_tags

Eliminare l'elenco di tag modificabili in questa esecuzione.

remove_tags(tags)

Parametri

Nome Descrizione
tags
Necessario

Elenco di tag da rimuovere.

Restituisce

Tipo Descrizione

Tag archiviati nell'oggetto run

restore_snapshot

Ripristinare uno snapshot come file ZIP. Restituisce il percorso del file ZIP.

restore_snapshot(snapshot_id=None, path=None)

Parametri

Nome Descrizione
snapshot_id
str

ID snapshot da ripristinare. Se non specificato, viene utilizzata la versione più recente.

valore predefinito: None
path
str

Percorso in cui viene salvato il file ZIP scaricato.

valore predefinito: None

Restituisce

Tipo Descrizione
str

Percorso.

set_tags

Aggiungere o modificare un set di tag nell'esecuzione. I tag non passati nel dizionario vengono lasciati invariati.

È anche possibile aggiungere tag stringa semplici. Quando questi tag vengono visualizzati nel dizionario tag come chiavi, hanno il valore Nessuno. Per altre informazioni, vedere Tag and find runs .For more information, see Tag and find runs.

set_tags(tags)

Parametri

Nome Descrizione
tags
Necessario
dict[str] oppure str

Tag archiviati nell'oggetto run.

start

Contrassegnare l'esecuzione come avviata.

Questa operazione viene in genere usata in scenari avanzati quando l'esecuzione è stata creata da un altro attore.

start()

submit_child

Inviare un esperimento e restituire l'esecuzione figlio attiva.

submit_child(config, tags=None, **kwargs)

Parametri

Nome Descrizione
config
Necessario

Configurazione da inviare.

tags

Tag da aggiungere all'esecuzione inviata, ad esempio {"tag": "value"}.

valore predefinito: None
kwargs
Necessario

Parametri aggiuntivi usati nella funzione di invio per le configurazioni.

Restituisce

Tipo Descrizione
Run

Oggetto run.

Commenti

Inviare è una chiamata asincrona alla piattaforma Azure Machine Learning per eseguire una versione di valutazione su hardware locale o remoto. A seconda della configurazione, l'invio preparerà automaticamente gli ambienti di esecuzione, eseguirà il codice e acquisirà il codice sorgente e i risultati nella cronologia di esecuzione dell'esperimento.

Per inviare un esperimento, è prima necessario creare un oggetto di configurazione che descrive come deve essere eseguito l'esperimento. La configurazione dipende dal tipo di versione di valutazione richiesta.

Di seguito è riportato un esempio di come inviare un esperimento figlio dal computer locale usando ScriptRunConfig :


   from azureml.core import ScriptRunConfig

   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = parent_run.submit_child(config)

   # get the url to view the progress of the experiment and then wait
   # until the trial is complete
   print(run.get_portal_url())
   run.wait_for_completion()

Per informazioni dettagliate su come configurare un'esecuzione, vedere submit.

tag

Assegnare all'esecuzione una chiave stringa e un valore di stringa facoltativo.

tag(key, value=None)

Parametri

Nome Descrizione
key
Necessario
str

Tasto tag

value
str

Valore facoltativo per il tag

valore predefinito: None

Commenti

I tag e le proprietà in un'esecuzione sono entrambi dizionari di stringa-> stringa. La differenza tra di esse è mutabilità: i tag possono essere impostati, aggiornati ed eliminati mentre le proprietà possono essere aggiunte solo. In questo modo le proprietà sono più appropriate per i trigger di comportamento correlati al sistema/flusso di lavoro, mentre i tag sono in genere destinati all'utente e significativi per i consumer dell'esperimento.


   run = experiment.start_logging()
   run.tag('DeploymentCandidate')
   run.tag('modifiedBy', 'Master CI')
   run.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable

   run.add_properties({'BuildId': os.environ.get('VSTS_BUILD_ID')}) # Properties are not

   tags = run.get_tags()
   # tags = { 'DeploymentCandidate': None, 'modifiedBy': 'release pipeline' }

take_snapshot

Salvare uno snapshot del file o della cartella di input.

take_snapshot(file_or_folder_path)

Parametri

Nome Descrizione
file_or_folder_path
Necessario
str

File o cartella contenente il codice sorgente dell'esecuzione.

Restituisce

Tipo Descrizione
str

Restituisce l'ID snapshot.

Commenti

Gli snapshot devono essere il codice sorgente usato per eseguire l'esecuzione dell'esperimento. Queste vengono archiviate con l'esecuzione in modo che la versione di valutazione in esecuzione possa essere replicata in futuro.

Nota

Gli snapshot vengono creati automaticamente quando submit viene chiamato . In genere, questo metodo take_snapshot è necessario solo per le esecuzioni interattive (notebook).

upload_file

Caricare un file per il record esecuzione.

upload_file(name, path_or_stream, datastore_name=None)

Parametri

Nome Descrizione
name
Necessario
str

Nome del file da caricare.

path_or_stream
Necessario
str

Percorso locale relativo o flusso al file da caricare.

datastore_name
Necessario
str

Nome archivio dati facoltativo

Restituisce

Tipo Descrizione

Commenti


   run = experiment.start_logging()
   run.upload_file(name='important_file', path_or_stream="path/on/disk/file.txt")

Nota

Consente di eseguire automaticamente il file di acquisizione nella directory di output specificata, che per impostazione predefinita corrisponde a "./outputs" per la maggior parte dei tipi di esecuzione. Usare upload_file solo quando è necessario caricare altri file o non è specificata una directory di output.

upload_files

Caricare i file nel record di esecuzione.

upload_files(names, paths, return_artifacts=False, timeout_seconds=None, datastore_name=None)

Parametri

Nome Descrizione
names
Necessario

Nomi dei file da caricare. Se impostato, è necessario impostare anche i percorsi.

paths
Necessario

Percorsi locali relativi ai file da caricare. Se impostato, i nomi sono obbligatori.

return_artifacts
Necessario

Indica che per ogni file caricato deve essere restituito un oggetto artefatto.

timeout_seconds
Necessario
int

Timeout per il caricamento dei file.

datastore_name
Necessario
str

Nome archivio dati facoltativo

Commenti

upload_files ha lo stesso effetto di upload_file su file separati, tuttavia esistono vantaggi per le prestazioni e l'utilizzo delle risorse quando si usa upload_files.


   import os

   run = experiment.start_logging()
   file_name_1 = 'important_file_1'
   file_name_2 = 'important_file_2'
   run.upload_files(names=[file_name_1, file_name_2],
                       paths=['path/on/disk/file_1.txt', 'other/path/on/disk/file_2.txt'])

   run.download_file(file_name_1, 'file_1.txt')

   os.mkdir("path")  # The path must exist
   run.download_file(file_name_2, 'path/file_2.txt')

Nota

Esegue automaticamente l'acquisizione dei file nella directory di output specificata, che per impostazione predefinita è "./outputs" per la maggior parte dei tipi di esecuzione. Usare upload_files solo quando è necessario caricare altri file o non è specificata una directory di output.

upload_folder

Caricare la cartella specificata nel nome del prefisso specificato.

upload_folder(name, path, datastore_name=None)

Parametri

Nome Descrizione
name
Necessario
str

Nome della cartella dei file da caricare.

folder
Necessario
str

Percorso locale relativo della cartella da caricare.

datastore_name
Necessario
str

Nome archivio dati facoltativo

Commenti


   run = experiment.start_logging()
   run.upload_folder(name='important_files', path='path/on/disk')

   run.download_file('important_files/existing_file.txt', 'local_file.txt')

Nota

Esegue automaticamente l'acquisizione dei file nella directory di output specificata, che per impostazione predefinita è "./outputs" per la maggior parte dei tipi di esecuzione. Usare upload_folder solo quando è necessario caricare altri file o non è specificata una directory di output.

wait_for_completion

Attendere il completamento dell'esecuzione. Restituisce l'oggetto status dopo l'attesa.

wait_for_completion(show_output=False, wait_post_processing=False, raise_on_error=True)

Parametri

Nome Descrizione
show_output

Indica se visualizzare l'output dell'esecuzione in sys.stdout.

valore predefinito: False
wait_post_processing

Indica se attendere il completamento della post-elaborazione al termine dell'esecuzione.

valore predefinito: False
raise_on_error

Indica se viene generato un errore quando l'esecuzione è in uno stato di errore.

valore predefinito: True

Restituisce

Tipo Descrizione

Oggetto status.

Attributi

description

Restituisce la descrizione dell'esecuzione.

La descrizione facoltativa dell'esecuzione è una stringa specificata dall'utente utile per descrivere un'esecuzione.

Restituisce

Tipo Descrizione
str

Descrizione dell'esecuzione.

display_name

Restituisce il nome visualizzato dell'esecuzione.

Il nome visualizzato facoltativo dell'esecuzione è una stringa specificata dall'utente utile per l'identificazione successiva dell'esecuzione.

Restituisce

Tipo Descrizione
str

Nome visualizzato dell'esecuzione.

experiment

Ottiene l'esperimento contenente l'esecuzione.

Restituisce

Tipo Descrizione

Recupera l'esperimento corrispondente all'esecuzione.

id

Ottenere l'ID esecuzione.

L'ID dell'esecuzione è un identificatore univoco nell'esperimento contenitore.

Restituisce

Tipo Descrizione
str

ID esecuzione.

name

DEPRECATO. Usare display_name.

Il nome facoltativo dell'esecuzione è una stringa specificata dall'utente utile per l'identificazione successiva dell'esecuzione.

Restituisce

Tipo Descrizione
str

ID esecuzione.

number

Ottenere il numero di esecuzione.

Numero in aumento monotonico che rappresenta l'ordine delle esecuzioni all'interno di un esperimento.

Restituisce

Tipo Descrizione
int

Numero di esecuzione.

parent

Recuperare l'esecuzione padre per questa esecuzione dal servizio.

Le esecuzioni possono avere un elemento padre facoltativo, con conseguente potenziale gerarchia ad albero di esecuzioni. Per registrare le metriche in un'esecuzione padre, usare il log metodo dell'oggetto padre, run.parent.log()ad esempio .

Restituisce

Tipo Descrizione
Run

Esecuzione padre oppure Nessuna se non è impostata.

properties

Restituisce le proprietà non modificabili di questa esecuzione.

Restituisce

Tipo Descrizione
dict[str],
str

Proprietà memorizzate nella cache locale dell'esecuzione.

Commenti

Le proprietà includono informazioni non modificabili generate dal sistema, ad esempio durata, data di esecuzione, utente e così via.

status

Restituisce lo stato dell'oggetto di esecuzione.

tags

Restituisce il set di tag modificabili in questa esecuzione.

Restituisce

Tipo Descrizione

Tag archiviati nell'oggetto run.

type

Ottiene il tipo di esecuzione.

Indica come è stata creata o configurata l'esecuzione.

Restituisce

Tipo Descrizione
str

Tipo di esecuzione.