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

experiment
Experiment
Requerido

Experimento que lo contiene.

run_id
str
Requerido

Identificador de la ejecución.

outputs
str
valor predeterminado: None

Salidas que se van a supervisar.

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

Exclusivamente para uso interno.

kwargs
dict
Requerido

Diccionario de parámetros de configuración adicionales.

experiment
Experiment
Requerido

Experimento que lo contiene.

run_id
str
Requerido

Identificador de la ejecución.

outputs
str
Requerido

Salidas que se van a supervisar.

kwargs
dict
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

properties
dict
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

runtype
str
Requerido

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
<xref:function>
Requerido

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

name
str
valor predeterminado: None

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

run_id
str
valor predeterminado: None

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

outputs
str
valor predeterminado: None

Directorio de salidas opcionales para supervisar el elemento secundario.

Devoluciones

Ejecución secundaria.

Tipo de valor devuelto

Run

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

Lista de archivos eliminados.

Tipo de valor devuelto

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

_set_status
bool
valor predeterminado: True

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

create_children

Se crea una o varias ejecuciones secundarias.

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

Parámetros

count
int
valor predeterminado: None

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

tag_key
str
valor predeterminado: None

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

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

Lista de ejecuciones secundarias.

Tipo de valor devuelto

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

name
str
Requerido

Nombre del artefacto que se descargará.

output_file_path
str
Requerido

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

prefix
str
Requerido

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

output_directory
str
Requerido

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

output_paths
[str]
Requerido

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
int
Requerido

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

append_prefix
bool
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
int
Requerido

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

error_details
str o BaseException
valor predeterminado: None

Detalles opcionales del error.

error_code
str
valor predeterminado: None

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

_set_status
bool
valor predeterminado: True

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

flush

Se espera a que se procese la cola de tareas.

flush(timeout_seconds=300)

Parámetros

timeout_seconds
int
valor predeterminado: 300

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

get

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

static get(workspace, run_id)

Parámetros

workspace
Workspace
Requerido

Área de trabajo contenedora.

run_id
string
Requerido

Identificador de la ejecución.

Devoluciones

Ejecución enviada.

Tipo de valor devuelto

Run

get_all_logs

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

get_all_logs(destination=None)

Parámetros

destination
str
valor predeterminado: None

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.

Devoluciones

Lista de nombres de registros descargados.

Tipo de valor devuelto

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

recursive
bool
valor predeterminado: False

Indica si se debe repetir en todos los descendientes.

tags
str o dict
valor predeterminado: None

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

properties
str o dict
valor predeterminado: None

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

type
str
valor predeterminado: None

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

status
str
valor predeterminado: None

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

_rehydrate_runs
bool
valor predeterminado: True

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

Devoluciones

Una lista de objetos Run.

Tipo de valor devuelto

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

cls
Requerido

Indica el método de clase.

allow_offline
bool
valor predeterminado: True

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.

kwargs
dict
Requerido

Diccionario de parámetros adicionales.

used_for_context_manager
valor predeterminado: False

Devoluciones

Ejecución enviada.

Tipo de valor devuelto

Run

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

Estado y detalles más recientes.

Tipo de valor devuelto

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

Se devuelven los detalles de la ejecución.

Tipo de valor devuelto

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

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

Tipo de valor devuelto

get_environment

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

get_environment()

Devoluciones

Se devuelve el objeto de entorno.

Tipo de valor devuelto

get_file_names

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

get_file_names()

Devoluciones

Lista de rutas de acceso para artefactos existentes.

Tipo de valor devuelto

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

name
str
valor predeterminado: None

El nombre de la métrica.

recursive
bool
valor predeterminado: False

Indica si se debe repetir en todos los descendientes.

run_type
str
valor predeterminado: None
populate
bool
valor predeterminado: False

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

Devoluciones

Diccionario que contiene las métricas de usuario.

Tipo de valor devuelto

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

Propiedades de la ejecución.

Tipo de valor devuelto

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

name
str
Requerido

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

Devoluciones

Valor del secreto.

Tipo de valor devuelto

str

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

secrets
list[str]
Requerido

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

Devoluciones

Devuelve un diccionario de secretos encontrados y no encontrados.

Tipo de valor devuelto

dict[<xref:str: str>]

get_snapshot_id

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

get_snapshot_id()

Devoluciones

Identificador de instantánea más reciente.

Tipo de valor devuelto

str

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

Estado más reciente.

Tipo de valor devuelto

str

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

Ejecución enviada.

Tipo de valor devuelto

Run

get_tags

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

get_tags()

Devoluciones

Etiquetas almacenadas en el objeto de ejecución.

Tipo de valor devuelto

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

experiment
Experiment
Requerido

Experimento que lo contiene.

type
str
valor predeterminado: None

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

tags
str o dict
valor predeterminado: None

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

properties
str o dict
valor predeterminado: None

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

status
str
valor predeterminado: None

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

include_children
bool
valor predeterminado: False

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

_rehydrate_runs
bool
valor predeterminado: True

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.

Devoluciones

Lista de ejecuciones.

Tipo de valor devuelto

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

