Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/es-419/federated/design/backend.md
25118 views

Backend

[TOC]

Un backend es una estructura compuesta por un compilador y un tiempo de ejecución en un contexto usado para construir, compilar y ejecutar un AST. Es decir, un backend construye entornos que evalúan a un AST (árbol de sintaxis abstracta).

El paquete de los backend contiene varios backend que pueden extender el compilador de TFF o el tiempo de ejecución de TFF. Estas extensiones se pueden hallar en el backend correspondiente.

Si el tiempo de ejecución de un backend se implementa como pila de ejecución, entonces, el backend puede construir un ExecutionContext para proporcionarle a TFF un entorno en el cual se pueda evaluar un AST. En este caso, el backend se integra con TFF mediante la abstracción de alto nivel. Sin embargo, si el tiempo de ejecución no se implementa como una pila de ejecución, el backend necesitará construir un contexto y se integrará con TFF mediante la abstracción de bajo nivel.

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

Los nodos en azul son proporcionados por el core de TFF.

Los nodos verde, rojo, amarillo y morado son provistos por los backend nativo, mapreduce y de referencia respectivamente.

Los nodos líneas de rayas son provistos por un sistema externo.

Las flechas sólidas indican la relación y las flechas con líneas de rayas indican la herencia.

Nativo

El backend nativo está compuesto por el compilador y el tiempo de ejecución de TFF para compilar y ejecutar un AST de forma tal que sea razonablemente eficiente y posible de depurar.

Forma nativa

Una forma nativa es un AST que topológicamente está ordenado en un Grafo acíclico dirigido (DAG, por sus siglas en inglés) de valores intrínsecos de TFF con algunas optimizaciones en la dependencia de esos valores intrínsecos.

Compilador

La función compiler.transform_to_native_form compila un AST en una forma nativa.

Tiempo de ejecución

El backend nativo no contiene extensiones específicas para el tiempo de ejecución de TFF, en cambio, se puede usar directamente una pila de ejecución.

Contexto

Un contexto nativo es un ExecutionContext construido con un compilador (o no compilador) nativo y un tiempo de ejecución de TFF, por ejemplo:

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)

Sin embargo, hay algunas configuraciones comunes:

La función execution_context.set_sync_local_cpp_execution_context construye un ExecutionContext con un compilador nativo y una pila de ejecución local.

MapReduce

El backend mapreduce contiene las estructuras de datos y el compilador necesarios para construir una forma que se pueda ejecutar con tiempos de ejecución similares a los de MapReduce.

MapReduceForm

Una forms.MapReduceForm es una estructura de datos que define la representación de lógica que se puede ejecutar en tiempos de ejecución como los de MapReduce. Esta lógica está organizada como una colección de funciones de TensorFlow. Para más información sobre la naturaleza de estas funciones, consulte el módulo de formas.

Compilador

El módulo compilador contiene las transformaciones del bloque de construcción y de cálculos de TensorFlow necesarias para compilar un AST en una MapReduceForm.

El módulo form_utils contiene el compilador para el backend MapReduce y construye una forma MapReduceForm.

Tiempo de ejecución

TFF no proporciona ningún tiempo de ejecución de MapReduce. Debe proporcionarlo un sistema externo similar a MapReduce.

Contexto

TFF no proporciona ningún contexto de MapReduce.