Compartir a través de


Run Clase

Define la clase base para todas las ejecuciones de experimentos de Azure Machine Learning.

Una ejecución representa una prueba única de un experimento. Las ejecuciones se usan para supervisar la ejecución asincrónica de una prueba, registrar métricas y almacenar la salida de la prueba, y para analizar los resultados y los artefactos de acceso que genera la prueba.

Los objetos de ejecución se crean al enviar un script para entrenar un modelo en muchos escenarios diferentes de Azure Machine Learning, entre los que se incluyen las ejecuciones de HyperDrive, las ejecuciones de canalizaciones y las de AutoML. También se crea un objeto de ejecución cuando submit o start_logging con la clase Experiment.

Para empezar a trabajar con experimentos y ejecuciones, consulte

Inicialice el objeto Run.

Herencia
azureml._run_impl.run_base._RunBase
Run

Constructor

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

Parámetros

Nombre Description
experiment
Requerido

Experimento que lo contiene.

run_id
Requerido
str

Identificador de la ejecución.

outputs
str

Salidas que se van a supervisar.

Valor predeterminado: None
_run_dto
Requerido
<xref:azureml._restclient.models.run_dto.RunDto>

Exclusivamente para uso interno.

kwargs
Requerido

Diccionario de parámetros de configuración adicionales.

experiment
Requerido

Experimento que lo contiene.

run_id
Requerido
str

Identificador de la ejecución.

outputs
Requerido
str

Salidas que se van a supervisar.

kwargs
Requerido

Diccionario de parámetros de configuración adicionales.

Comentarios

Una ejecución representa una prueba única de un experimento. Un objeto de ejecución se usa para supervisar la ejecución asincrónica de una prueba, registrar métricas y almacenar la salida de la prueba, y para analizar los resultados y acceder a los artefactos que genera la prueba.

La ejecución se usa dentro del código de experimentación para registrar las métricas y artefactos en el servicio del historial de ejecución.

La ejecución se usa fuera de los experimentos para supervisar el progreso y para consultar y analizar las métricas y los resultados generados.

La funcionalidad de ejecución incluye:

  • Almacenamiento y recuperación de métricas y datos

  • Carga y descarga de archivos

  • Uso de etiquetas así como una jerarquía de los elementos secundarios para facilitar la búsqueda de ejecuciones anteriores

  • Registro de archivos de modelo almacenados como un modelo que se puede operacionalizar

  • Almacenamiento, modificación y recuperación de propiedades de una ejecución

  • Carga de la ejecución actual desde un entorno remoto con el método get_context

  • Toma eficaz de instantáneas de un archivo o directorio para reproducibilidad

Esta clase funciona con Experiment en estos escenarios:

  • Creación de una ejecución mediante la ejecución de código con submit

  • Creación interactiva de una ejecución en un cuaderno con start_logging

  • Registro de métricas y carga de artefactos en el experimento, como cuando se usa log

  • Lectura de métricas y descarga de artefactos al analizar resultados experimentales, como cuando se usa get_metrics

Para enviar una ejecución, cree un objeto de configuración que describa cómo se ejecuta el experimento. Estos son ejemplos de los diferentes objetos de configuración que puede usar:

  • ScriptRunConfig

  • azureml.train.automl.automlconfig.AutoMLConfig

  • azureml.train.hyperdrive.HyperDriveConfig

  • azureml.pipeline.core.Pipeline

  • azureml.pipeline.core.PublishedPipeline

  • azureml.pipeline.core.PipelineEndpoint

Las siguientes métricas se pueden agregar a una ejecución durante el entrenamiento de un experimento.

  • Escalar

    • Se registra un valor numérico o de cadena en la ejecución con el nombre especificado mediante log. Al registrar una métrica en una ejecución, esa métrica se almacena en el registro de ejecución en el experimento. Puede registrar la misma métrica varias veces dentro de una ejecución y el resultado se considerará un vector de esa métrica.

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

  • List

    • Se registra una lista de valores en la ejecución con el nombre especificado mediante log_list.

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

  • Row

    • Al usar log_row, se crea una métrica de varias columnas, tal y como se describe en kwargs. Cada parámetro con nombre genera una columna con el valor especificado. Se puede llamar una vez a log_row para registrar una tupla arbitraria, o varias veces en un bucle para generar una tabla completa.

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

  • Tabla

    • Se registra un objeto de diccionario en la ejecución con el nombre especificado mediante log_table.

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

  • Imagen

    • Registra una imagen en el registro de ejecución. Use log_image para registrar un archivo de imagen o un trazado matplotlib en la ejecución. Estas imágenes serán visibles y comparables en el registro de ejecución.

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

Métodos

add_properties

Se agregan propiedades inmutables a la ejecución.

Las etiquetas y propiedades (dict[str, str]) difieren en su mutabilidad. Las propiedades son inmutables, por lo que crean un registro permanente con fines de auditoría. Las etiquetas son mutables. Para más información sobre cómo trabajar con etiquetas y propiedades, vea Etiquetado y búsqueda de ejecuciones.

add_type_provider

Enlace de extensibilidad para tipos de ejecución personalizados almacenados en el historial de ejecución.

cancel

Se marca la ejecución como cancelada.

Si hay un trabajo asociado con un campo cancel_uri establecido, se finaliza también ese trabajo.

child_run

Se crea una ejecución secundaria.

clean

Se quitan los archivos correspondientes a la ejecución actual en el destino especificado en la configuración de ejecución.

complete

Se espera a que se procese la cola de tareas.

A continuación, la ejecución se marca como completada. Este script se usa normalmente en escenarios de cuaderno interactivos.

create_children

Se crea una o varias ejecuciones secundarias.

download_file

Se descarga un archivo asociado del almacenamiento.

download_files

Se descargan los archivos de un prefijo de almacenamiento determinado (nombre de carpeta) o de todo el contenedor si el prefijo no está especificado.

fail

Se marca la ejecución como con errores.

Opcionalmente, se establece la propiedad Error de la ejecución con un mensaje o una excepción pasados a error_details.

flush

Se espera a que se procese la cola de tareas.

get

Se obtiene la ejecución de esta área de trabajo con su identificador de ejecución.

get_all_logs

Se descargan todos los registros de la ejecución en un directorio.

get_children