compute
ComputeTarget
Requerido

Proceso contenedor.

type
str
valor predeterminado: None

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

tags
str o dict
valor predeterminado: None

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

properties
str o dict
valor predeterminado: None

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

status
str
valor predeterminado: None

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

Devoluciones

Un generador de ~_restclient.models.RunDto

Tipo de valor devuelto

<xref:builtin.generator>

log

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

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

Parámetros

name
str
Requerido

Nombre de la métrica.

value
Requerido

Valor que se va a publicar en el servicio.

description
str
Requerido

Descripción opcional de la métrica.

step
int
valor predeterminado: None

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

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

name
str
Requerido

Nombre de la tabla de precisión.

value
str o dict
Requerido

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

description
str
Requerido

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

name
str
Requerido

Nombre de la matriz de confusión.

value
str o dict
Requerido

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

description
str
Requerido

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

name
str
Requerido

El nombre de la métrica.

path
str
Requerido

Ruta de acceso o secuencia de la imagen.

plot
<xref:matplotlib.pyplot>
Requerido

Trazado que se registrará como imagen.

description
str
Requerido

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

name
str
Requerido

Nombre de la métrica.

value
list
Requerido

Valores de la métrica.

description
str
Requerido

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

name
str
Requerido

Nombre de las predicciones.

value
str o dict
Requerido

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

description
str
Requerido

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

name
str
Requerido

Nombre de los valores residuales.

value
str o dict
Requerido

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

description
str
Requerido

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

name
str
Requerido

Nombre de la métrica.

description
str
valor predeterminado: None

Descripción opcional de la métrica.

kwargs
dict
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

name
str
Requerido

Nombre de la métrica.

value
dict
Requerido

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

description
str
Requerido

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

model_name
str
Requerido

Nombre del modelo

model_path
str
valor predeterminado: None

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.

tags
dict[str, str]
valor predeterminado: None

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

properties
dict[str, str]
valor predeterminado: None

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.

model_framework
str
valor predeterminado: None

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

model_framework_version
str
valor predeterminado: None

Versión del marco del modelo registrado.

description
str
valor predeterminado: None

Descripción opcional del modelo.

datasets
list[(str, AbstractDataset)]
valor predeterminado: None

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.

sample_input_dataset
AbstractDataset
valor predeterminado: None

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

sample_output_dataset
AbstractDataset
valor predeterminado: None

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

resource_configuration
ResourceConfiguration
valor predeterminado: None

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

kwargs
dict
Requerido

Parámetros opcionales.

Devoluciones

Modelo registrado.

Tipo de valor devuelto

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

tags
list
Requerido

Lista de etiquetas que se quitarán.

Devoluciones

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

snapshot_id
str
valor predeterminado: None

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

path
str
valor predeterminado: None

Ruta de acceso donde se guarda el archivo ZIP descargado.

Devoluciones

La ruta de acceso.

Tipo de valor devuelto

str

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

tags
dict[str] o str
Requerido

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

config
object
Requerido

Configuración que se va a enviar.

tags
dict
valor predeterminado: None

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

kwargs
dict
Requerido

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

Devoluciones

Objeto de ejecución.

Tipo de valor devuelto

Run

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

key
str
Requerido

Clave de etiqueta.

value
str
valor predeterminado: None

Valor opcional para la etiqueta.

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

file_or_folder_path
str
Requerido

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

Devoluciones

Devuelve el identificador de instantánea.

Tipo de valor devuelto

str

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

name
str
Requerido

Nombre del archivo que se cargará.

path_or_stream
str
Requerido

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

datastore_name
str
Requerido

Nombre opcional del almacén de datos

Tipo de valor devuelto

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

names
list
Requerido

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

paths
list
Requerido

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

return_artifacts
bool
Requerido

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

timeout_seconds
int
Requerido

Tiempo de espera para cargar archivos.

datastore_name
str
Requerido

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

name
str
Requerido

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

folder
str
Requerido

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

datastore_name
str
Requerido

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

show_output
bool
valor predeterminado: False

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

wait_post_processing
bool
valor predeterminado: False

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

raise_on_error
bool
valor predeterminado: True

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

Devoluciones

Objeto de estado.

Tipo de valor devuelto

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

Descripción de la ejecución.

Tipo de valor devuelto

str

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

Nombre para mostrar de la ejecución.

Tipo de valor devuelto

str

experiment

Se obtiene el experimento que contiene la ejecución.

Devoluciones

Recupera el experimento correspondiente a la ejecución.

Tipo de valor devuelto

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

Identificador de la ejecución.

Tipo de valor devuelto

str

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

Id. de ejecución.

Tipo de valor devuelto

str

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

Número de la ejecución.

Tipo de valor devuelto

int

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

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

Tipo de valor devuelto

Run

properties

Se devuelven las propiedades inmutables de esta ejecución.

Devoluciones

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

Tipo de valor devuelto

dict[str],
str

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

Etiquetas almacenadas en el objeto de ejecución.

Tipo de valor devuelto

type

Se obtiene el tipo de ejecución.

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

Devoluciones

Tipo de ejecución.

Tipo de valor devuelto

str