コンパイル

コンパイラパッケージには、AST、コア変換関数、およびコンパイラ関連の機能の Python 表現を定義するデータ構造が含まれます。

AST

TFF の抽象構文木(AST)は、連合コンピュテーションの構造を説明します。

ビルディングブロック

building_block.ComputationBuildingBlockAST の Python 表現です。

CompiledComputation

building_block.CompiledComputation は、外部ランタイムにデリゲートされる計算を表現する building_block.ComputationBuildingBlock です。現在 TFF は TensorFlow computations しかサポートしていませんが、ほかの外部ランタイムを使用することで、Computations をサポートするように拡張できる可能性があります。

Computation

pb.ComputationAST のプロトまたはシリアル化表現です。

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 モジュールには、他の変換モジュールが使用する関数、トラバーサルロジック、およびデータ構造が含まれます。

コンパイラ

コンパイラは、実行可能な形態を構築する変換のコレクションです。