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
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
Uma marca de versão opcional para indicar uma alteração na funcionalidade do módulo. Valor padrão: None
|
|
name
Obrigatório
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
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. |