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._RunBaseRun
Constructor
Run(experiment, run_id, outputs=None, **kwargs)
Parámetros
Nombre | Description |
---|---|
experiment
Requerido
|
Experimento que lo contiene. |
run_id
Requerido
|
Identificador de la ejecución. |
outputs
|
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
|
Identificador de la ejecución. |
outputs
Requerido
|
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:
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 alog_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 |
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 |
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 |
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:
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
|
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
|
Nombre opcional para la ejecución secundaria, que normalmente se especifica para una "parte". Valor predeterminado: None
|
run_id
|
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
|
Directorio de salidas opcionales para supervisar el elemento secundario. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
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
|
Número opcional de elementos secundarios que se crearán. Valor predeterminado: None
|
tag_key
|
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
|
Nombre del artefacto que se descargará. |
output_file_path
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
Nombre | Description |
---|---|
prefix
Requerido
|
Prefijo de ruta de acceso de archivo dentro del contenedor desde el que se descargan todos los artefactos. |
output_directory
Requerido
|
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
|
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
|
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
|
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
|
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 |
---|---|
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
|
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
|
Si se especifica, devuelve las ejecuciones que coinciden con el elemento "tag" especificado o {"tag": "value"}. Valor predeterminado: None
|
properties
|
Si se especifica, devuelve las ejecuciones que coinciden con el elemento "property" especificado o {"property": "value"}. Valor predeterminado: None
|
type
|
Si se especifica, devuelve las ejecuciones que coinciden con este tipo. Valor predeterminado: None
|
status
|
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 |
---|---|
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
|
El nombre de la métrica. Valor predeterminado: None
|
recursive
|
Indica si se debe repetir en todos los descendientes. Valor predeterminado: False
|
run_type
|
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
|
Nombre del secreto para el que se va a devolver un secreto. |
Devoluciones
Tipo | Description |
---|---|
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 |
---|---|
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 |
---|---|
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 |
---|---|
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
|
Si se especifica, devuelve las ejecuciones que coinciden con el tipo especificado. Valor predeterminado: None
|
tags
|
Si se especifica, devuelve las ejecuciones que coinciden con el elemento "tag" especificado o {"tag": "value"}. Valor predeterminado: None
|
properties
|
Si se especifica, devuelve las ejecuciones que coinciden con el elemento "property" especificado o {"property": "value"}. Valor predeterminado: None
|
status
|
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
|
Si se especifica, devuelve las ejecuciones que coinciden con el tipo especificado. Valor predeterminado: None
|
tags
|
Si se especifica, devuelve las ejecuciones que coinciden con el elemento "tag" especificado o {"tag": "value"}. Valor predeterminado: None
|
properties
|
Si se especifica, devuelve las ejecuciones que coinciden con el elemento "property" especificado o {"property": "value"}. Valor predeterminado: None
|
status
|
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
|
Nombre de la métrica. |
value
Requerido
|
Valor que se va a publicar en el servicio. |
description
Requerido
|
Descripción opcional de la métrica. |
step
|
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
|
Nombre de la tabla de precisión. |
value
Requerido
|
JSON que contiene las propiedades de nombre, versión y datos. |
description
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
Nombre | Description |
---|---|
name
Requerido
|
Nombre de la matriz de confusión. |
value
Requerido
|
JSON que contiene las propiedades de nombre, versión y datos. |
description
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
Nombre | Description |
---|---|
name
Requerido
|
El nombre de la métrica. |
path
Requerido
|
Ruta de acceso o secuencia de la imagen. |
plot
Requerido
|
<xref:matplotlib.pyplot>
Trazado que se registrará como imagen. |
description
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
Nombre | Description |
---|---|
name
Requerido
|
Nombre de la métrica. |
value
Requerido
|
Valores de la métrica. |
description
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
Nombre | Description |
---|---|
name
Requerido
|
Nombre de las predicciones. |
value
Requerido
|
JSON que contiene las propiedades de nombre, versión y datos. |
description
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
Nombre | Description |
---|---|
name
Requerido
|
Nombre de los valores residuales. |
value
Requerido
|
JSON que contiene las propiedades de nombre, versión y datos. |
description
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
Nombre | Description |
---|---|
name
Requerido
|
Nombre de la métrica. |
description
|
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
|
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
|
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
|
Nombre del modelo |
model_path
|
Ruta de acceso de nube relativa al modelo, por ejemplo, "outputs/modelname".
Cuando no se especifica (None), se usa 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
|
Marco del modelo que se registrará. Marcos admitidos actualmente: TensorFlow, ScikitLearn, Onnx, Custom, Multi Valor predeterminado: None
|
model_framework_version
|
Versión del marco del modelo registrado. Valor predeterminado: None
|
description
|
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
|
Identificador de instantánea que se restaurará. Si no se especifica, se usa la versión más reciente. Valor predeterminado: None
|
path
|
Ruta de acceso donde se guarda el archivo ZIP descargado. Valor predeterminado: None
|
Devoluciones
Tipo | Description |
---|---|
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
|
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 |
---|---|
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
|
Clave de etiqueta. |
value
|
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
|
Archivo o carpeta que contiene el código fuente de ejecución. |
Devoluciones
Tipo | Description |
---|---|
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
|
Nombre del archivo que se cargará. |
path_or_stream
Requerido
|
Ruta de acceso local relativa o secuencia del archivo que se cargará. |
datastore_name
Requerido
|
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
|
Tiempo de espera para cargar archivos. |
datastore_name
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
Nombre | Description |
---|---|
name
Requerido
|
Nombre de la carpeta de archivos que se va a cargar. |
folder
Requerido
|
Ruta de acceso local relativa de la carpeta que se cargará. |
datastore_name
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
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 |
---|---|
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 |
---|---|
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 |
---|---|
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 |
---|---|
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 |
---|---|
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 |
---|---|
Ejecución primaria o None si no se establece ninguna. |
properties
Se devuelven las propiedades inmutables de esta ejecución.
Devoluciones
Tipo | Description |
---|---|
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 |
---|---|
Tipo de ejecución. |