Path: blob/master/site/ko/federated/design/compilation.md
25118 views
컴파일
[TOC]
컴파일러 패키지에는 AST의 Python 표현, 핵심 transformation 함수 및 컴파일러 관련 기능을 정의하는 데이터 구조가 포함되어 있습니다.
AST
TFF의 추상 구문 트리(AST)는 페더레이션 계산의 구조를 설명합니다.
빌딩 블록
building_block.ComputationBuildingBlock은 AST의 Python 표현입니다.
CompiledComputation
building_block.CompiledComputation은 외부 런타임에 위임될 계산을 나타내는 building_block.ComputationBuildingBlock입니다. 현재 TFF는 TensorFlow 계산만 지원하지만, 다른 외부 런타임에서 지원하는 Computations을 지원하도록 확장할 수 있습니다.
Computation
pb.Computation은 AST의 Proto 또는 직렬화된 표현입니다.
TensorFlow 계산
TensorFlow 런타임에 위임될 Computations을 나타내는 pb.Computation입니다.
변환
변환(transformation)은 변경 모음을 적용한 후 주어진 AST의 새 AST를 구성합니다. 변환은 AST의 Python 표현을 변환하기 위해 빌딩 블록에서 작동하거나 tf.Graph
를 변환하기 위해 TensorFlow 계산에서 작동할 수 있습니다.
원자 변환은 주어진 입력에 단일 변경(가능하면 두 번 이상)를 적용하는 변환입니다.
복합 변환은 일부 특성 또는 어설션을 제공하기 위해 지정된 입력에 여러 변환을 적용하는 변환입니다.
참고: 변환은 직렬 또는 병렬로 구성될 수 있습니다. 즉, AST를 통해 한 번에 여러 변환을 수행하는 복합 변환을 구성할 수 있습니다. 그러나 변환을 적용하는 순서와 이들 변환이 병렬화되는 방식은 추론하기 어렵습니다. 결과적으로, 복합 변형은 수작업으로 이루어지며 대부분은 다소 취약합니다.
tree_transformations 모듈에는 원자 building block 변환이 포함됩니다.
transformations 모듈에는 복합 building block 변환이 포함되어 있습니다.
tensorflow_computation_transformations 모듈에는 원자 TensorFlow 계산 변환이 포함되어 있습니다.
compiled_computation_transformations 모듈에는 원자 및 복합 컴파일된 계산 변환이 포함되어 있습니다.
transformation_utils 모듈에는 다른 변환 모듈에서 사용하는 함수, 순회 논리 및 데이터 구조가 포함되어 있습니다.
컴파일러
컴파일러는 실행할 수 있는 양식을 구성하는 transformations 모음입니다.