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
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
Uma marca de versão opcional para denotar 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 os 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 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
|
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. |