Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
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.

<!--#include file="backend.dot"-->

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:

executor = eager_tf_executor.EagerTFExecutor() factory = executor_factory.create_executor_factory(lambda _: executor) context = execution_context.ExecutionContext( executor_fn=factory, compiler_fn=None) set_default_context.set_default_context(context)

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.