Path: blob/master/site/pt-br/federated/design/backend.md
25118 views
Back-end
[TOC]
Um back-end é a composição de um compilador e um runtime em um contexto usado para construir, compilar e executar uma AST (árvore de sintaxe abstrata), ou seja, um back-end constrói ambientes que avaliam uma AST.
O pacote de back-ends contém back-ends que podem estender o compilador do TFF e/ou o runtime do TFF. Essas extensões são encontradas no back-end correspondente.
Se o runtime de um back-end for implementado como uma pilha de execução, então o back-end pode construir um ExecutionContext (contexto de execução) para fornecer ao TFF um ambiente para avaliar uma AST. Neste caso, o back-end se integra ao TFF usndo a abstração de alto nível. Porém, se o runtime não for implementado como uma pilha de execução, então o back-end precisará construir um contexto e se integará ao TFF usando a abstração de baixo nível.
Os nós azuis são fornecidos pelo core do TFF.
Os nós verdes, vermelhos, amarelos e roxos são fornecidos pelos back-ends native (nativo), mapreduce (redução do mapa) e reference (de referência), respectivamente.
Os nós tracejados são fornecidos por um sistema externo.
As setas sólidas indicam o relacionamento, e as setas tracejadas indicam a herança.
Native (Nativo)
O back-end native é composto pelo compilador do TFF e runtime do TFF para compilar e executar uma AST de uma forma que seja razoavelmente eficiente e que possa ser depurada.
Forma nativa
Uma forma nativa é uma AST que é ordenada topologicamente em um grafo acíclico dirigido (DAG, na sigla em inglês) ou intrínsecos do TFF com algumas otimizações da dependência desses intrínsecos.
Compilador
A função compiler.transform_to_native_form compila uma AST em uma forma nativa.
Runtime
O back-end nativo não contém extensões específicas de back-end do runtime do TFF. Em vez disso, uma pilha de execução pode ser usada diretamente.
Contexto
Um contexto nativo é um ExecutionContext (contexto de execução) construído com um compilador nativo (ou sem compilador) e o runtime do TFF. Por exemplo:
Porém, há algumas configurações comuns:
A função execution_context.set_sync_local_cpp_execution_context constrói um ExecutionContext
com um compilador nativo e uma pilha de execução local.
MapReduce
O back-end mapreduce (redução do mapa) contém as estruturas de dados e o compilador necessários para construir uma forma que possa ser executada em runtimes do tipo MapReduce.
MapReduceForm
Uma forms.MapReduceForm é uma estrutura de dados que define a representação da lógica que pode ser executada em runtimes do tipo MapReduce. Essa lógica é organizada como uma coleção de funções do TensorFlow. Confira mais informações sobre a natureza dessas funções no módulo forms (formas).
Compilador
O módulo compiler contém transformações de bloco de construção e computação do TensorFlow necessárias para compilar uma AST em uma MapReduceForm.
O módulo form_utils contém o compilador para o back-end MapReduce e constrói uma MapReduceForm.
Runtime
O runtime do MapReduce não é fornecido pelo TFF. Em vez disso, ele deve ser fornecido pelo sistema externo tipo MapReduce.
Contexto
O contexto do MapReduce não é fornecido pelo TFF.