Azure / Azure/MachineLearningNotebooks

Misleading error message when using Pipeline Parameters with same name

Aberta
#1,807 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Jupyter Notebook
Estrelas
4.4k
Forks
2.6k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

I accidently provided the same parameter name for two different pipeline parameters used in different steps, what lead to the error message:

```
ValueError: PipelineDataset does not have a name.

> /anaconda/envs/azureml_py38/lib/python3.8/site-packages/azureml/pipeline/core/graph.py(4538)__str__()
4536 """
4537 if not self.name:
-> 4538 raise ValueError("PipelineDataset does not have a name.")
4539 return "$AZUREML_DATAREFERENCE_{0}".format(self.name)
4540
```

Sample code leading to the issue (assuming default_input_ds: TabularDataset, output_loc: PipelineData, run configs and computetarget are initialized)

```
input_ds_pipeline_param = PipelineParameter(
name="input_ds_param", default_value=default_input_ds
)

input_ds_consumption = DatasetConsumptionConfig(
"tabular_dataset", input_ds_pipeline_param
)

scoring_step = ParallelRunStep(
name="scoringstep",
inputs=[input_ds_consumption],
output=output_loc,
parallel_run_config=score_run_config,
allow_reuse=False,
)

destination_path = PipelineParameter(
name="input_ds_param",
default_value="samplepath/sampleoutput.parquet",
)

copying_step = PythonScriptStep(
name="scorecopystep",
script_name="scoring/parallel_batchscore_copyoutput.py",
source_directory="../aml_sourcedir",
arguments=["--output_path", output_loc, "--destination_path", destination_path],
inputs=[output_loc],
allow_reuse=False,
compute_target=aml_compute_score,
runconfig=copy_run_config,
)

Pipeline(workspace=ws, steps=[scoring_step, copying_step])

---
#### Document Details

⚠ *Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.*

* ID: 696d753e-ad1b-3e09-6756-425de691b1be
* Version Independent ID: 42ba9f58-3c4d-4cf7-1f89-1fea2a2efa62
* Content: [azureml.pipeline.core.graph module - Azure Machine Learning Python](https://docs.microsoft.com/en-us/python/api/azureml-pipeline-core/azureml.pipeline.core.graph?view=azure-ml-py)
* Content Source: [AzureML-Docset/stable/docs-ref-autogen/azureml-pipeline-core/azureml.pipeline.core.graph.yml](https://github.com/MicrosoftDocs/MachineLearning-Python-pr/blob/live/AzureML-Docset/stable/docs-ref-autogen/azureml-pipeline-core/azureml.pipeline.core.graph.yml)
* Service: **machine-learning**
* Sub-service: **core**
* GitHub Login: @DebFro
* Microsoft Alias: **debfro**

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Comece em azureml/pipeline/core/graph.py, próximo de __str__ na linha 4538, e reproduza o exemplo usando dois objetos PipelineParameter com o mesmo nome. Rastreie onde os nomes duplicados são tratados; estará concluído quando a colisão produzir um erro informativo identificando o parâmetro duplicado, em vez de “PipelineDataset does not have a name.”

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
machine-learning
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
30/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.