Path: blob/master/site/es-419/federated/design/compilation.md
25118 views
Compilación
[TOC]
El paquete compilador contiene estructuras de datos que definen la representación de Python del AST, las funciones esenciales de transformación y la funcionalidad relacionada del compilador.
AST
Con un árbol de sintaxis abstracta (AST) en TFF se describe la estructura de un cálculo federado.
Bloque de construcción
Un building_block.ComputationBuildingBlock es la representación en Python del AST.
CompiledComputation
Un building_block.CompiledComputation es un building_block.ComputationBuildingBlock que representa un cálculo que se delegará a un tiempo de ejecución externo. Actualmente, TFF solamente es compatible con cálculos de TensorFlow, pero se podría expandir para ser compatible con cálculos respaldados por otros tiempos de ejecución externos.
Computation
Un pb.Computation es la representación serializada o el prototipo del AST.
Cálculo de TensorFlow
Un pb.Computation que representa cálculos que se delegarán al tiempo de ejecución de TensorFlow.
Transformación
Una transformación construye un AST nuevo para un AST dado después de aplicar una colección de mutaciones. Las transformaciones pueden operar en bloques de construcción, a fin de transformar la representación Python del AST o en los cálculos de TensorFlow para transformar un tf.Graph
.
Una transformación atómica es una transformación que aplica una sola mutación (posiblemente, más de una vez) a una entrada dada.
Una transformación compuesta es la aplicación de múltiples transformaciones a la entrada dada, a fin de proporcionar alguna característica o afirmación.
Nota: Las transformaciones se pueden componer en serie o en paralelo, es decir, se puede construir una transformación compuesta que realice varias transformaciones en un pase a través de un AST. Sin embargo, el orden en que se apliquen esas transformaciones y el modo en que se paralelicen no es fácil de razonar. En consecuencia, las transformaciones compuestas se trabajan a mano y la mayoría son, en cierto modo, frágiles.
El módulo tree_transformations contiene transformaciones atómicas del bloque de construcción.
El módulo transformations contiene transformaciones compuestas del bloque de construcción.
El módulo tensorflow_computation_transformations contiene transformaciones atómicas del cálculo de TensorFlow.
El módulo compiled_computation_transformations contiene transformaciones atómicas y compuestas del cálculo compilado.
El módulo transformation_utils contiene funciones, lógica de recorrido (traversal) y estructuras de datos usadas por otros módulos de transformación.
Compilador
Un compilador es una colección de transformaciones que construyen una forma que se puede ejecutar.