As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Expressões em modelos de trabalho
Um modelo de trabalho usa cadeias de caracteres de {{ }} formato para inserir valores em nomes de tarefas, comandos, argumentos e arquivos incorporados. Com a EXPR extensão para Open Job Description, o texto dentro {{ }} é uma expressão. Uma expressão pode ser uma referência simples{{Param., como, ou pode computar um valor com aritmética, comparações,Name}}if/elsecondicionais, operações de string e caminho e compreensões de listas. A sintaxe é um subconjunto do Python.
As expressões são a cola entre os parâmetros que um usuário envia e a linha de comando que um aplicativo aceita. Um requisito de memória em GiB se torna o MiB que um requisito de host espera. Um parâmetro de intervalo de quadros se torna argumentos de início e fim do quadro. Um padrão de sequência de arquivos se torna o arquivo do quadro da tarefa. Um sinalizador aparece na lista de argumentos somente quando um parâmetro booleano é definido. As expressões funcionam com todos os tipos de parâmetros de trabalho, incluindo os tipos booleano, de lista e de intervalo de quadros descritos emTipos de parâmetros de Job. Para obter a especificação completa, consulte a linguagem de expressão Open Job Description
Os exemplos a seguir mostram expressões comuns. Cada uma é uma string de formato único em um modelo de trabalho.
| Expressão | O que ela faz |
|---|---|
{{ Param.WorkerMemoryGiB * 1024 }} |
Converte um requisito de memória que um usuário insere em GiB no MiB que amount.worker.memory o requisito do host espera. |
{{ Param.InputSequence.with_number(Task.Param.Frame) }} |
Transforma um padrão de sequência de arquivos/data/timestep_####.h5, como, ou o primeiro arquivo da sequência/data/timestep_0001.h5, como, no arquivo para o quadro da tarefa, /data/timestep_0072.h5 para o quadro 72. |
{{ 64 if Param.Precision == 'fp16' else 16 }} |
Escolhe um tamanho de lote com base em um parâmetro de string com valores permitidos. |
{{ '--gpu' if Param.UseGpu else null }} |
Adiciona o --gpu argumento quando um parâmetro booleano é verdadeiro. Quando a expressão é avaliada null em uma args lista, o Deadline Cloud omite totalmente o argumento. |
{{ repr_sh(Param.InputFile) }} |
Cita um caminho para um script bash para que espaços e caracteres especiais no nome do arquivo sejam seguros. |
{{ Param.Cameras.join(',') }} |
Une um LIST[STRING] parâmetro, como as câmeras a serem renderizadas em uma cena, em uma sequência de caracteres separada por vírgula. |
O Deadline Cloud verifica as expressões quando você envia o trabalho. Ele analisa todas as expressões, verifica se cada parâmetro referenciado existe e verifica o tipo das operações em relação aos tipos de parâmetros declarados. Um nome de parâmetro com ortografia incorreta ou um método de string chamado em um número inteiro falha no envio com uma mensagem que aponta para o erro, antes que qualquer trabalhador inicie uma tarefa.
As expressões são determinísticas e independentes. Não há funções definidas pelo usuário. Uma expressão não pode ler arquivos, acessar a rede ou inspecionar variáveis de ambiente, portanto, o comportamento de um modelo depende apenas dos valores dos parâmetros.
A avaliação também tem limites fixos na memória e no número de operações. Esses limites são grandes o suficiente para a lógica do modelo e impedem que um modelo consuma recursos ilimitados durante a criação do trabalho.
Um modelo aceita expressões listando EXPR em seuextensions. Em um modelo sem a extensão, {{ }} aceita somente uma referência de parâmetro, como{{Param.Frames}}.
Para decidir se deve usar uma expressão ou um script, considere onde a lógica pertence. Uma expressão é a escolha certa para colar valores de parâmetros e uma linha de comando. Use uma expressão para calcular um número, derivar um caminho, escolher entre dois valores ou incluir ou excluir um argumento. Se você precisar inspecionar o sistema de arquivos, chamar um aplicativo ou repetir os resultados com lógica personalizada, coloque essa lógica no script da etapa. O script ainda pode receber resultados de expressões como argumentos.
Para obter mais informações sobre expressões, consulte os seguintes tópicos:
-
Adicionar expressões a um modelo de trabalho— Ative a extensão em um modelo e escreva suas primeiras expressões.
-
Tipos de parâmetros de Job— pesquise cada tipo de parâmetro de trabalho, incluindo os tipos booleano, de lista e de intervalo de quadros que a
EXPRextensão adiciona. -
Referência rápida de expressões— Pesquise as variáveis, operadores e funções disponíveis em uma expressão.