Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Expresiones en las plantillas de trabajo
Una plantilla de trabajo utiliza cadenas de {{ }} formato para insertar valores en los nombres de los trabajos, los comandos, los argumentos y los archivos incrustados. Con la EXPR extensión Open Job Description, el texto que {{ }} contiene es una expresión. Una expresión puede ser una referencia simple, por ejemplo{{Param., o puede calcular un valor mediante aritmética, comparaciones, Name}}else condicionalesif/, operaciones de cadena y ruta y comprensiones de listas. La sintaxis es un subconjunto de Python.
Las expresiones son el enlace entre los parámetros que envía un usuario y la línea de comandos que acepta una aplicación. Un requisito de memoria en GiB se convierte en el MiB que espera un requisito de host. Un parámetro de rango de fotogramas se convierte en argumentos de fotograma inicial y final. Un patrón de secuencia de archivos se convierte en el archivo del marco de la tarea. Una bandera aparece en la lista de argumentos solo cuando se establece un parámetro booleano. Las expresiones funcionan con todos los tipos de parámetros de trabajo, incluidos los tipos booleano, de lista y de rango de marcos que se describen en. Tipos de parámetros de trabajo Para obtener la especificación completa, consulte el lenguaje de expresiones Open Job Description
Los siguientes ejemplos muestran expresiones comunes. Cada una es una cadena de formato único en una plantilla de trabajo.
| Expression | ¿Qué hace? |
|---|---|
{{ Param.WorkerMemoryGiB * 1024 }} |
Convierte un requisito de memoria que un usuario introduce en GiB en el MiB que espera el requisito del amount.worker.memory host. |
{{ Param.InputSequence.with_number(Task.Param.Frame) }} |
Convierte un patrón de secuencia de archivos/data/timestep_####.h5, por ejemplo, o el primer archivo de la secuencia/data/timestep_0001.h5, en el archivo del marco de la tarea, en el marco /data/timestep_0072.h5 72. |
{{ 64 if Param.Precision == 'fp16' else 16 }} |
Elige un tamaño de lote en función de un parámetro de cadena con los valores permitidos. |
{{ '--gpu' if Param.UseGpu else null }} |
Agrega el --gpu argumento cuando un parámetro booleano es verdadero. Cuando la expresión se evalúa como null en una args lista, Deadline Cloud omite el argumento por completo. |
{{ repr_sh(Param.InputFile) }} |
Cita la ruta de un script bash para proteger los espacios y los caracteres especiales del nombre del archivo. |
{{ Param.Cameras.join(',') }} |
Une un LIST[STRING] parámetro, como las cámaras que se renderizarán en una escena, en una cadena separada por comas. |
Deadline Cloud comprueba las expresiones cuando envías el trabajo. Analiza todas las expresiones, comprueba que existe cada parámetro al que se hace referencia y compara las operaciones con los tipos de parámetros declarados. Un nombre de parámetro mal escrito o un método de cadena invocado en un entero no se envía con un mensaje que indica el error antes de que cualquier trabajador retome la tarea.
Las expresiones son deterministas e independientes. No hay funciones definidas por el usuario. Una expresión no puede leer archivos, acceder a la red ni inspeccionar variables de entorno, por lo que el comportamiento de una plantilla depende únicamente de los valores de sus parámetros.
La evaluación también tiene límites fijos en cuanto a la memoria y al número de operaciones. Estos límites son lo suficientemente grandes para la lógica de las plantillas e impiden que una plantilla consuma recursos ilimitados durante la creación de puestos de trabajo.
Una plantilla opta por las expresiones EXPR enumerándolas en su. extensions En una plantilla sin la extensión, solo {{ }} acepta una referencia de parámetro, como{{Param.Frames}}.
Para decidir si usar una expresión o un guion, considere a qué lugar pertenece la lógica. Una expresión es la opción correcta para unir los valores de los parámetros y una línea de comandos. Use una expresión para calcular un número, derivar una ruta, elegir entre dos valores o incluir o excluir un argumento. Si necesita inspeccionar el sistema de archivos, llamar a una aplicación o repetir los resultados con una lógica personalizada, incluya esa lógica en el guion del paso. El script aún puede recibir los resultados de las expresiones como argumentos.
Para obtener más información sobre las expresiones, consulte los temas siguientes:
-
Añada expresiones a una plantilla de trabajo— Habilita la extensión en una plantilla y escribe tus primeras expresiones.
-
Tipos de parámetros de trabajo— Busque todos los tipos de parámetros de trabajo, incluidos los tipos booleano, de lista y de rango de fotogramas que añade la
EXPRextensión. -
Referencia rápida de expresiones— Busque las variables, los operadores y las funciones disponibles en una expresión.