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

name
str
Obrigatório

[Obrigatório] O nome da etapa.

hyperdrive_config
HyperDriveConfig
Obrigatório

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

estimator_entry_script_arguments
list
valor padrão: None

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
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
valor padrão: None

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

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputAbstractDataset, OutputPortBinding]]
valor padrão: None

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

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
valor padrão: None

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

allow_reuse
bool
valor padrão: True

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.

version
str
valor padrão: None

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

name
str
Obrigatório

[Obrigatório] O nome da etapa.

hyperdrive_config
HyperDriveConfig
Obrigatório

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

estimator_entry_script_arguments
list
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
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Obrigatório

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

outputs
list[Union[PipelineData, PipelineOutputAbstractDataset, OutputPortBinding]]
Obrigatório

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

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
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
bool
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
str
Obrigatório

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

graph
Graph
Obrigatório

O objeto de grafo ao qual adicionar o nó.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Obrigatório

O armazenamento de dados padrão.

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

O contexto do grafo.

Retornos

O nó criado.

Tipo de retorno