编译器软件包中包含用于定义 AST 的 Python 表示形式的数据结构、核心转换函数和编译器相关功能。
AST
TFF 中的抽象语法树 (AST) 描述了联合计算的结构。
构建块
building_block.ComputationBuildingBlock 是 AST 的 Python 表示形式。
CompiledComputation
building_block.CompiledComputation 是表示将被委托至外部运行时的计算的 building_block.ComputationBuildingBlock。目前,TFF 仅支持 TensorFlow 计算,但可以扩展以支持由其他外部运行时执行的计算。
Computation
pb.Computation 是 AST 的 proto 或序列化表示形式。
TensorFlow 计算
表示将被委托至 TensorFlow 运行时的计算的 pb.Computation。
转换
转换可在应用一系列变更后为给定的 AST 构造新的 AST。转换可在构建块上运行,从而转换 AST 的 Python 表示形式;或在 TensorFlow 计算上运行,转换 tf.Graph
。
原子转换是一种将单一变更应用于给定输入(可以多次应用)的转换。
复合转换是一种将多项转换应用于给定输入以提供某些特征或断言的转换。
注:转换可以采用串行或并行模式,这意味着您可以构造一个复合转换,通过 AST 一次执行多项转换。但是,很难推算出转换的应用顺序以及这些转换的并行方式。因此,复合转换属于人工编制的转换,多数都较为脆弱。
tree_transformations 模块中包含原子构建块转换。
transformations 模块中包含复合构建块转换。
tensorflow_computation_transformations 模块中包含原子 TensorFlow 计算转换。
compiled_computation_transforms 模块中包含原子与复合编译计算转换。
transformation_utils 模块中包含由其他转换模块使用的函数、遍历逻辑和数据结构。
编译器
编译器是用于构造可执行表单的一系列转换的集合。