Compartilhar via


HyperDriveStep Classe

Cria uma etapa de Pipeline do Azure ML para executar o ajuste de hiperparâmetro para treinamento de modelo de Machine Learning.

Para obter um exemplo de uso do HyperDriveStep, consulte o notebook https://aka.ms/pl-hyperdrive.

Crie uma etapa do Pipeline do Azure ML para executar o ajuste de hiperparâmetro para treinamento de modelo do Machine Learning.

Herança
HyperDriveStep

Construtor

HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)

Parâmetros

Nome Description
name
Obrigatório
str

[Obrigatório] O nome da etapa.

hyperdrive_config
Obrigatório

[Obrigatório] Um HyperDriveConfig que define a configuração para a execução do HyperDrive.

estimator_entry_script_arguments

Uma lista de argumentos de linha de comando para o script de entrada do avaliador. Se o script de entrada do Avaliador não aceitar os argumentos de linha de comando, defina esse valor de parâmetro como uma lista vazia.

Valor padrão: None
inputs

Uma lista de vinculações de porta de entrada.

Valor padrão: None
outputs

Uma lista de associações de porta de saída

Valor padrão: None
metrics_output

Valor opcional que especifica o local para armazenar as métricas de execução do HyperDrive como um arquivo JSON.

Valor padrão: None
allow_reuse

Indica se a etapa deve ou não reutilizar os resultados anteriores quando executada novamente com as mesmas configurações. A reutilização está habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), as entradas e os parâmetros permanecerem inalterados, será reutilizada a saída da execução anterior dessa etapa. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior serão disponibilizados imediatamente para etapas posteriores. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada dependendo de ter havido ou não alteração da definição do conjunto de dados, não de ter havido alteração dos dados subjacentes.

Valor padrão: True
version
str

Uma marca de versão opcional para denotar uma alteração na funcionalidade do módulo.

Valor padrão: None
name
Obrigatório
str

[Obrigatório] O nome da etapa.

hyperdrive_config
Obrigatório

[Obrigatório] Um HyperDriveConfig que define a configuração para a execução do HyperDrive.

estimator_entry_script_arguments
Obrigatório

Uma lista de argumentos de linha de comando para o script de entrada do avaliador. Se o script de entrada do Avaliador não aceitar os argumentos de linha de comando, defina esse valor de parâmetro como uma lista vazia.

inputs
Obrigatório

Uma lista de vinculações de porta de entrada.

outputs
Obrigatório

Uma lista de vinculações de porta de saída.

metrics_output
Obrigatório

Um valor opcional que especifica o local para armazenar as métricas de execução do HyperDrive como um arquivo JSON.

allow_reuse
Obrigatório

Indica se a etapa deve ou não reutilizar os resultados anteriores quando executada novamente com as mesmas configurações. A reutilização está habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), as entradas e os parâmetros permanecerem inalterados, será reutilizada a saída da execução anterior dessa etapa. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior serão disponibilizados imediatamente para etapas posteriores. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada dependendo de ter havido ou não alteração na definição do conjunto de dados, não de ter havido alteração nos dados subjacentes.

version
Obrigatório
str

version

Comentários

Observe que os argumentos para o script de entrada usado no objeto avaliador (por exemplo, o objeto TensorFlow) devem ser especificados como lista usando o parâmetro estimator_entry_script_arguments ao instanciar um HyperDriveStep. O parâmetro avaliador script_params aceita um dicionário. No entanto, o parâmetro estimator_entry_script_argument espera argumentos como uma lista.

A inicialização do HyperDriveStep envolve a especificação de uma lista de objetos DataReference com o parâmetro inputs. No Azure ML Pipelines, uma etapa de pipeline pode usar a saída de outra etapa ou objetos DataReference como entrada. Portanto, ao criar um HyperDriveStep, os parâmetros inputs e outputs devem ser definidos explicitamente, o que substitui o parâmetro inputs especificado no objeto Avaliador.

A melhor prática para trabalhar com o HyperDriveStep é usar uma pasta separada para scripts e todos os arquivos dependentes associados à etapa, e especificar essa pasta como o objeto estimador source_directory. Por exemplo, confira o parâmetro source_directory da classe TensorFlow. Fazer isso traz dois benefícios. Primeiro, ajuda a reduzir o tamanho do instantâneo criado para a etapa porque apenas o que é necessário para a etapa é a captura de instantâneo. Segundo, a saída da etapa de uma execução anterior poderá ser reutilizada se não houver alterações no source_directory que disparariam um novo upload do instantâneo.

O exemplo a seguir mostra como usar o HyperDriveStep em um pipeline do Azure Machine Learning.


   metrics_output_name = 'metrics_output'
   metrics_data = PipelineData(name='metrics_data',
                               datastore=datastore,
                               pipeline_output_name=metrics_output_name,
                               training_output=TrainingOutput("Metrics"))

   model_output_name = 'model_output'
   saved_model = PipelineData(name='saved_model',
                               datastore=datastore,
                               pipeline_output_name=model_output_name,
                               training_output=TrainingOutput("Model",
                                                              model_file="outputs/model/saved_model.pb"))

   hd_step_name='hd_step01'
   hd_step = HyperDriveStep(
       name=hd_step_name,
       hyperdrive_config=hd_config,
       inputs=[data_folder],
       outputs=[metrics_data, saved_model])

O exemplo completo está disponível em https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb

Métodos

create_node

Cria um nó da etapa do HyperDrive e adiciona ao grafo fornecido.

Esse método não se destina a ser usado diretamente. Quando um pipeline é instanciado com essa etapa, o Azure ML passa automaticamente os parâmetros necessários por meio desse método para que essa etapa possa ser adicionada a um grafo de pipeline que representa o fluxo de trabalho.

create_node

Cria um nó da etapa do HyperDrive e adiciona ao grafo fornecido.

Esse método não se destina a ser usado diretamente. Quando um pipeline é instanciado com essa etapa, o Azure ML passa automaticamente os parâmetros necessários por meio desse método para que essa etapa possa ser adicionada a um grafo de pipeline que representa o fluxo de trabalho.

create_node(graph, default_datastore, context)

Parâmetros

Nome Description
graph
Obrigatório

O objeto de grafo ao qual adicionar o nó.

default_datastore
Obrigatório

O armazenamento de dados padrão.

context
Obrigatório
<xref:azureml.pipeline.core._GraphContext>

O contexto do grafo.

Retornos

Tipo Description

O nó criado.