Compartilhar via


HyperDriveStep Classe

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

Para obter um exemplo de como usar o HyperDriveStep, consulte o bloco de anotações 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.

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 argumentos de linha de comando, defina esse valor de parâmetro como uma lista vazia.

Valor padrão: None
inputs

Uma lista de associaçõ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 reutilizar os resultados anteriores ao executar novamente com as mesmas configurações. A reutilização é habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), bem como entradas e parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizado. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer etapas subsequentes. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada se a definição do conjunto de dados foi alterada, não se os dados subjacentes foram alterados.

Valor padrão: True
version
str

Uma marca de versão opcional para indicar 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 argumentos de linha de comando, defina esse valor de parâmetro como uma lista vazia.

inputs
Obrigatório

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

outputs
Obrigatório

Uma lista de associaçõ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 reutilizar os resultados anteriores ao executar novamente com as mesmas configurações. A reutilização é habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), bem como entradas e parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizado. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer etapas subsequentes. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada se a definição do conjunto de dados foi alterada, não se os dados subjacentes foram alterados.

version
Obrigatório
str

versão

Comentários

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

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

A melhor prática para trabalhar com o HyperDriveStep é usar uma pasta separada para scripts e quaisquer arquivos dependentes associados à etapa e especificar essa pasta como o objeto do source_directoryavaliador. Por exemplo, consulte o source_directory parâmetro da TensorFlow classe. Fazer isso tem dois benefícios. Primeiro, ele ajuda a reduzir o tamanho do instantâneo criado para a etapa, pois somente o que é necessário para a etapa é instantâneo. Em segundo lugar, a saída da etapa de uma execução anterior poderá ser reutilizado se não houver alterações no source_directory que dispararia um novo upload do snaphot.

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

Crie um nó a partir da etapa do HyperDrive e adicione ao grafo especificado.

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

Crie um nó a partir da etapa do HyperDrive e adicione ao grafo especificado.

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.