コンパイラパッケージには、AST、コア変換関数、およびコンパイラ関連の機能の Python 表現を定義するデータ構造が含まれます。
AST
TFF の抽象構文木(AST)は、連合コンピュテーションの構造を説明します。
ビルディングブロック
building_block.ComputationBuildingBlock は AST の Python 表現です。
CompiledComputation
building_block.CompiledComputation は、外部ランタイムにデリゲートされる計算を表現する building_block.ComputationBuildingBlock です。現在 TFF は TensorFlow computations しかサポートしていませんが、ほかの外部ランタイムを使用することで、Computations をサポートするように拡張できる可能性があります。
Computation
pb.Computation は AST のプロトまたはシリアル化表現です。
TensorFlow Computation
TensorFlow ランタイムにデリゲートされる Computations を表現する pb.Computation です。
変換
変換は、一連のミューテーションを適用した後に、特定の AST に新しい AST を構築します。変換は、AST の Python 表現を変換する場合はビルディングブロックに対して、または tf.Graph
を変換する場合は TensorFlow computations で動作できます。
アトミック変換は、特定の入力に単一のミューテーションを(おそらく何度も)適用する変換を指します。
複合変換は、特徴量またはアサーションを提供するために、特定の入力に複数の変換を適用する変換です。
注意: 変換は、シリアルまたはパラレルで構成できます。つまり、AST を 1 回通過するだけで複数の変換を実行する複合変換を構築できます。ただし、変換を適用する順序と、それらの変換がどのように並列化されるかについては、根拠づけることが困難です。そのため、複合変換は手動で作成する必要があり、ほとんどがあまり堅牢ではありません。
tree_transformations モジュールには、アトミックビルディングブロック変換が含まれます。
transformations モジュールには、複合ビルディングブロック変換が含まれます。
tensorflow_computation_transformations モジュールには、アトミック TensorFlow computation 変換が含まれます。
compiled_computation_transformations モジュールには、アトミックと複合の Compiled Computation 変換が含まれます。
transformation_utils モジュールには、他の変換モジュールが使用する関数、トラバーサルロジック、およびデータ構造が含まれます。
コンパイラ
コンパイラは、実行可能な形態を構築する変換のコレクションです。