Path: blob/master/site/pt-br/federated/design/compilation.md
25118 views
Compilação
[TOC]
O pacote compiler (compilador) contém as estruturas de dados que definem a representação do Python para a AST, funções de transformação do core e funcionalidade relacionada ao compilador.
AST
No TFF, uma árvore de sintaxe abstrata (AST) descreve a estrutura de uma computação federada.
Bloco de construção
Um building_block.ComputationBuildingBlock é a representação de uma AST do Python.
CompiledComputation
Uma building_block.CompiledComputation (computação compilada) é um building_block.ComputationBuildingBlock (bloco de construção de computação) que representa uma computação que será delegada a um runtime externo. No momento, o TFF tem suporte somente a computações do TensorFlow, mas poderá ser estendido para ter suporte a computações feitas por outros runtimes externos.
Computation
Uma pb.Computation (computação) é o Proto ou a representação serializada da AST.
Computação do TensorFlow
Uma pb.Computation representa uma computação que será delegada para o runtime do TensorFlow.
Transformação
Uma transformação constrói uma nova AST para uma determinada AST após aplicar uma coleção de mutações. As transformações podem operar em blocos de construção para transformar a representação da AST do Python ou podem operar em transformações do TensorFlow para transformar um tf.Graph
.
Uma transformação atômica aplica uma única mutação (possivelmente mais de uma vez) à entrada fornecida.
Uma transformação composta aplica várias transformações à entrada fornecida para oferecer algum recurso ou asserção.
Observação: as transformações podem ser compostas em série ou em paralelo, ou seja, você pode construir uma transformação composta que faça diversas transformações em um passo por uma AST. Porém, é difícil definir a ordem de aplicação das transformações e como essas transformações são paralelizadas; como resultado, as transformações compostas são feitas à mão, e a maioria é, de certa forma, frágil.
O módulo tree_transformations (transformações da árvore) contém transformações atômicas de building block (blocos de construção).
O módulo transformations (transformações) contém transformações compostas de building block (blocos de construção).
O módulo tensorflow_computation_transformations (transformações de computação do TensorFlow) contém transformações atômicas de computações do TensorFlow.
O módulo compiled_computation_transformations (transformações de computação compilada) contém transformações atômicas e compostas de computações compiladas.
O módulo transformation_utils (utilitários de transformações) contém funções, lógica transversal e estruturas de dados usadas por outros módulos de transformação.
Compilador
Um compilador é uma coleção de transformações que constroem uma forma que pode ser executada.