Se obtienen todos los elementos secundarios de la ejecución actual seleccionados por los filtros especificados.

get_context

Se devuelve el contexto de servicio actual.

Use este método para recuperar el contexto de servicio actual para registrar métricas y cargar archivos. Si allow_offline es True (valor predeterminado), las acciones realizadas en el objeto de ejecución se imprimirán en salida estándar.

get_detailed_status

Se captura el estado más reciente de la ejecución. Si el estado de la ejecución es "Queued", se mostrarán los detalles.

get_details

Se obtiene la definición, la información de estado, los archivos de registro actuales y otros detalles de la ejecución.

get_details_with_logs

Se devuelve el estado de la ejecución, incluido el contenido del archivo de registro.

get_environment

Se obtiene la definición de entorno que usó esta ejecución.

get_file_names

Se enumeran los archivos almacenados en asociación con la ejecución.

get_metrics

Se recuperan las métricas registradas en la ejecución.

Si recursive es True (False de manera predeterminada), se capturan las métricas de las ejecuciones en el subárbol de la ejecución determinada.

get_properties

Se capturan las propiedades más recientes de la ejecución desde el servicio.

get_secret

Se obtiene el valor del secreto del contexto de una ejecución.

Se obtiene el valor del secreto para el nombre proporcionado. El nombre del secreto hace referencia a un valor almacenado en Azure Key Vault asociado al área de trabajo. Para obtener un ejemplo de cómo trabajar con secretos, consulte Uso de secretos en ejecuciones de entrenamiento.

get_secrets

Se obtienen los valores de secretos para una lista determinada de nombres de secretos.

Se obtiene un diccionario de secretos encontrados y no encontrados para la lista de nombres proporcionados. Cada nombre de secreto hace referencia a un valor almacenado en Azure Key Vault asociado al área de trabajo. Para obtener un ejemplo de cómo trabajar con secretos, consulte Uso de secretos en ejecuciones de entrenamiento.

get_snapshot_id

Se obtiene el identificador de instantánea más reciente.

get_status

Se captura el estado más reciente de la ejecución.

Los valores comunes devueltos incluyen "Running", "Completed" y "Failed".

get_submitted_run

EN DESUSO. Use get_context.

Se obtiene la ejecución enviada para este experimento.

get_tags

Se captura el conjunto más reciente de etiquetas mutables en la ejecución del servicio.

list

Se obtiene una lista de ejecuciones en un experimento especificado por filtros opcionales.

list_by_compute

Se obtiene una lista de ejecuciones en un proceso especificado por filtros opcionales.

log

Registra un valor de métrica en la ejecución con el nombre especificado.

log_accuracy_table

Se registra una tabla de precisión en el almacén de artefactos.

La métrica de tabla de precisión es una métrica no escalar de uso múltiple que se puede usar para generar varios tipos de gráficos de líneas que varían continuamente en el espacio de probabilidades previstas. Algunos ejemplos de estos gráficos son ROC, la coincidencia de precisión y las curvas de elevación.

El cálculo de la tabla de precisión es similar al cálculo de una curva ROC. Una curva ROC almacena tasas de verdaderos positivos y tasas de falsos positivos en muchos umbrales de probabilidad diferentes. La tabla de precisión almacena el número sin procesar de verdaderos positivos, falsos positivos, verdaderos negativos y falsos negativos en muchos umbrales de probabilidad.

Hay dos métodos que se usan para seleccionar umbrales: "probabilidad" y "percentil". Difieren en la forma en que se muestrean en el espacio de probabilidades previstas.

Los umbrales de probabilidad son umbrales espaciados uniformemente entre 0 y 1. Si NUM_POINTS es 5, los umbrales de probabilidad serían [0,0, 0,25, 0,5, 0,75, 1,0].

Los umbrales de percentil se espacian según la distribución de las probabilidades previstas. Cada umbral corresponde al percentil de los datos en un umbral de probabilidad. Por ejemplo, si NUM_POINTS es 5, el primer umbral estaría en el percentil 0, el segundo en el percentil 25, el tercero en el 50, y así sucesivamente.

Las tablas de probabilidad y las tablas de percentil son listas 3D donde la primera dimensión representa la etiqueta de clase, la segunda dimensión representa la muestra en un umbral (escala con NUM_POINTS) y la tercera dimensión siempre tiene 4 valores: TP, FP, TN, FN y siempre en ese orden.

Los valores de confusión (TP, FP, TN, FN) se procesan con la estrategia de uno frente al resto. Consulte el vínculo siguiente para obtener más detalles: https://en.wikipedia.org/wiki/Multiclass_classification

N = número de muestras del conjunto de datos de validación (200 en el ejemplo) M = número de umbrales = número de muestras tomadas en el espacio de probabilidad (5 en el ejemplo) C = número de clases en el conjunto de datos completo (3 en el ejemplo)

Algunos invariables de la tabla de precisión:

  • TP + FP + TN + FN = N para todos los umbrales de todas las clases
  • TP + FN es igual en todos los umbrales de cualquier clase
  • TN + FP es igual en todos los umbrales de cualquier clase
  • Las tablas de probabilidad y las tablas de percentil tienen forma [C, M, 4]

Nota: M puede ser cualquier valor y controla la resolución de los gráficos. Esto es independiente del conjunto de datos, se define al calcular las métricas y equilibra el espacio de almacenamiento, el tiempo de cálculo y la resolución.

Las etiquetas de clase deben ser cadenas, los valores de confusión deben ser enteros y los umbrales deben ser valores float.

log_confusion_matrix

Se registra una matriz de confusión en el almacén de artefactos.

Esto registra un contenedor en torno a la matriz de confusión de sklearn. Los datos de métricas contienen las etiquetas de clase y una lista 2D para la propia matriz. Consulte el vínculo siguiente para obtener más detalles sobre cómo se calcula la métrica: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_image

Registra una métrica de imagen en el registro de ejecución.

log_list

Se registra una lista de valores de métrica en la ejecución con el nombre especificado.

log_predictions

Se registran las predicciones en el almacén de artefactos.

Esto registra una puntuación de métrica que se puede usar para comparar las distribuciones de valores de destino verdaderos con la distribución de valores previstos para una tarea de regresión.

Las predicciones se guardan y las desviaciones estándar se calculan para las barras de error en un gráfico de líneas.

log_residuals

