Ausdrücke in Azure Machine Learning SDK und CLI v2

Im Azure Machine Learning SDK und in der CLI v2 können Sie Ausdrücke verwenden, wenn beim Erstellen eines Auftrags oder einer Komponente ein Wert möglicherweise nicht bekannt ist. Wenn Sie einen Auftrag übermitteln oder eine Komponente aufrufen, wird der Ausdruck ausgewertet und der Wert ersetzt.

Das Format für einen Ausdruck lautet ${{ <expression> }}. Einige Ausdrücke werden auf dem Client ausgewertet, wenn der Auftrag oder die Komponente übermittelt wird. Andere Ausdrücke werden auf dem Server ausgewertet (der Computeressource, auf dem der Auftrag oder die Komponente ausgeführt wird).

Clientausdrücke

Hinweis

Der „Client“, der den Ausdruck auswertet, ist der Ort, an dem der Auftrag übermittelt oder die Komponente ausgeführt wird. Dies kann zum Beispiel Ihr lokaler Computer oder eine Compute-Instanz sein.

Ausdruck Beschreibung Bereich
${{inputs.<input_name>}} Verweist auf eine Eingabedatenressource oder ein Modell. Funktioniert für alle Aufträge.
${{outputs.<output_name>}} Verweist auf eine Ausgabedatenressource oder ein Modell. Funktioniert für alle Aufträge.
${{search_space.<hyperparameter>}} Verweist auf die Hyperparameter, die in einem Sweepauftrag verwendet werden sollen. Die Hyperparameterwerte für jede Testversion werden basierend auf search_space ausgewählt. Nur Sweepaufträge.
${{parent.inputs.<input_name>}} Bindet die Eingaben eines untergeordneten Auftrags (Pipelineschritt) in einer Pipeline an die Eingaben des übergeordneten Pipelineauftrags oberster Ebene. Nur Pipelineaufträge.
${{parent.outputs.<output_name>}} Bindet die Ausgaben eines untergeordneten Auftrags (Pipelineschritt) in einer Pipeline an die Ausgaben des übergeordneten Pipelineauftrags oberster Ebene. Nur Pipelineaufträge.
${{parent.jobs.<step-name>.inputs.<input-name>}} Bindet die Eingaben an die Eingaben eines anderen Schritts in der Pipeline. Nur Pipelineaufträge.
${{parent.jobs.<step-name>.outputs.<output-name>}} Bindet die Ausgaben an die Ausgaben eines anderen Schritts in der Pipeline. Nur Pipelineaufträge.

Serverausdrücke

Wichtig

Die folgenden Ausdrücke werden auf der Serverseite aufgelöst, nicht auf der Clientseite. Bei geplanten Aufträgen, bei denen sich der Erstellungszeitpunkt und der Übermittlungszeitpunkt des Auftrags unterscheiden, werden die Ausdrücke bei Übermittlung des Auftrags aufgelöst. Da diese Ausdrücke serverseitig aufgelöst werden, verwenden sie den aktuellen Zustand des Arbeitsbereichs und nicht den Zustand des Arbeitsbereichs zum Zeitpunkt der Erstellung des geplanten Auftrags. Wenn Sie beispielsweise den Standarddatenspeicher des Arbeitsbereichs ändern, nachdem Sie einen geplanten Auftrag erstellt haben, wird der Ausdruck ${{default_datastore}} in den neuen Standarddatenspeicher aufgelöst, nicht in den Standarddatenspeicher zum Zeitpunkt der Auftragsplanung.

Ausdruck Beschreibung Bereich
${{default_datastore}} Wenn der Standarddatenspeicher der Pipeline konfiguriert ist, wird er als Standarddatenspeichername der Pipeline aufgelöst; andernfalls wird er als Standarddatenspeichername des Arbeitsbereichs aufgelöst.

Der Standarddatenspeicher der Pipeline kann mit pipeline_job.settings.default_datastore gesteuert werden.
Funktioniert für alle Aufträge.

Pipelineaufträge verfügen über einen konfigurierbaren Standarddatenspeicher der Pipeline.
${{name}} Der Auftragsname. Bei Pipelines ist dies der Name des Schrittauftrags, nicht der Name des Pipelineauftrags. Funktioniert für alle Aufträge
${{output_name}} Der Name der Auftragsausgabe Funktioniert für alle Aufträge

Wenn beispielsweise azureml://datastores/${{default_datastore}}/paths/${{name}}/${{output_name}} als Ausgabepfad verwendet wird, wird er zur Laufzeit in den Pfad azureml://datastores/workspaceblobstore/paths/<job-name>/model_path aufgelöst.

Nächste Schritte

Weitere Informationen zu diesen Ausdrücken finden Sie in den folgenden Artikeln und Beispielen: