Azure / Azure/MachineLearningNotebooks

Misleading error message when using Pipeline Parameters with same name

Abierto
#1,807 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Jupyter Notebook
Estrellas
4.4k
Forks
2.6k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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**

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza en azureml/pipeline/core/graph.py, alrededor de __str__ en la línea 4538, y reproduce el ejemplo usando dos objetos PipelineParameter con el mismo nombre. Rastrea dónde se gestionan los nombres duplicados; se considera terminado cuando la colisión produce un error informativo que identifica el parámetro duplicado, en lugar de “PipelineDataset does not have a name.”

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
machine-learning
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.