Se registran los valores residuales en el almacén de artefactos.

Se registran los datos necesarios para mostrar un histograma de valores residuales para una tarea de regresión. Se predicen los valores residuales: reales.

Debe haber otro límite además del número de recuentos. Consulte la documentación del histograma NumPy para ejemplos del uso de recuentos y límites para representar un histograma. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_row

Se registra una métrica de fila en la ejecución con el nombre especificado.

log_table

Registra una métrica de tabla en la ejecución con el nombre especificado.

register_model

Se registra un modelo para la operacionalización.

remove_tags

Se elimina la lista de etiquetas mutables en esta ejecución.

restore_snapshot

Se restaura una instantánea como archivo ZIP. Devuelve la ruta de acceso del archivo ZIP.

set_tags

Se agrega o modifica un conjunto de etiquetas en la ejecución. Las etiquetas que no se pasan en el diccionario se mantienen intactas.

También puede agregar etiquetas de cadena simples. Cuando estas etiquetas aparecen en el diccionario de etiquetas como claves, tienen un valor de None. Para obtener más información, vea Etiquetado y búsqueda de ejecuciones.

start

Se marca la ejecución como iniciada.

Se usa normalmente en escenarios avanzados cuando otro actor ha creado la ejecución.

submit_child

Se envía un experimento y se devuelve la ejecución secundaria activa.

tag

Etiqueta la ejecución con una clave de cadena y un valor de cadena opcional.

take_snapshot

Se guara una instantánea del archivo o carpeta de entrada.

upload_file

Carga un archivo en el registro de ejecución.

upload_files

Se cargan archivos en el registro de ejecución.

upload_folder

Se carga la carpeta especificada en el nombre de prefijo especificado.

wait_for_completion

Espera a que se complete esta ejecución. Devuelve el objeto de estado después de la espera.

add_properties

Se agregan propiedades inmutables a la ejecución.

Las etiquetas y propiedades (dict[str, str]) difieren en su mutabilidad. Las propiedades son inmutables, por lo que crean un registro permanente con fines de auditoría. Las etiquetas son mutables. Para más información sobre cómo trabajar con etiquetas y propiedades, vea Etiquetado y búsqueda de ejecuciones.

add_properties(properties)

Parámetros

Nombre Description
properties
Requerido

Propiedades ocultas almacenadas en el objeto de ejecución.

add_type_provider

Enlace de extensibilidad para tipos de ejecución personalizados almacenados en el historial de ejecución.

static add_type_provider(runtype, run_factory)

Parámetros

Nombre Description
runtype
Requerido
str

Valor de Run.type para el que se invocará la fábrica. Algunos ejemplos son "hyperdrive" o "azureml.scriptrun", pero se pueden ampliar con tipos personalizados.

run_factory
Requerido
<xref:function>

Una función con signatura (Experiment, RunDto) -> Ejecución que se invocará al enumerar ejecuciones.

cancel

Se marca la ejecución como cancelada.

Si hay un trabajo asociado con un campo cancel_uri establecido, se finaliza también ese trabajo.

cancel()

child_run

Se crea una ejecución secundaria.

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

Parámetros

Nombre Description
name
str

Nombre opcional para la ejecución secundaria, que normalmente se especifica para una "parte".

Valor predeterminado: None
run_id
str

Identificador de ejecución opcional para el elemento secundario; de lo contrario, se genera automáticamente. Normalmente, este parámetro no está establecido.

Valor predeterminado: None
outputs
str

Directorio de salidas opcionales para supervisar el elemento secundario.

Valor predeterminado: None

Devoluciones

Tipo Description
Run

Ejecución secundaria.

Comentarios

Se usa para aislar parte de una ejecución en una subsección. Se puede usar para las "partes" identificables de una ejecución que es interesante separar o para capturar métricas independientes en una interacción de un subproceso.

Si se establece un directorio de salida para la ejecución secundaria, el contenido de ese directorio se cargará en el registro de ejecución secundario cuando se complete el elemento secundario.

clean

Se quitan los archivos correspondientes a la ejecución actual en el destino especificado en la configuración de ejecución.

clean()

Devoluciones

Tipo Description

Lista de archivos eliminados.

complete

Se espera a que se procese la cola de tareas.

A continuación, la ejecución se marca como completada. Este script se usa normalmente en escenarios de cuaderno interactivos.

complete(_set_status=True)

Parámetros

Nombre Description
_set_status

Indica si se va a enviar el evento de estado para el seguimiento.

Valor predeterminado: True

create_children

Se crea una o varias ejecuciones secundarias.

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

Parámetros

Nombre Description
count
int

Número opcional de elementos secundarios que se crearán.

Valor predeterminado: None
tag_key
str

Clave opcional para rellenar la entrada de etiquetas en todos los elementos secundarios creados.

Valor predeterminado: None
tag_Values
Requerido

Lista opcional de valores que se asignarán a Tags[tag_key] para la lista de ejecuciones creadas.

tag_values
Valor predeterminado: None

Devoluciones

Tipo Description

Lista de ejecuciones secundarias.

Comentarios

Se debe especificar el parámetro count O los parámetros tag_key Y tag_values.

download_file

Se descarga un archivo asociado del almacenamiento.

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

Parámetros

Nombre Description
name
Requerido
str

Nombre del artefacto que se descargará.

output_file_path
Requerido
str

Ruta de acceso local donde se va a almacenar el artefacto.

download_files

Se descargan los archivos de un prefijo de almacenamiento determinado (nombre de carpeta) o de todo el contenedor si el prefijo no está especificado.

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

Parámetros

Nombre Description
prefix
Requerido
str

Prefijo de ruta de acceso de archivo dentro del contenedor desde el que se descargan todos los artefactos.

output_directory
Requerido
str

Directorio opcional que todas las rutas de acceso de artefacto usan como prefijo.

output_paths
Requerido
[str]

Rutas de acceso de archivo opcionales para almacenar los artefactos descargados. Deben ser únicas y coincidir con la longitud de las rutas de acceso.

batch_size
Requerido
int

Número de archivos que se descargarán por lote. El valor predeterminado es 100 archivos.

append_prefix
Requerido

Marca opcional que indica si se debe anexar el prefijo especificado de la ruta de acceso final del archivo de salida. Si es False, el prefijo se quita de la ruta de acceso del archivo de salida.

