Run Classe
Define a classe base para todas as execuções de experimento do Azure Machine Learning.
Uma execução representa uma única avaliação de um experimento. Execuções são usadas para monitorar a execução assíncrona de uma avaliação, registrar métricas e armazenar saída dessa avaliação, bem como analisar resultados e acessar artefatos gerados por ela.
Os objetos de execução são criados quando você envia um script para treinar um modelo em vários cenários diferentes no Azure Machine Learning, incluindo execuções de HyperDrive, execuções de Pipeline e execuções de AutoML. Um objeto de Execução também é criado quando você submit ou start_logging com a classe Experiment.
Para começar com experimentos e execuções, confira
Inicialize o objeto Run.
- Herança
-
azureml._run_impl.run_base._RunBaseRun
Construtor
Run(experiment, run_id, outputs=None, **kwargs)
Parâmetros
- _run_dto
- <xref:azureml._restclient.models.run_dto.RunDto>
Somente para uso interno.
Comentários
Uma execução representa uma única avaliação de um experimento. Um objeto de Execução é usado para monitorar a execução assíncrona de uma avaliação, registrar métricas e armazenar saída dessa avaliação, bem como analisar resultados e acessar artefatos gerados por ela.
A execução é usada dentro do código de experimentação para registrar métricas e artefatos no serviço de Histórico de Execuções.
A execução é usada fora de seus experimentos para monitorar o progresso e consultar e analisar as métricas e os resultados que foram gerados.
A funcionalidade da Execução inclui:
Armazenar e recuperar métricas e dados
Carregar e baixar arquivos
Usar marcas e a hierarquia de filhos para facilitar a pesquisa de execuções anteriores
Registrar arquivos de modelo armazenados como um modelo que pode ser operacionalizado
Armazenar, modificar e recuperar propriedades de uma execução
Carregar a execução atual de um ambiente remoto com o método get_context
Fazer instantâneo de forma eficiente de um arquivo ou diretório para reprodutibilidade
Essa classe funciona com o Experiment nestes cenários:
Criar uma execução executando o código usando submit
Criar uma execução interativamente em um notebook usando start_logging
Registrar métricas e carregar artefatos no experimento, como ao usar log
Ler métricas e baixar artefatos ao analisar resultados experimentais, como ao usar get_metrics
Para enviar uma execução, crie um objeto de configuração que descreva como o experimento é executado. Veja os seguintes exemplos dos diferentes objetos de configuração que você pode usar:
azureml.train.automl.automlconfig.AutoMLConfig
azureml.train.hyperdrive.HyperDriveConfig
azureml.pipeline.core.Pipeline
azureml.pipeline.core.PublishedPipeline
azureml.pipeline.core.PipelineEndpoint
As métricas a seguir podem ser adicionadas a uma execução durante o treinamento de um experimento.
Escalar
Registrar um valor numérico ou de cadeia de caracteres para a execução com o nome fornecido usando log. Registrar uma métrica em log para uma execução faz essa métrica ser armazenada no registro de execução no experimento. Você pode registrar em log a mesma métrica várias vezes dentro de uma execução, sendo o resultado considerado um vetor dessa métrica.
Exemplo:
run.log("accuracy", 0.95)
Lista
Registrar uma lista de valores para a execução com o nome fornecido usando log_list.
Exemplo:
run.log_list("accuracies", [0.6, 0.7, 0.87])
Linha
O uso de log_row cria uma métrica com várias colunas, conforme descrito em
kwargs
. Cada parâmetro nomeado gera uma coluna com o valor especificado.log_row
pode ser chamado uma vez para registrar em log uma tupla arbitrária ou várias vezes em loop para gerar uma tabela completa.Exemplo:
run.log_row("Y over X", x=1, y=0.4)
Tabela
Registrar um objeto de dicionário na execução com o nome fornecido usando log_table.
Exemplo:
run.log_table("Y over X", {"x":[1, 2, 3], "y":[0.6, 0.7, 0.89]})
Image
Faça logon uma imagem ao registro de execução. Use log_image para registrar um arquivo de imagem ou um gráfico matplotlib para a execução. Essas imagens serão visíveis e comparáveis no registro de execução.
Exemplo:
run.log_image("ROC", path)
Métodos
add_properties |
Adicionar propriedades imutáveis à execução. As marcas e propriedades (ambas dict[str, str]) diferem em sua imutabilidade. As propriedades são imutáveis e, portanto, criam um registro permanente para fins de auditoria. As marcas são mutáveis. Para obter mais informações sobre como trabalhar com marcas e propriedades, consulte Marcas e localizar execuções. |
add_type_provider |
Gancho de extensibilidade para tipos de Execução personalizados armazenados no Histórico de Execuções. |
cancel |
Marcar a execução como cancelada. Se houver um trabalho associado com um campo cancel_uri definido, termine esse trabalho também. |
child_run |
Criar uma execução filho. |
clean |
Remover os arquivos correspondentes para a execução atual no destino especificado na configuração de execução. |
complete |
Aguardar a fila de tarefas ser processada. Em seguida, a execução é marcada como concluída. Isso normalmente é usado em cenários de bloco de anotações interativo. |
create_children |
Criar uma ou várias execuções filho. |
download_file |
Baixar um arquivo associado do armazenamento. |
download_files |
Baixar arquivos de um determinado prefixo de armazenamento (nome da pasta) ou do contêiner inteiro se o prefixo não for especificado. |
fail |
Marcar a execução como falha. Se desejar, defina a propriedade de Erro da execução com uma mensagem ou exceção passada para |
flush |
Aguardar a fila de tarefas ser processada. |
get |
Obter a execução para este workspace com sua ID de execução. |
get_all_logs |
Baixar todos os logs para a execução em um diretório. |
get_children |
Obter todos os filhos para a execução atual selecionada por filtros especificados. |
get_context |
Retornar o contexto de serviço atual. Use este método para recuperar o contexto de serviço atual para registrar métricas em log e carregar arquivos. Se |
get_detailed_status |
Buscar o status mais recente da execução. Se o status da execução for "Queued", ele mostrará os detalhes. |
get_details |
Obter a definição, as informações de status, os arquivos de log atuais e outros detalhes da execução. |
get_details_with_logs |
Retornar o status de execução, incluindo o conteúdo do arquivo de log. |
get_environment |
Obter a definição de ambiente que foi usada por essa execução. |
get_file_names |
Listar os arquivos que são armazenados em associação com a execução. |
get_metrics |
Recuperar as métricas registradas para a execução. Se |
get_properties |
Buscar as propriedades mais recentes da execução do serviço. |
get_secret |
Obter o valor do segredo no contexto de uma execução. Obter o valor do segredo para o nome fornecido. O nome do segredo faz referência a um valor armazenado no Azure Key Vault associado ao workspace. Para obter um exemplo de como trabalhar com segredos, consulte Usar segredos em execuções de treinamento. |
get_secrets |
Obter os valores de segredos para uma determinada lista de nomes de segredos. Obter um dicionário de segredos encontrados e não encontrados para a lista de nomes fornecidos. Cada nome do segredo faz referência a um valor armazenado no Azure Key Vault associado ao workspace. Para obter um exemplo de como trabalhar com segredos, consulte Usar segredos em execuções de treinamento. |
get_snapshot_id |
Obter a ID do instantâneo mais recente. |
get_status |
Buscar o status mais recente da execução. Os valores comuns retornados incluem "Running", "Completed" e "Failed". |
get_submitted_run |
PRETERIDO. Use get_context. Obter a execução enviada para este experimento. |
get_tags |
Buscar o conjunto mais recente de marcas mutáveis na execução do serviço. |
list |
Obter uma lista de execuções em um experimento especificado por filtros opcionais. |
list_by_compute |
Obter uma lista de execuções em uma computação especificada por filtros opcionais. |
log |
Registre em log um valor de métrica para a execução com o nome fornecido. |
log_accuracy_table |
Registrar uma tabela de precisão no armazenamento de artefatos. A métrica de tabela de precisão é uma métrica multiuso não escalar que pode ser usada para produzir vários tipos de gráficos de linhas que variam continuamente no espaço de probabilidades previstas. Exemplos desses gráficos são ROC, recall de precisão e curvas de desempenho. O cálculo da tabela de precisão é semelhante ao cálculo de uma curva ROC. Uma curva ROC armazena taxas de verdadeiro positivo e taxas de falso positivo em muitos limites de probabilidade diferentes. A tabela de precisão armazena o número bruto de verdadeiros positivos, falsos positivos, verdadeiros negativos e falsos negativos em muitos limites de probabilidade. Há dois métodos usados para selecionar limites: "probabilidade" e "percentil". Eles diferem em como fazem a amostra do espaço de probabilidades previstas. Os limites de probabilidade são limites de espaço uniforme entre 0 e 1. Se NUM_POINTS for 5, os limites de probabilidade serão [0.0, 0.25, 0.5, 0.75, 1.0]. Os limites de percentil são espaçados de acordo com a distribuição das probabilidades previstas. Cada limite corresponde ao percentil dos dados em um limite de probabilidade. Por exemplo, se NUM_POINTS for 5, o primeiro limite será no 0º percentil, o segundo no 25º percentil, o terceiro no 50º e assim por diante. As tabelas de probabilidade e as tabelas de percentil são listas 3D em que a primeira dimensão representa o rótulo de classe; a segunda dimensão representa a amostra em um limite (escalas com NUM_POINTS); e a terceira dimensão sempre tem 4 valores: TP, FP, TN, FN e sempre nessa ordem. Os valores de confusão (TP, FP, TN, FN) são computados com a estratégia one vs. rest. Veja o link a seguir para obter mais detalhes: https://en.wikipedia.org/wiki/Multiclass_classification N = nº de exemplos no conjunto de dados de validação (200 no exemplo) M = nº de limites = nº de amostras retiradas do espaço de probabilidade (5 no exemplo) C = nº de classes no conjunto de dados completo (3 no exemplo) Algumas invariáveis da tabela de precisão:
Observação: M pode ser qualquer valor e controla a resolução dos gráficos Isso é independente do conjuntos de dados, é definido ao calcular métricas e compensa o espaço de armazenamento, o tempo de computação e a resolução. Os rótulos de classe devem ser cadeias de caracteres; valores de confusão devem ser inteiros; e os limites devem ser floats. |
log_confusion_matrix |
Registrar uma matriz de confusão no armazenamento de artefatos. Isso registra um wrapper em torno da matriz de confusão sklearn. Os dados de métrica contêm os rótulos de classe e uma lista 2D para a própria matriz. Confira o link a seguir para obter mais detalhes sobre como a métrica é computada: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html |
log_image |
Registre em log uma métrica de imagem para o registro de execução. |
log_list |
Registrar uma lista de valores de métrica para a execução com o nome fornecido. |
log_predictions |
Registrar previsões no armazenamento de artefatos. Isso registra uma pontuação de métrica que pode ser usada para comparar as distribuições de valores de destino verdadeiros com a distribuição de valores previstos para uma tarefa de regressão. As previsões são compartimentadas, e os desvios padrão são calculados para barras de erro em um gráfico de linhas. |
log_residuals |
Registrar resíduos no armazenamento de artefatos. Isso registra os dados necessários para exibir um histograma de resíduos para uma tarefa de regressão. Os resíduos são previstos – reais. Deve haver uma borda a mais do que o número de contagens. Consulte a documentação do histograma numpy para ver exemplos de uso de contagens e bordas para representar um histograma. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html |
log_row |
Registrar uma métrica de linha para a execução com o nome fornecido. |
log_table |
Registrar em log uma métrica de tabela para a execução com o nome fornecido. |
register_model |
Registrar um modelo para operacionalização. |
remove_tags |
Excluir a lista de marcas mutáveis nesta execução. |
restore_snapshot |
Restaurar um instantâneo como um arquivo ZIP. Retorna o caminho para o ZIP. |
set_tags |
Adicionar ou modificar um conjunto de marcas na execução. As marcas não passadas no dicionário são deixadas inalteradas. Você também pode adicionar marcações de cadeia de caracteres simples. Quando essas marcas aparecem no dicionário de marcas como chaves, elas têm um valor None. Para obter mais informações, consulte Marcas e localizar execuções. |
start |
Marcar a execução como iniciada. Normalmente, isso é usado em cenários avançados quando a execução foi criada por outro ator. |
submit_child |
Enviar um experimento e retornar a execução filho ativa. |
tag |
Marque a execução com uma chave de cadeia de caracteres e um valor de cadeia de caracteres opcional. |
take_snapshot |
Salvar um instantâneo da pasta ou do arquivo de entrada. |
upload_file |
Carregar um arquivo para o registro de execução. |
upload_files |
Carregar arquivos para o registro de execução. |
upload_folder |
Carregar a pasta especificada para o nome de prefixo fornecido. |
wait_for_completion |
Aguardar a conclusão desta execução. Retorna o objeto de status após a espera. |
add_properties
Adicionar propriedades imutáveis à execução.
As marcas e propriedades (ambas dict[str, str]) diferem em sua imutabilidade. As propriedades são imutáveis e, portanto, criam um registro permanente para fins de auditoria. As marcas são mutáveis. Para obter mais informações sobre como trabalhar com marcas e propriedades, consulte Marcas e localizar execuções.
add_properties(properties)
Parâmetros
add_type_provider
Gancho de extensibilidade para tipos de Execução personalizados armazenados no Histórico de Execuções.
static add_type_provider(runtype, run_factory)
Parâmetros
- runtype
- str
O valor de Run.type para o qual o alocador será invocado. Os exemplos incluem 'hyperdrive' ou 'azureml.scriptrun', mas podem ser estendidos com tipos personalizados.
- run_factory
- <xref:function>
Uma função com assinatura (Experiment, RunDto) -> Run a ser invocada quando a listagem é executada.
cancel
Marcar a execução como cancelada.
Se houver um trabalho associado com um campo cancel_uri definido, termine esse trabalho também.
cancel()
child_run
Criar uma execução filho.
child_run(name=None, run_id=None, outputs=None)
Parâmetros
- name
- str
Um nome opcional para a execução filho, normalmente especificada para uma "parte".
- run_id
- str
Uma ID de execução opcional para o filho, caso contrário, ela será gerada automaticamente. Normalmente, esse parâmetro não está definido.
Retornos
A execução filho.
Tipo de retorno
Comentários
Isso é usado para isolar parte de uma execução em uma subseção. Isso pode ser feito para "partes" identificáveis de uma execução que são interessantes para separar ou capturar métricas independentes em uma interação de um subprocesso.
Se um diretório de saída for definido para a execução filho, o conteúdo desse diretório será carregado para o registro da execução filho quando o filho for concluído.
clean
Remover os arquivos correspondentes para a execução atual no destino especificado na configuração de execução.
clean()
Retornos
Uma lista de arquivos excluídos.
Tipo de retorno
complete
Aguardar a fila de tarefas ser processada.
Em seguida, a execução é marcada como concluída. Isso normalmente é usado em cenários de bloco de anotações interativo.
complete(_set_status=True)
Parâmetros
- _set_status
- bool
Indica se o evento de status deve ser enviado para rastreamento.
create_children
Criar uma ou várias execuções filho.
create_children(count=None, tag_key=None, tag_values=None)
Parâmetros
- tag_key
- str
Uma chave opcional para preencher a entrada de Marcas em todos os filhos criados.
- tag_Values
Uma lista opcional de valores que serão mapeados para as Marcas [tag_key] na lista de execuções criadas.
- tag_values
Retornos
A lista de execuções filho.
Tipo de retorno
Comentários
O parâmetro count
OU os parâmetros tag_key
E tag_values
devem ser especificados.
download_file
Baixar um arquivo associado do armazenamento.
download_file(name, output_file_path=None, _validate_checksum=False)
Parâmetros
download_files
Baixar arquivos de um determinado prefixo de armazenamento (nome da pasta) ou do contêiner inteiro se o prefixo não for especificado.
download_files(prefix=None, output_directory=None, output_paths=None, batch_size=100, append_prefix=True, timeout_seconds=None)
Parâmetros
- output_directory
- str
Um diretório opcional que todos os caminhos de artefato usam como um prefixo.
- output_paths
- [str]
filepaths opcionais nos quais armazenar os artefatos baixados. Deve ser exclusivo e corresponder ao tamanho dos caminhos.
- append_prefix
- bool
Um sinalizador opcional para acrescentar o prefixo especificado do caminho do arquivo de saída final. Se for Falso, o prefixo será removido do caminho do arquivo de saída.
fail
Marcar a execução como falha.
Se desejar, defina a propriedade de Erro da execução com uma mensagem ou exceção passada para error_details
.
fail(error_details=None, error_code=None, _set_status=True)
Parâmetros
- _set_status
- bool
Indica se o evento de status deve ser enviado para rastreamento.
flush
Aguardar a fila de tarefas ser processada.
flush(timeout_seconds=300)
Parâmetros
- timeout_seconds
- int
Quanto tempo aguardar (em segundos) para que a fila de tarefas seja processada.
get
Obter a execução para este workspace com sua ID de execução.
static get(workspace, run_id)
Parâmetros
Retornos
A execução enviada.
Tipo de retorno
get_all_logs
Baixar todos os logs para a execução em um diretório.
get_all_logs(destination=None)
Parâmetros
- destination
- str
O caminho de destino para armazenar logs. Se não for especificado, um diretório chamado como ID de execução será criado no diretório do projeto.
Retornos
Uma lista de nomes de logs baixados.
Tipo de retorno
get_children
Obter todos os filhos para a execução atual selecionada por filtros especificados.
get_children(recursive=False, tags=None, properties=None, type=None, status=None, _rehydrate_runs=True)
Parâmetros
Se especificado, retorna execuções que correspondem a "tag" ou {"tag": "value"} especificado.
Se especificado, retorna execuções que correspondem a "property" ou {"property": "value"} especificado.
- status
- str
Se especificado, retorna execuções com o status especificado "status".
- _rehydrate_runs
- bool
Indica se deve criar uma instância de uma execução do tipo original ou da Execução base.
Retornos
Uma lista de objetos Run.
Tipo de retorno
get_context
Retornar o contexto de serviço atual.
Use este método para recuperar o contexto de serviço atual para registrar métricas em log e carregar arquivos. Se allow_offline
for True (o padrão), as ações em relação ao objeto de Execução serão impressas no padrão.
get_context(allow_offline=True, used_for_context_manager=False, **kwargs)
Parâmetros
- cls
Indica o método de classe.
- allow_offline
- bool
Permitir que o contexto de serviço volte ao modo offline para que o script de treinamento possa ser testado localmente sem enviar um trabalho com o SDK. True por padrão.
- used_for_context_manager
Retornos
A execução enviada.
Tipo de retorno
Comentários
Normalmente, esta função é usada para recuperar o objeto de Execução autenticado dentro de um script a ser enviado para execução por meio de experiment.submit(). Esse objeto de execução é um contexto autenticado para se comunicar com os serviços do Azure Machine Learning e um contêiner conceitual dentro do qual há métricas, arquivos (artefatos) e 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
Buscar o status mais recente da execução. Se o status da execução for "Queued", ele mostrará os detalhes.
get_detailed_status()
Retornos
O status e os detalhes mais recentes
Tipo de retorno
Comentários
status: o status atual da execução. Mesmo valor que o retornado de get_status().
details: as informações detalhadas do status atual.
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
Obter a definição, as informações de status, os arquivos de log atuais e outros detalhes da execução.
get_details()
Retornos
Retornar os detalhes da execução
Tipo de retorno
Comentários
O dicionário retornado contém os seguintes pares chave-valor:
runId: ID desta execução.
destino
status: o status atual da execução. Mesmo valor que o retornado de get_status().
startTimeUtc: hora UTC de quando essa execução foi iniciada, em ISO8601.
endTimeUtc: hora UTC de quando essa execução foi concluída (Concluída ou Falhou), em ISO8601.
Essa chave não existe caso a execução ainda esteja em andamento.
properties: pares chave-valor imutáveis associados à execução. As propriedades padrão incluem a ID de instantâneo da execução e as informações sobre o repositório git do qual a execução foi criada (se houver). Outras propriedades podem ser adicionadas a uma execução usando add_properties.
inputDatasets: conjuntos de dados de entrada associados à execução.
outputDatasets: conjuntos de dados de saída associados à execução.
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
Retornar o status de execução, incluindo o conteúdo do arquivo de log.
get_details_with_logs()
Retornos
Retorna o status da execução com o conteúdo do arquivo de log.
Tipo de retorno
get_environment
Obter a definição de ambiente que foi usada por essa execução.
get_environment()
Retornos
Retornar o objeto de ambiente.
Tipo de retorno
get_file_names
Listar os arquivos que são armazenados em associação com a execução.
get_file_names()
Retornos
A lista de caminhos para artefatos existentes
Tipo de retorno
get_metrics
Recuperar as métricas registradas para a execução.
Se recursive
for True (False por padrão), busque métricas para execuções na subárvore da execução especificada.
get_metrics(name=None, recursive=False, run_type=None, populate=False)
Parâmetros
- run_type
- str
- populate
- bool
Indica se deve buscar o conteúdo de dados externos vinculados à métrica.
Retornos
Um dicionário que contém as métricas de usuários.
Tipo de retorno
Comentários
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
Buscar as propriedades mais recentes da execução do serviço.
get_properties()
Retornos
As propriedades da execução.
Tipo de retorno
Comentários
As propriedades são informações imutáveis geradas pelo sistema, como duração, data de execução, usuário e propriedades personalizadas adicionadas com o add_properties método. Para obter mais informações, consulte Marcas e localizar execuções.
Ao enviar um trabalho para o Azure Machine Learning, se os arquivos de origem forem armazenados em um repositório git local, as informações sobre o repositório serão armazenadas como propriedades. Essas propriedades git são adicionadas ao criar uma execução ou chamar Experiment.submit. Para obter mais informações sobre as propriedades git, confira Integração de git para o Azure Machine Learning.
get_secret
Obter o valor do segredo no contexto de uma execução.
Obter o valor do segredo para o nome fornecido. O nome do segredo faz referência a um valor armazenado no Azure Key Vault associado ao workspace. Para obter um exemplo de como trabalhar com segredos, consulte Usar segredos em execuções de treinamento.
get_secret(name)
Parâmetros
Retornos
O valor do segredo.
Tipo de retorno
get_secrets
Obter os valores de segredos para uma determinada lista de nomes de segredos.
Obter um dicionário de segredos encontrados e não encontrados para a lista de nomes fornecidos. Cada nome do segredo faz referência a um valor armazenado no Azure Key Vault associado ao workspace. Para obter um exemplo de como trabalhar com segredos, consulte Usar segredos em execuções de treinamento.
get_secrets(secrets)
Parâmetros
Uma lista de nomes de segredos para os quais retornar valores secretos.
Retornos
Retorna um dicionário de segredos encontrados e não encontrados.
Tipo de retorno
get_snapshot_id
Obter a ID do instantâneo mais recente.
get_snapshot_id()
Retornos
A ID de instantâneo mais recente.
Tipo de retorno
get_status
Buscar o status mais recente da execução.
Os valores comuns retornados incluem "Running", "Completed" e "Failed".
get_status()
Retornos
O status mais recente.
Tipo de retorno
Comentários
NotStarted – É um estado temporário em que os objetos de Execução do lado do cliente estão presentes antes do envio para a nuvem.
Starting – A Execução começou a ser processada na nuvem. O chamador tem uma ID de execução neste ponto.
Provisioning – Retornado quando a computação sob demanda está sendo criada para um determinado envio de trabalho.
Preparing – O ambiente de execução está sendo preparado:
docker image build
conda environment setup
Queued – O trabalho é enfileirado no destino de computação. Por exemplo, em BatchAI, o trabalho está na fila
enquanto aguarda que todos os nós solicitados estejam prontos.
Running – O trabalho começou a ser executado no destino de computação.
Finalizing – O código do usuário foi concluído e a execução está nos estágios de pós-processamento.
CancelRequested – O cancelamento foi solicitado para o trabalho.
Completed – A execução foi concluída com sucesso. Isso inclui o código do usuário e a execução
estágios de pós-processamento.
Failed – A execução falhou. Normalmente, a propriedade de Erro em uma execução fornecerá detalhes sobre o motivo.
Canceled – Segue uma solicitação de cancelamento e indica que a execução foi cancelada com êxito.
NotResponding – Para execuções que têm Pulsações habilitadas, nenhuma pulsação foi enviada recentemente.
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
PRETERIDO. Use get_context.
Obter a execução enviada para este experimento.
get_submitted_run(**kwargs)
Retornos
A execução enviada.
Tipo de retorno
get_tags
Buscar o conjunto mais recente de marcas mutáveis na execução do serviço.
get_tags()
Retornos
As marcas armazenadas no objeto de execução.
Tipo de retorno
list
Obter uma lista de execuções em um experimento especificado por filtros opcionais.
static list(experiment, type=None, tags=None, properties=None, status=None, include_children=False, _rehydrate_runs=True)
Parâmetros
- type
- str
Se especificado, retorna execuções que correspondem ao tipo especificado.
Se especificado, retorna execuções que correspondem a "tag" ou {"tag": "value"} especificado.
Se especificado, retorna execuções que correspondem a "property" ou {"property": "value"} especificado.
- status
- str
Se especificado, retorna execuções com o status especificado "status".
- include_children
- bool
Se definido como true, busca todas as execuções, não apenas as de nível superior.
- _rehydrate_runs
- bool
Se definido como True (por padrão), usará o provedor registrado para recriar a instância de um objeto nesse tipo em vez da Execução base.
Retornos
Uma lista de execuções.
Tipo de retorno
Comentários
O exemplo de código a seguir mostra alguns usos do 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
Obter uma lista de execuções em uma computação especificada por filtros opcionais.
static list_by_compute(compute, type=None, tags=None, properties=None, status=None)
Parâmetros
- type
- str
Se especificado, retorna execuções que correspondem ao tipo especificado.
Se especificado, retorna execuções que correspondem a "tag" ou {"tag": "value"} especificado.
Se especificado, retorna execuções que correspondem a "property" ou {"property": "value"} especificado.
- status
- str
Se especificado, retorna execuções com o status especificado "status". Somente os valores permitidos são "Running" e "Queued".
Retornos
um gerador de ~_restclient.models.RunDto
Tipo de retorno
log
Registre em log um valor de métrica para a execução com o nome fornecido.
log(name, value, description='', step=None)
Parâmetros
- value
O valor a ser postado no serviço.
Comentários
Registrar uma métrica em log para uma execução faz essa métrica ser armazenada no registro de execução no experimento. Você pode registrar em log a mesma métrica várias vezes dentro de uma execução, sendo o resultado considerado um vetor dessa métrica. Se a etapa for especificada para uma métrica, deverá ser especificada para todos os valores.
log_accuracy_table
Registrar uma tabela de precisão no armazenamento de artefatos.
A métrica de tabela de precisão é uma métrica multiuso não escalar que pode ser usada para produzir vários tipos de gráficos de linhas que variam continuamente no espaço de probabilidades previstas. Exemplos desses gráficos são ROC, recall de precisão e curvas de desempenho.
O cálculo da tabela de precisão é semelhante ao cálculo de uma curva ROC. Uma curva ROC armazena taxas de verdadeiro positivo e taxas de falso positivo em muitos limites de probabilidade diferentes. A tabela de precisão armazena o número bruto de verdadeiros positivos, falsos positivos, verdadeiros negativos e falsos negativos em muitos limites de probabilidade.
Há dois métodos usados para selecionar limites: "probabilidade" e "percentil". Eles diferem em como fazem a amostra do espaço de probabilidades previstas.
Os limites de probabilidade são limites de espaço uniforme entre 0 e 1. Se NUM_POINTS for 5, os limites de probabilidade serão [0.0, 0.25, 0.5, 0.75, 1.0].
Os limites de percentil são espaçados de acordo com a distribuição das probabilidades previstas. Cada limite corresponde ao percentil dos dados em um limite de probabilidade. Por exemplo, se NUM_POINTS for 5, o primeiro limite será no 0º percentil, o segundo no 25º percentil, o terceiro no 50º e assim por diante.
As tabelas de probabilidade e as tabelas de percentil são listas 3D em que a primeira dimensão representa o rótulo de classe; a segunda dimensão representa a amostra em um limite (escalas com NUM_POINTS); e a terceira dimensão sempre tem 4 valores: TP, FP, TN, FN e sempre nessa ordem.
Os valores de confusão (TP, FP, TN, FN) são computados com a estratégia one vs. rest. Veja o link a seguir para obter mais detalhes: https://en.wikipedia.org/wiki/Multiclass_classification
N = nº de exemplos no conjunto de dados de validação (200 no exemplo) M = nº de limites = nº de amostras retiradas do espaço de probabilidade (5 no exemplo) C = nº de classes no conjunto de dados completo (3 no exemplo)
Algumas invariáveis da tabela de precisão:
- TP + FP + TN + FN = N para todos os limites para todas as classes
- TP + FN é o mesmo em todos os limites para qualquer classe
- TN + FP é o mesmo em todos os limites para qualquer classe
- As tabelas de probabilidade e tabelas de percentil têm forma [C, M, 4]
Observação: M pode ser qualquer valor e controla a resolução dos gráficos Isso é independente do conjuntos de dados, é definido ao calcular métricas e compensa o espaço de armazenamento, o tempo de computação e a resolução.
Os rótulos de classe devem ser cadeias de caracteres; valores de confusão devem ser inteiros; e os limites devem ser floats.
log_accuracy_table(name, value, description='')
Parâmetros
Comentários
Exemplo de um 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
Registrar uma matriz de confusão no armazenamento de artefatos.
Isso registra um wrapper em torno da matriz de confusão sklearn. Os dados de métrica contêm os rótulos de classe e uma lista 2D para a própria matriz. Confira o link a seguir para obter mais detalhes sobre como a métrica é computada: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
log_confusion_matrix(name, value, description='')
Parâmetros
Comentários
Exemplo de um 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
Registre em log uma métrica de imagem para o registro de execução.
log_image(name, path=None, plot=None, description='')
Parâmetros
- plot
- <xref:matplotlib.pyplot>
O gráfico a ser registrado como uma imagem.
Comentários
Use esse método para registrar um arquivo de imagem ou um gráfico matplotlib para a execução. Essas imagens serão visíveis e comparáveis no registro de execução.
log_list
Registrar uma lista de valores de métrica para a execução com o nome fornecido.
log_list(name, value, description='')
Parâmetros
log_predictions
Registrar previsões no armazenamento de artefatos.
Isso registra uma pontuação de métrica que pode ser usada para comparar as distribuições de valores de destino verdadeiros com a distribuição de valores previstos para uma tarefa de regressão.
As previsões são compartimentadas, e os desvios padrão são calculados para barras de erro em um gráfico de linhas.
log_predictions(name, value, description='')
Parâmetros
Comentários
Exemplo de um 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
Registrar resíduos no armazenamento de artefatos.
Isso registra os dados necessários para exibir um histograma de resíduos para uma tarefa de regressão. Os resíduos são previstos – reais.
Deve haver uma borda a mais do que o número de contagens. Consulte a documentação do histograma numpy para ver exemplos de uso de contagens e bordas para representar um histograma. https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html
log_residuals(name, value, description='')
Parâmetros
Comentários
Exemplo de um 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
Registrar uma métrica de linha para a execução com o nome fornecido.
log_row(name, description=None, **kwargs)
Parâmetros
Comentários
O uso de log_row
cria uma métrica de tabela com colunas, conforme descrito em kwargs. Cada parâmetro nomeado gera uma coluna com o valor especificado. log_row
pode ser chamado uma vez, para registrar uma tupla arbitrária, ou várias vezes em um loop, para gerar uma tabela 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
Registrar em log uma métrica de tabela para a execução com o nome fornecido.
log_table(name, value, description='')
Parâmetros
- value
- dict
O valor da tabela da métrica, um dicionário em que as chaves são colunas a serem postadas no serviço.
register_model
Registrar um modelo para operacionalização.
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_path
- str
O caminho de nuvem relativo para o modelo, por exemplo, "outputs/modelname".
Quando não especificado (None), model_name
é usado como o caminho.
Um dicionário de marcas de valor de chave para atribuir ao modelo.
Um dicionário de propriedades de valor de chave para atribuir ao modelo. Essas propriedades não podem ser alteradas após a criação do modelo; no entanto, novos pares de chave e valor podem ser adicionados.
- model_framework
- str
A estrutura do modelo a ser registrado. Estruturas compatíveis atualmente: TensorFlow, ScikitLearn, Onnx, Custom, Multi
- datasets
- list[(str, AbstractDataset)]
Uma lista de tuplas em que o primeiro elemento descreve a relação entre conjunto de dados e modelo, e o segundo elemento é o conjunto de dados.
- sample_input_dataset
- AbstractDataset
Opcional. Amostra de conjunto de dados de entrada para o modelo registrado
- sample_output_dataset
- AbstractDataset
Opcional. Amostra de conjunto de dados de saída para o modelo registrado
- resource_configuration
- ResourceConfiguration
Opcional. Configuração de recurso para executar o modelo registrado
Retornos
O modelo registrado.
Tipo de retorno
Comentários
model = best_run.register_model(model_name = 'best_model', model_path = 'outputs/model.pkl')
remove_tags
Excluir a lista de marcas mutáveis nesta execução.
remove_tags(tags)
Parâmetros
Retornos
As marcas armazenadas no objeto de execução
restore_snapshot
Restaurar um instantâneo como um arquivo ZIP. Retorna o caminho para o ZIP.
restore_snapshot(snapshot_id=None, path=None)
Parâmetros
- snapshot_id
- str
A ID de instantâneo a ser restaurada. A mais recente será usada se não for especificada.
Retornos
O caminho.
Tipo de retorno
set_tags
Adicionar ou modificar um conjunto de marcas na execução. As marcas não passadas no dicionário são deixadas inalteradas.
Você também pode adicionar marcações de cadeia de caracteres simples. Quando essas marcas aparecem no dicionário de marcas como chaves, elas têm um valor None. Para obter mais informações, consulte Marcas e localizar execuções.
set_tags(tags)
Parâmetros
start
Marcar a execução como iniciada.
Normalmente, isso é usado em cenários avançados quando a execução foi criada por outro ator.
start()
submit_child
Enviar um experimento e retornar a execução filho ativa.
submit_child(config, tags=None, **kwargs)
Parâmetros
- tags
- dict
Marcas a serem adicionadas à execução enviada, por exemplo, {"tag": "value"}.
Retornos
Um objeto de execução.
Tipo de retorno
Comentários
Submit é uma chamada assíncrona para a plataforma de Azure Machine Learning para executar uma avaliação em hardware local ou remoto. Dependendo da configuração, submit vai preparar automaticamente seus ambientes de execução, executar o código e capturar o código-fonte e os resultados no histórico de execuções do experimento.
Para enviar um experimento, crie um objeto de configuração que descreva como o experimento será executado. A configuração depende do tipo de avaliação necessária.
Um exemplo de como enviar um experimento filho do computador local usando ScriptRunConfig é o seguinte:
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 obter detalhes sobre como configurar uma execução, consulte submit.
tag
Marque a execução com uma chave de cadeia de caracteres e um valor de cadeia de caracteres opcional.
tag(key, value=None)
Parâmetros
Comentários
As marcas e as propriedades em uma execução são dicionários da cadeia de caracteres -> cadeia de caracteres. A diferença entre elas é a mutabilidade: as marcas podem ser definidas, atualizadas e excluídas enquanto as propriedades só podem ser adicionadas. Isso torna as propriedades mais apropriadas para gatilhos de comportamento relacionados ao sistema/fluxo de trabalho, enquanto as marcas geralmente são voltadas para o usuário e são significativas para os consumidores do 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
Salvar um instantâneo da pasta ou do arquivo de entrada.
take_snapshot(file_or_folder_path)
Parâmetros
Retornos
Retorna a ID do instantâneo.
Tipo de retorno
Comentários
Os instantâneos devem ser o código-fonte usado para executar a execução do experimento. Elas são armazenadas com a execução para que a avaliação de execução possa ser replicada no futuro.
Observação
Os instantâneos são feitos automaticamente quando submit é chamado. Normalmente, esse método take_snapshot só é necessário para execuções interativas (notebook).
upload_file
Carregar um arquivo para o registro de execução.
upload_file(name, path_or_stream, datastore_name=None)
Parâmetros
Tipo de retorno
Comentários
run = experiment.start_logging()
run.upload_file(name='important_file', path_or_stream="path/on/disk/file.txt")
Observação
Execuções de capturam automaticamente os arquivos no diretório de saída especificado, cujo padrão é ". /outputs" para a maioria dos tipos de execução. Use upload_file somente quando arquivos adicionais precisarem ser carregados ou um diretório de saída não for especificado.
upload_files
Carregar arquivos para o registro de execução.
upload_files(names, paths, return_artifacts=False, timeout_seconds=None, datastore_name=None)
Parâmetros
- names
- list
Os nomes dos arquivos a serem carregados. Se definidos, os caminhos também devem ser definidos.
- paths
- list
Os caminhos locais relativos para os arquivos a serem carregados. Se definidos, os nomes são necessários.
- return_artifacts
- bool
Indica que um objeto de artefato deve ser retornado para cada arquivo carregado.
Comentários
upload_files
tem o mesmo efeito que upload_file
em arquivos separados. No entanto, há benefícios de utilização de desempenho e de recursos ao usar o 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')
Observação
As execuções capturam automaticamente os arquivos no diretório de saída especificado, cujo padrão é "./outputs" para a maioria dos tipos de execução. Use upload_files somente quando arquivos adicionais precisarem ser carregados ou um diretório de saída não for especificado.
upload_folder
Carregar a pasta especificada para o nome de prefixo fornecido.
upload_folder(name, path, datastore_name=None)
Parâmetros
Comentários
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')
Observação
As execuções capturam automaticamente os arquivos no diretório de saída especificado, cujo padrão é "./outputs" para a maioria dos tipos de execução. Use upload_folder somente quando arquivos adicionais precisarem ser carregados ou um diretório de saída não for especificado.
wait_for_completion
Aguardar a conclusão desta execução. Retorna o objeto de status após a espera.
wait_for_completion(show_output=False, wait_post_processing=False, raise_on_error=True)
Parâmetros
- wait_post_processing
- bool
Indica se é necessário aguardar a conclusão do processamento da postagem após a conclusão da execução.
- raise_on_error
- bool
Indica se um Erro é gerado quando a Execução está em um estado de falha.
Retornos
O objeto de status.
Tipo de retorno
Atributos
description
Retorne a descrição da execução.
A descrição opcional da execução é uma cadeia de caracteres especificada pelo usuário, útil para descrever uma execução.
Retornos
A descrição da execução.
Tipo de retorno
display_name
Retorne o nome de exibição da execução.
O nome de exibição opcional da execução é uma cadeia de caracteres especificada pelo usuário que é útil para a identificação posterior da execução.
Retornos
O nome de exibição da execução.
Tipo de retorno
experiment
Obter o experimento que contém a execução.
Retornos
Recupera o experimento correspondente à execução.
Tipo de retorno
id
Obter a ID de execução.
A ID de execução é um identificador exclusivo no experimento que o contém.
Retornos
A ID de execução.
Tipo de retorno
name
PRETERIDO. Use display_name.
O nome opcional da execução é uma cadeia de caracteres especificada pelo usuário que é útil para a identificação posterior da execução.
Retornos
A ID de execução.
Tipo de retorno
number
Obter o número de execução.
Um número uniformemente crescente que representa a ordem das execuções em um experimento.
Retornos
O número de execução.
Tipo de retorno
parent
Busque a execução pai para essa execução no serviço.
As execuções podem ter um pai opcional, resultando em uma possível hierarquia de árvore de execuções. Para registrar métricas em uma execução pai, use o método log do objeto pai, por exemplo, run.parent.log()
.
Retornos
A execução pai ou None se não estiver definida.
Tipo de retorno
properties
Retornar as propriedades imutáveis desta execução.
Retornos
As propriedades armazenadas no cache local da execução.
Tipo de retorno
Comentários
As propriedades incluem informações imutáveis geradas pelo sistema, como duração, data de execução, usuário etc.
status
Retornar o status do objeto de execução.
tags
Retornar o conjunto de marcas mutáveis nesta execução.
Retornos
As marcas armazenadas no objeto de execução.
Tipo de retorno
type
Obter o tipo de execução.
Indica como a execução foi criada ou configurada.
Retornos
O tipo de execução.
Tipo de retorno
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de