Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Ausdrücke in Jobvorlagen
Eine Jobvorlage verwendet {{ }} Formatzeichenfolgen, um Werte in Jobnamen, Befehle, Argumente und eingebettete Dateien einzufügen. Mit der EXPR Erweiterung zu Open Job Description ist der {{ }} darin enthaltene Text ein Ausdruck. Bei einem Ausdruck kann es sich um eine einfache Referenz handeln{{Param., z. B. um einen Wert durch Arithmetik, Vergleiche,Name}}if/else-Bedingungen, Zeichenketten- und Pfadoperationen und Listenverständnisse. Die Syntax ist eine Teilmenge von Python.
Ausdrücke sind das Bindeglied zwischen den Parametern, die ein Benutzer eingibt, und der Befehlszeile, die eine Anwendung akzeptiert. Eine Speicheranforderung in GiB wird zu der MiB, die eine Hostanforderung erwartet. Ein Frame-Bereichsparameter wird zu Start- und End-Frame-Argumenten. Ein Dateisequenzmuster wird zur Datei für den Frame der Aufgabe. Ein Flag erscheint in der Argumentliste nur, wenn ein boolescher Parameter gesetzt ist. Ausdrücke funktionieren mit allen Auftragsparametertypen, einschließlich der unter beschriebenen Typen vom Typ boolean, list und frame range. Typen von Jobparametern Die vollständige Spezifikation finden Sie in der Ausdruckssprache Open Job Description
Die folgenden Beispiele zeigen gebräuchliche Ausdrücke. Bei jedem handelt es sich um eine einzelne Formatzeichenfolge in einer Jobvorlage.
| Expression | Was macht es |
|---|---|
{{ Param.WorkerMemoryGiB * 1024 }} |
Konvertiert eine Speicheranforderung, die ein Benutzer in GiB eingibt, in die MiB, die die amount.worker.memory Hostanforderung erwartet. |
{{ Param.InputSequence.with_number(Task.Param.Frame) }} |
Verwandelt ein Dateisequenzmuster wie/data/timestep_####.h5, oder die erste Datei der Sequenz wie/data/timestep_0001.h5, in die Datei für den Frame der Aufgabe, /data/timestep_0072.h5 für Frame 72. |
{{ 64 if Param.Precision == 'fp16' else 16 }} |
Wählt eine Batchgröße auf der Grundlage eines Zeichenkettenparameters mit zulässigen Werten aus. |
{{ '--gpu' if Param.UseGpu else null }} |
Fügt das --gpu Argument hinzu, wenn ein boolescher Parameter wahr ist. Wenn der Ausdruck null in einer args Liste als Ergebnis ausgewertet wird, lässt Deadline Cloud das Argument vollständig weg. |
{{ repr_sh(Param.InputFile) }} |
Gibt einen Pfad für ein Bash-Skript an, sodass Leerzeichen und Sonderzeichen im Dateinamen sicher sind. |
{{ Param.Cameras.join(',') }} |
Verbindet einen LIST[STRING] Parameter, z. B. die Kameras, die in einer Szene gerendert werden sollen, zu einer durch Kommas getrennten Zeichenfolge. |
Deadline Cloud überprüft Ausdrücke, wenn Sie den Job einreichen. Es analysiert jeden Ausdruck, überprüft, ob jeder referenzierte Parameter existiert, und überprüft die Operationen anhand der deklarierten Parametertypen. Ein falsch geschriebener Parametername oder eine Zeichenkettenmethode, die für eine Ganzzahl aufgerufen wird, schlägt bei der Übermittlung fehl und es wird eine Meldung angezeigt, die auf den Fehler hinweist, bevor ein Worker eine Aufgabe übernimmt.
Ausdrücke sind deterministisch und in sich abgeschlossen. Es gibt keine benutzerdefinierten Funktionen. Ein Ausdruck kann keine Dateien lesen, das Netzwerk nicht erreichen oder Umgebungsvariablen überprüfen, sodass das Verhalten einer Vorlage nur von ihren Parameterwerten abhängt.
Die Auswertung hat auch feste Grenzen für den Speicher und die Anzahl der Operationen. Diese Grenzwerte sind groß genug für die Vorlagenlogik und verhindern, dass eine Vorlage bei der Erstellung von Jobs unbegrenzt viele Ressourcen verbraucht.
Eine Vorlage akzeptiert Ausdrücke, indem sie sie in ihrer Liste auflistetEXPR. extensions {{ }}Akzeptiert in einer Vorlage ohne die Erweiterung nur eine Parameterreferenz wie{{Param.Frames}}.
Um zu entscheiden, ob Sie einen Ausdruck oder ein Skript verwenden möchten, sollten Sie sich überlegen, wo die Logik hingehört. Ein Ausdruck ist die richtige Wahl, um Parameterwerte und eine Befehlszeile miteinander zu verbinden. Verwenden Sie einen Ausdruck, um eine Zahl zu berechnen, einen Pfad abzuleiten, zwischen zwei Werten zu wählen oder ein Argument ein- oder auszuschließen. Wenn Sie das Dateisystem untersuchen, eine Anwendung aufrufen oder mit benutzerdefinierter Logik über Ergebnisse iterieren müssen, fügen Sie diese Logik in das Skript des Schritts ein. Das Skript kann weiterhin Ausdrucksergebnisse als Argumente empfangen.
Weitere Informationen zu Ausdrücken finden Sie in den folgenden Themen:
-
Fügen Sie Ausdrücke zu einer Jobvorlage hinzu— Aktivieren Sie die Erweiterung in einer Vorlage und schreiben Sie Ihre ersten Ausdrücke.
-
Typen von Jobparametern— Suchen Sie nach allen Job-Parametertypen, einschließlich der Booleschen Typen, Listen- und Frame-Bereichstypen, die die
EXPRErweiterung hinzufügt. -
Kurzreferenz zu Expressions— Sucht nach den Variablen, Operatoren und Funktionen, die in einem Ausdruck verfügbar sind.