timeout_seconds
Requerido
int

Tiempo de espera para descargar archivos.

fail

Se marca la ejecución como con errores.

Opcionalmente, se establece la propiedad Error de la ejecución con un mensaje o una excepción pasados a error_details.

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

Parámetros

Nombre Description
error_details

Detalles opcionales del error.

Valor predeterminado: None
error_code
str

Código de error opcional para la clasificación de errores.

Valor predeterminado: None
_set_status

Indica si se va a enviar el evento de estado para el seguimiento.

Valor predeterminado: True

flush

Se espera a que se procese la cola de tareas.

flush(timeout_seconds=300)

Parámetros

Nombre Description
timeout_seconds
int

Cuánto tiempo se debe esperar (en segundos) para que se procese la cola de tareas.

Valor predeterminado: 300

get

Se obtiene la ejecución de esta área de trabajo con su identificador de ejecución.

static get(workspace, run_id)

Parámetros

Nombre Description
workspace
Requerido

Área de trabajo contenedora.

run_id
Requerido

Identificador de la ejecución.

Devoluciones

Tipo Description
Run

Ejecución enviada.

get_all_logs

Se descargan todos los registros de la ejecución en un directorio.

get_all_logs(destination=None)

Parámetros

Nombre Description
destination
str

Ruta de acceso de destino para almacenar los registros. Si no se especifica, se crea un directorio llamado como el identificador de ejecución en el directorio del proyecto.

Valor predeterminado: None

Devoluciones

Tipo Description

Lista de nombres de registros descargados.

get_children

Se obtienen todos los elementos secundarios de la ejecución actual seleccionados por los filtros especificados.

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

Parámetros

Nombre Description
recursive

Indica si se debe repetir en todos los descendientes.

Valor predeterminado: False
tags
str o dict

Si se especifica, devuelve las ejecuciones que coinciden con el elemento "tag" especificado o {"tag": "value"}.

Valor predeterminado: None
properties
str o dict

Si se especifica, devuelve las ejecuciones que coinciden con el elemento "property" especificado o {"property": "value"}.

Valor predeterminado: None
type
str

Si se especifica, devuelve las ejecuciones que coinciden con este tipo.

Valor predeterminado: None
status
str

Si se especifica, devuelve las ejecuciones con el estado especificado "status".

Valor predeterminado: None
_rehydrate_runs

Indica si se deben crear instancias de una ejecución del tipo original o de la ejecución base.

Valor predeterminado: True

Devoluciones

Tipo Description

Una lista de objetos Run.

get_context

Se devuelve el contexto de servicio actual.

Use este método para recuperar el contexto de servicio actual para registrar métricas y cargar archivos. Si allow_offline es True (valor predeterminado), las acciones realizadas en el objeto de ejecución se imprimirán en salida estándar.

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

Parámetros

Nombre Description
cls
Requerido

Indica el método de clase.

allow_offline

Se permite que el contexto de servicio vuelva al modo sin conexión para que el script de entrenamiento se pueda probar localmente sin enviar un trabajo con el SDK. De forma predeterminada es True.

Valor predeterminado: True
kwargs
Requerido

Diccionario de parámetros adicionales.

used_for_context_manager
Valor predeterminado: False

Devoluciones

Tipo Description
Run

Ejecución enviada.

Comentarios

Esta función se usa normalmente para recuperar el objeto de ejecución autenticado dentro de un script que se va a enviar para su ejecución a través de experiment.submit(). Este objeto de ejecución es un contexto autenticado para comunicarse con los servicios de Azure Machine Learning y un contenedor conceptual en el que se encuentran las métricas, los archivos (artefactos) y los modelos.


   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

Se captura el estado más reciente de la ejecución. Si el estado de la ejecución es "Queued", se mostrarán los detalles.

get_detailed_status()

Devoluciones

Tipo Description

Estado y detalles más recientes.

Comentarios

  • status: estado actual de la ejecución. El mismo valor que el devuelto por get_status().

  • details: información detallada del estado actual.


   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

Se obtiene la definición, la información de estado, los archivos de registro actuales y otros detalles de la ejecución.

get_details()

Devoluciones

Tipo Description

Se devuelven los detalles de la ejecución.

Comentarios

El diccionario devuelto contiene los siguientes pares clave-valor:

  • runId: identificador de esta ejecución.

  • Destino

  • status: estado actual de la ejecución. El mismo valor que el devuelto por get_status().

  • startTimeUtc: hora UTC de cuando se inició esta ejecución, en ISO8601.

  • endTimeUtc: hora UTC de cuando esta ejecución finalizó (completado o con error), en ISO8601.

    Esta clave no existe si la ejecución todavía está en curso.

  • properties: pares clave-valor inmutables asociados a la ejecución. Las propiedades predeterminadas incluyen el identificador de instantánea de la ejecución e información sobre el repositorio de Git desde el que se creó la ejecución (si existe). Se pueden agregar propiedades adicionales a una ejecución mediante add_properties.

  • inputDatasets: conjuntos de datos de entrada asociados a la ejecución.

  • outputDatasets: conjuntos de datos de salida asociados a la ejecución.

  • logFiles

  • submittedBy


   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

Se devuelve el estado de la ejecución, incluido el contenido del archivo de registro.

get_details_with_logs()

Devoluciones

Tipo Description

Devuelve el estado de la ejecución con el contenido del archivo de registro.

get_environment

Se obtiene la definición de entorno que usó esta ejecución.

get_environment()

Devoluciones

Tipo Description

Se devuelve el objeto de entorno.

get_file_names

Se enumeran los archivos almacenados en asociación con la ejecución.

get_file_names()

Devoluciones

Tipo Description

Lista de rutas de acceso para artefactos existentes.

get_metrics

Se recuperan las métricas registradas en la ejecución.

Si recursive es True (False de manera predeterminada), se capturan las métricas de las ejecuciones en el subárbol de la ejecución determinada.

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

Parámetros

Nombre Description
name
str

El nombre de la métrica.

Valor predeterminado: None
recursive

Indica si se debe repetir en todos los descendientes.

Valor predeterminado: False
run_type
str
Valor predeterminado: None
populate

Indica si se debe capturar el contenido de los datos externos vinculados a la métrica.

Valor predeterminado: False

Devoluciones

Tipo Description

Diccionario que contiene las métricas de usuario.

Comentarios


   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

Se capturan las propiedades más recientes de la ejecución desde el servicio.

get_properties()

Devoluciones

Tipo Description

Propiedades de la ejecución.

Comentarios

Las propiedades son información inmutable generada por el sistema, como la duración, la fecha de ejecución, el usuario y las propiedades personalizadas agregadas con el método add_properties. Para obtener más información, vea Etiquetado y búsqueda de ejecuciones.

Al enviar un trabajo a Azure Machine Learning, si los archivos de origen se almacenan en un repositorio de Git local, se almacena la información sobre el repositorio como propiedades. Estas propiedades de Git se agregan al crear una ejecución o llamar a Experiment.submit. Para más información, consulte Integración de Git con Azure Machine Learning.

get_secret

Se obtiene el valor del secreto del contexto de una ejecución.

Se obtiene el valor del secreto para el nombre proporcionado. El nombre del secreto hace referencia a un valor almacenado en Azure Key Vault asociado al área de trabajo. Para obtener un ejemplo de cómo trabajar con secretos, consulte Uso de secretos en ejecuciones de entrenamiento.

get_secret(name)

Parámetros

Nombre Description
name
Requerido
str

Nombre del secreto para el que se va a devolver un secreto.

Devoluciones

Tipo Description
str

Valor del secreto.

get_secrets

Se obtienen los valores de secretos para una lista determinada de nombres de secretos.

Se obtiene un diccionario de secretos encontrados y no encontrados para la lista de nombres proporcionados. Cada nombre de secreto hace referencia a un valor almacenado en Azure Key Vault asociado al área de trabajo. Para obtener un ejemplo de cómo trabajar con secretos, consulte Uso de secretos en ejecuciones de entrenamiento.

get_secrets(secrets)

Parámetros

Nombre Description
secrets
Requerido

Lista de nombres de secretos para los que se devuelven valores de secretos.

Devoluciones

Tipo Description

Devuelve un diccionario de secretos encontrados y no encontrados.

get_snapshot_id

Se obtiene el identificador de instantánea más reciente.

get_snapshot_id()

Devoluciones

Tipo Description
str

Identificador de instantánea más reciente.

get_status

Se captura el estado más reciente de la ejecución.

Los valores comunes devueltos incluyen "Running", "Completed" y "Failed".

get_status()

Devoluciones

Tipo Description
str

Estado más reciente.

Comentarios

  • NotStarted: se trata de un estado temporal en el que se encuentran los objetos de ejecución del lado cliente antes del envío a la nube.

  • Starting: la ejecución ha empezado a procesarse en la nube. El autor de la llamada tiene un identificador de ejecución en este momento.

  • Provisioning: se devuelve cuando se crea un proceso a petición para un envío de trabajo determinado.

  • Preparing: el entorno de ejecución se está preparando:

    • creación de la imagen de Docker

    • configuración del entorno Conda

  • Queued: el trabajo está en cola en el destino de proceso. Por ejemplo, en BatchAI, el trabajo está en estado en cola

    mientras espera a que todos los nodos solicitados estén listos.

  • Running: el trabajo comenzó a ejecutarse en el destino de proceso.

  • Finalizing: el código de usuario se ha completado y la ejecución se encuentra en fases posteriores al procesamiento.

  • CancelRequested: se ha solicitado la cancelación del trabajo.

  • Completed: la ejecución se completó correctamente. Se incluye el código de usuario y las fases

    posteriores al procesamiento de la ejecución.

  • Failed: error en la ejecución. Normalmente, la propiedad Error de una ejecución proporcionará detalles sobre por qué se produjo el error.

  • Canceled: sigue a una solicitud de cancelación e indica que la ejecución se ha cancelado correctamente.

  • NotResponding: en el caso de las ejecuciones que tienen los latidos habilitados, no se ha enviado recientemente ningún latido.


   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

EN DESUSO. Use get_context.

Se obtiene la ejecución enviada para este experimento.

get_submitted_run(**kwargs)

Devoluciones

Tipo Description
Run

Ejecución enviada.

get_tags

Se captura el conjunto más reciente de etiquetas mutables en la ejecución del servicio.

get_tags()

Devoluciones

Tipo Description

Etiquetas almacenadas en el objeto de ejecución.

list

Se obtiene una lista de ejecuciones en un experimento especificado por filtros opcionales.

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

Parámetros

Nombre Description
experiment
Requerido

Experimento que lo contiene.

type
str

Si se especifica, devuelve las ejecuciones que coinciden con el tipo especificado.

Valor predeterminado: None
tags
str o dict

Si se especifica, devuelve las ejecuciones que coinciden con el elemento "tag" especificado o {"tag": "value"}.

Valor predeterminado: None
properties
str o dict

Si se especifica, devuelve las ejecuciones que coinciden con el elemento "property" especificado o {"property": "value"}.

Valor predeterminado: None
status
str

Si se especifica, devuelve las ejecuciones con el estado especificado "status".

Valor predeterminado: None
include_children

Si se establece en True, se capturan todas las ejecuciones, no solo las de nivel superior.

Valor predeterminado: False
_rehydrate_runs

Si se establece en True (de manera predeterminada), usará el proveedor registrado para volver a crear la instancia de un objeto para ese tipo en lugar del objeto de ejecución base.

Valor predeterminado: True

Devoluciones

Tipo Description

Lista de ejecuciones.

Comentarios

En el siguiente ejemplo de código se muestran algunos usos del método list.


   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

Se obtiene una lista de ejecuciones en un proceso especificado por filtros opcionales.

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

Parámetros

Nombre Description
compute
Requerido

Proceso contenedor.

type
str

Si se especifica, devuelve las ejecuciones que coinciden con el tipo especificado.

Valor predeterminado: None
tags
str o dict

Si se especifica, devuelve las ejecuciones que coinciden con el elemento "tag" especificado o {"tag": "value"}.

Valor predeterminado: None
properties
str o dict

Si se especifica, devuelve las ejecuciones que coinciden con el elemento "property" especificado o {"property": "value"}.

Valor predeterminado: None
status
str

Si se especifica, devuelve las ejecuciones con el estado especificado "status". Los únicos valores permitidos son "Running" y "Queued".

Valor predeterminado: None

Devoluciones

Tipo Description
<xref:builtin.generator>

Un generador de ~_restclient.models.RunDto

log

Registra un valor de métrica en la ejecución con el nombre especificado.

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

Parámetros

Nombre Description
name
Requerido
str

Nombre de la métrica.

value
Requerido

Valor que se va a publicar en el servicio.

description
Requerido
str

Descripción opcional de la métrica.

step
int

Eje opcional para especificar el orden de los valores dentro de una métrica.

Valor predeterminado: None

Comentarios

Al registrar una métrica en una ejecución, esa métrica se almacena en el registro de ejecución en el experimento. Puede registrar la misma métrica varias veces dentro de una ejecución y el resultado se considerará un vector de esa métrica. Si se especifica step para una métrica, se debe especificar para todos los valores.

log_accuracy_table

Se registra una tabla de precisión en el almacén de artefactos.

La métrica de tabla de precisión es una métrica no escalar de uso múltiple que se puede usar para generar varios tipos de gráficos de líneas que varían continuamente en el espacio de probabilidades previstas. Algunos ejemplos de estos gráficos son ROC, la coincidencia de precisión y las curvas de elevación.

El cálculo de la tabla de precisión es similar al cálculo de una curva ROC. Una curva ROC almacena tasas de verdaderos positivos y tasas de falsos positivos en muchos umbrales de probabilidad diferentes. La tabla de precisión almacena el número sin procesar de verdaderos positivos, falsos positivos, verdaderos negativos y falsos negativos en muchos umbrales de probabilidad.

Hay dos métodos que se usan para seleccionar umbrales: "probabilidad" y "percentil". Difieren en la forma en que se muestrean en el espacio de probabilidades previstas.

Los umbrales de probabilidad son umbrales espaciados uniformemente entre 0 y 1. Si NUM_POINTS es 5, los umbrales de probabilidad serían [0,0, 0,25, 0,5, 0,75, 1,0].

Los umbrales de percentil se espacian según la distribución de las probabilidades previstas. Cada umbral corresponde al percentil de los datos en un umbral de probabilidad. Por ejemplo, si NUM_POINTS es 5, el primer umbral estaría en el percentil 0, el segundo en el percentil 25, el tercero en el 50, y así sucesivamente.

Las tablas de probabilidad y las tablas de percentil son listas 3D donde la primera dimensión representa la etiqueta de clase, la segunda dimensión representa la muestra en un umbral (escala con NUM_POINTS) y la tercera dimensión siempre tiene 4 valores: TP, FP, TN, FN y siempre en ese orden.

Los valores de confusión (TP, FP, TN, FN) se procesan con la estrategia de uno frente al resto. Consulte el vínculo siguiente para obtener más detalles: https://en.wikipedia.org/wiki/Multiclass_classification

N = número de muestras del conjunto de datos de validación (200 en el ejemplo) M = número de umbrales = número de muestras tomadas en el espacio de probabilidad (5 en el ejemplo) C = número de clases en el conjunto de datos completo (3 en el ejemplo)

Algunos invariables de la tabla de precisión:

  • TP + FP + TN + FN = N para todos los umbrales de todas las clases
  • TP + FN es igual en todos los umbrales de cualquier clase
  • TN + FP es igual en todos los umbrales de cualquier clase
  • Las tablas de probabilidad y las tablas de percentil tienen forma [C, M, 4]

Nota: M puede ser cualquier valor y controla la resolución de los gráficos. Esto es independiente del conjunto de datos, se define al calcular las métricas y equilibra el espacio de almacenamiento, el tiempo de cálculo y la resolución.

Las etiquetas de clase deben ser cadenas, los valores de confusión deben ser enteros y los umbrales deben ser valores float.

log_accuracy_table(name, value, description='')

Parámetros

Nombre Description
name
Requerido
str

Nombre de la tabla de precisión.

value
Requerido
str o dict

JSON que contiene las propiedades de nombre, versión y datos.

description
Requerido
str

Descripción opcional de la métrica.

Comentarios

Ejemplo de un valor JSON válido:


   {
       "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

Se registra una matriz de confusión en el almacén de artefactos.

Esto registra un contenedor en torno a la matriz de confusión de sklearn. Los datos de métricas contienen las etiquetas de clase y una lista 2D para la propia matriz. Consulte el vínculo siguiente para obtener más detalles sobre cómo se calcula la métrica: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_confusion_matrix(name, value, description='')

Parámetros

Nombre Description
name
Requerido
str

Nombre de la matriz de confusión.

value
Requerido
str o dict

JSON que contiene las propiedades de nombre, versión y datos.

description
Requerido
str

Descripción opcional de la métrica.

Comentarios

Ejemplo de un valor JSON válido:


   {
       "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

Registra una métrica de imagen en el registro de ejecución.

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

Parámetros

Nombre Description
name
Requerido
str

El nombre de la métrica.

path
Requerido
str

Ruta de acceso o secuencia de la imagen.

plot
Requerido
<xref:matplotlib.pyplot>

Trazado que se registrará como imagen.

description
Requerido
str

Descripción opcional de la métrica.

Comentarios

Use este método para registrar un archivo de imagen o un trazado de matplotlib en la ejecución. Estas imágenes serán visibles y comparables en el registro de ejecución.

log_list

Se registra una lista de valores de métrica en la ejecución con el nombre especificado.

log_list(name, value, description='')

Parámetros

Nombre Description
name
Requerido
str

Nombre de la métrica.

value
Requerido

Valores de la métrica.

description
Requerido
str

Descripción opcional de la métrica.

log_predictions

Se registran las predicciones en el almacén de artefactos.

Esto registra una puntuación de métrica que se puede usar para comparar las distribuciones de valores de destino verdaderos con la distribución de valores previstos para una tarea de regresión.

Las predicciones se guardan y las desviaciones estándar se calculan para las barras de error en un gráfico de líneas.

log_predictions(name, value, description='')

Parámetros

Nombre Description
name
Requerido
str

Nombre de las predicciones.

value
Requerido
str o dict

JSON que contiene las propiedades de nombre, versión y datos.

description
Requerido
str

Descripción opcional de la métrica.

Comentarios

Ejemplo de un valor JSON válido:


   {
       "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

Se registran los valores residuales en el almacén de artefactos.

Se registran los datos necesarios para mostrar un histograma de valores residuales para una tarea de regresión. Se predicen los valores residuales: reales.

Debe haber otro límite además del número de recuentos. Consulte la documentación del histograma NumPy para ejemplos del uso de recuentos y límites para representar un histograma. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_residuals(name, value, description='')

Parámetros

Nombre Description
name
Requerido
str

Nombre de los valores residuales.

value
Requerido
str o dict

JSON que contiene las propiedades de nombre, versión y datos.

description
Requerido
str

Descripción opcional de la métrica.

Comentarios

Ejemplo de un valor JSON válido:


   {
       "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

Se registra una métrica de fila en la ejecución con el nombre especificado.

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

Parámetros

Nombre Description
name
Requerido
str

Nombre de la métrica.

description
str

Descripción opcional de la métrica.

Valor predeterminado: None
kwargs
Requerido

Diccionario de parámetros adicionales. En este caso, las columnas de la métrica.

Comentarios

El uso de log_row crea una métrica de tabla con columnas, como se describe en kwargs. Cada parámetro con nombre genera una columna con el valor especificado. Se puede llamar a log_row una vez para registrar una tupla arbitraria, o varias veces en un bucle para generar una tabla 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

Registra una métrica de tabla en la ejecución con el nombre especificado.

log_table(name, value, description='')

Parámetros

Nombre Description
name
Requerido
str

Nombre de la métrica.

value
Requerido

Valor de tabla de la métrica, un diccionario donde las claves son columnas que se publicarán en el servicio.

description
Requerido
str

Descripción opcional de la métrica.

register_model

Se registra un modelo para la operacionalización.

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)

Parámetros

Nombre Description
model_name
Requerido
str

Nombre del modelo

model_path
str

Ruta de acceso de nube relativa al modelo, por ejemplo, "outputs/modelname". Cuando no se especifica (None), se usa model_name como ruta de acceso.

Valor predeterminado: None
tags

Diccionario de etiquetas clave-valor que se asignarán al modelo.

Valor predeterminado: None
properties

Diccionario de propiedades clave-valor que se asignarán al modelo. Estas propiedades no se pueden cambiar después de la creación del modelo, pero se pueden agregar nuevos pares clave-valor.

Valor predeterminado: None
model_framework
str

Marco del modelo que se registrará. Marcos admitidos actualmente: TensorFlow, ScikitLearn, Onnx, Custom, Multi

Valor predeterminado: None
model_framework_version
str

Versión del marco del modelo registrado.

Valor predeterminado: None
description
str

Descripción opcional del modelo.

Valor predeterminado: None
datasets

Lista de tuplas donde el primer elemento describe la relación de conjunto de datos y modelo y el segundo elemento es el conjunto de datos.

Valor predeterminado: None
sample_input_dataset

Opcional. Conjunto de datos de entrada de ejemplo para el modelo registrado.

Valor predeterminado: None
sample_output_dataset

Opcional. Conjunto de datos de salida de ejemplo para el modelo registrado.

Valor predeterminado: None
resource_configuration

Opcional. Configuración de recursos para ejecutar el modelo registrado.

Valor predeterminado: None
kwargs
Requerido

Parámetros opcionales.

Devoluciones

Tipo Description

Modelo registrado.

Comentarios


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

remove_tags

Se elimina la lista de etiquetas mutables en esta ejecución.

remove_tags(tags)

Parámetros

Nombre Description
tags
Requerido

Lista de etiquetas que se quitarán.

Devoluciones

Tipo Description

Etiquetas almacenadas en el objeto de ejecución.

restore_snapshot

Se restaura una instantánea como archivo ZIP. Devuelve la ruta de acceso del archivo ZIP.

restore_snapshot(snapshot_id=None, path=None)

Parámetros

Nombre Description
snapshot_id
str

Identificador de instantánea que se restaurará. Si no se especifica, se usa la versión más reciente.

Valor predeterminado: None
path
str

Ruta de acceso donde se guarda el archivo ZIP descargado.

Valor predeterminado: None

Devoluciones

Tipo Description
str

La ruta de acceso.

set_tags

Se agrega o modifica un conjunto de etiquetas en la ejecución. Las etiquetas que no se pasan en el diccionario se mantienen intactas.

También puede agregar etiquetas de cadena simples. Cuando estas etiquetas aparecen en el diccionario de etiquetas como claves, tienen un valor de None. Para obtener más información, vea Etiquetado y búsqueda de ejecuciones.

set_tags(tags)

Parámetros

Nombre Description
tags
Requerido
dict[str] o str

Etiquetas almacenadas en el objeto de ejecución.

start

Se marca la ejecución como iniciada.

Se usa normalmente en escenarios avanzados cuando otro actor ha creado la ejecución.

start()

submit_child

Se envía un experimento y se devuelve la ejecución secundaria activa.

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

Parámetros

Nombre Description
config
Requerido

Configuración que se va a enviar.

tags

Etiquetas que se van a agregar a la ejecución enviada, por ejemplo, {"tag": "value"}.

Valor predeterminado: None
kwargs
Requerido

Parámetros adicionales utilizados en la función de envío para las configuraciones.

Devoluciones

Tipo Description
Run

Objeto de ejecución.

Comentarios

El envío es una llamada asincrónica a la plataforma de Azure Machine Learning para ejecutar una prueba en hardware local o remoto. Según la configuración, el envío preparará automáticamente los entornos de ejecución, ejecutará el código y capturará el código fuente y los resultados en el historial de ejecución del experimento.

Para enviar un experimento, primero debe crear un objeto de configuración que describa cómo se va a ejecutar el experimento. La configuración depende del tipo de prueba necesaria.

Un ejemplo de cómo enviar un experimento secundario desde la máquina local mediante ScriptRunConfig es el siguiente:


   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()

Para obtener detalles sobre cómo configurar una ejecución, vea submit.

tag

Etiqueta la ejecución con una clave de cadena y un valor de cadena opcional.

tag(key, value=None)

Parámetros

Nombre Description
key
Requerido
str

Clave de etiqueta.

value
str

Valor opcional para la etiqueta.

Valor predeterminado: None

Comentarios

Las etiquetas y las propiedades de una ejecución son diccionarios de cadena -> cadena. La diferencia entre ellas es la mutabilidad: las etiquetas se pueden establecer, actualizar y eliminar, mientras que las propiedades solo se pueden agregar. Esto hace que las propiedades sean más adecuadas para los desencadenadores de comportamiento relacionados con el sistema o el flujo de trabajo, mientras que las etiquetas suelen estar orientadas al usuario y tener un significado para los consumidores del experimento.


   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

Se guara una instantánea del archivo o carpeta de entrada.

take_snapshot(file_or_folder_path)

Parámetros

Nombre Description
file_or_folder_path
Requerido
str

Archivo o carpeta que contiene el código fuente de ejecución.

Devoluciones

Tipo Description
str

Devuelve el identificador de instantánea.

Comentarios

Las instantáneas están diseñadas para ser el código fuente que se usa para la ejecución del experimento. Se almacenan con la ejecución para que la prueba de la ejecución se pueda replicar en el futuro.

Nota

Las instantáneas se toman automáticamente cuando se llama a submit. Normalmente, el método take_snapshot solo es necesario para las ejecuciones interactivas (cuadernos).

upload_file

Carga un archivo en el registro de ejecución.

upload_file(name, path_or_stream, datastore_name=None)

Parámetros

Nombre Description
name
Requerido
str

Nombre del archivo que se cargará.

path_or_stream
Requerido
str

Ruta de acceso local relativa o secuencia del archivo que se cargará.

datastore_name
Requerido
str

Nombre opcional del almacén de datos

Devoluciones

Tipo Description

Comentarios


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

Nota

Las ejecuciones capturan automáticamente el archivo en el directorio de salida especificado, cuyo valor predeterminado es "./outputs" para la mayoría de tipos de ejecución. Use upload_file solo cuando sea necesario cargar archivos adicionales o no se especifique un directorio de salida.

upload_files

Se cargan archivos en el registro de ejecución.

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

Parámetros

Nombre Description
names
Requerido

Nombres de los archivos que se cargarán. Si se establecen, también se deben establecer las rutas de acceso.

paths
Requerido

Rutas de acceso locales relativas de los archivos que se cargarán. Si se establecen, se requieren nombres.

return_artifacts
Requerido

Indica que se debe devolver un objeto de artefacto para cada archivo cargado.

timeout_seconds
Requerido
int

Tiempo de espera para cargar archivos.

datastore_name
Requerido
str

Nombre opcional del almacén de datos

Comentarios

upload_files tiene el mismo efecto que upload_file en archivos independientes, pero hay ventajas de rendimiento y de uso de recursos al usar 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

Las ejecuciones capturan automáticamente los archivos en el directorio de salida especificado, cuyo valor predeterminado es "./outputs" para la mayoría de los tipos de ejecución. Use upload_files solo cuando sea necesario cargar archivos adicionales o no se especifique un directorio de salida.

upload_folder

Se carga la carpeta especificada en el nombre de prefijo especificado.

upload_folder(name, path, datastore_name=None)

Parámetros

Nombre Description
name
Requerido
str

Nombre de la carpeta de archivos que se va a cargar.

folder
Requerido
str

Ruta de acceso local relativa de la carpeta que se cargará.

datastore_name
Requerido
str

Nombre opcional del almacén de datos

Comentarios


   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

Las ejecuciones capturan automáticamente los archivos en el directorio de salida especificado, cuyo valor predeterminado es "./outputs" para la mayoría de los tipos de ejecución. Use upload_folder solo cuando sea necesario cargar archivos adicionales o no se especifique un directorio de salida.

wait_for_completion

Espera a que se complete esta ejecución. Devuelve el objeto de estado después de la espera.

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

Parámetros

Nombre Description
show_output

Indica si se debe mostrar la salida de ejecución en sys.stdout.

Valor predeterminado: False
wait_post_processing

Indica si se debe esperar a que se complete el procesamiento posterior una vez completada la ejecución.

Valor predeterminado: False
raise_on_error

Indica si se genera un error cuando la ejecución está en un estado de error.

Valor predeterminado: True

Devoluciones

Tipo Description

Objeto de estado.

Atributos

description

Se devuelve la descripción de la ejecución.

La descripción opcional de la ejecución es una cadena especificada por el usuario útil para describir una ejecución.

Devoluciones

Tipo Description
str

Descripción de la ejecución.

display_name

Se devuelve el nombre para mostrar de la ejecución.

El nombre para mostrar opcional de la ejecución es una cadena especificada por el usuario útil para la identificación posterior de la ejecución.

Devoluciones

Tipo Description
str

Nombre para mostrar de la ejecución.

experiment

Se obtiene el experimento que contiene la ejecución.

Devoluciones

Tipo Description

Recupera el experimento correspondiente a la ejecución.

id

Se obtiene el identificador de la ejecución.

El identificador de la ejecución es un identificador único en el experimento que lo contiene.

Devoluciones

Tipo Description
str

Identificador de la ejecución.

name

EN DESUSO. Use display_name.

El nombre opcional de la ejecución es una cadena especificada por el usuario útil para la identificación posterior de la ejecución.

Devoluciones

Tipo Description
str

Id. de ejecución.

number

Se obtiene el número de la ejecución.

Número que aumenta de forma monotónica y que representa el orden de las ejecuciones dentro de un experimento.

Devoluciones

Tipo Description
int

Número de la ejecución.

parent

Se captura la ejecución primaria para esta ejecución del servicio.

Las ejecuciones pueden tener un elemento primario opcional, lo que da lugar a una posible jerarquía de árbol de ejecuciones. Para registrar métricas en una ejecución primaria, use el método log del objeto primario, por ejemplo, run.parent.log().

Devoluciones

Tipo Description
Run

Ejecución primaria o None si no se establece ninguna.

properties

Se devuelven las propiedades inmutables de esta ejecución.

Devoluciones

Tipo Description
dict[str],
str

Propiedades almacenadas en caché localmente de la ejecución.

Comentarios

Las propiedades incluyen información generada por el sistema inmutable, como la duración, la fecha de ejecución, el usuario, etc.

status

Se devuelve el estado del objeto de ejecución.

tags

Se devuelve el conjunto de etiquetas mutables en esta ejecución.

Devoluciones

Tipo Description

Etiquetas almacenadas en el objeto de ejecución.

type

Se obtiene el tipo de ejecución.

Indica cómo se creó o configuró la ejecución.

Devoluciones

Tipo Description
str

Tipo de ejecución.