预期用途
简言之,联邦核心(FC)是一个开发环境,它使得能够紧凑地表示将TensorFlow代码与分布式通信运算符(例如联邦平均中使用的运算符)组合在一起的程序逻辑-计算一组客户端上的分布式和、平均数和其他类型的分布式聚合系统中的设备,这些设备的广播模型和参数等。
您可能知道tf.contrib.distribute,这时自然要问一个问题:这个框架在哪些方面有所不同?毕竟,这两个框架都试图使tensorflow计算分布式。
一种思考的方式是,尽管tf.contrib.distribute的既定目标是允许用户使用现有的模型和训练代码,而只需对其进行最小的更改即可实现分布式训练,但重点在于如何利用分布式基础设施使现有的训练代码更有效,这也是tff联邦核心的目标。是为了让研究人员和实践者明确控制他们将在其系统中使用的分布式通信的特定模式。fc的重点是提供一种灵活的、可扩展的语言来表达分布式数据流算法,而不是提供一组具体的分布式训练功能。
tff的fc api的主要目标受众之一是研究人员和实践者,他们可能希望试验新的联合学习算法,并评估影响分布式系统中数据流编排方式的微妙设计选择的后果,但又不会被系统实现细节所困扰。fc api的抽象级别大致相当于研究出版物中描述联邦学习算法机制的伪代码,即系统中存在哪些数据以及如何转换这些数据,但不会降低到单个点对点网络消息交换的级别。
tff作为一个整体,其目标是数据分发的场景,并且必须保持这种场景,例如,出于隐私原因,并且在集中位置收集所有数据可能不是可行的选择。这意味着机器学习算法的实现需要增加显式控制的程度,与所有数据都可以在数据中心的集中位置累积的场景相比。
Before we start
联合数据
tff的一个显著特点是,它允许您在联邦数据上紧凑地表示基于tensorflow的计算。在本教程中,我们将使用联邦数据一词来指代分布系统中跨一组设备托管的数据项集合。例如,在移动设备上运行的应用程序可以收集数据并将其存储在本地,而无需上载到集中位置。或者,分布式传感器阵列可以在其位置收集和存储温度读数。
与上述示例中的联邦数据类似的联邦数据在tff中被视为一级公民,即它们可能显示为函数的参数和结果,并且它们具有类型。为了加强这个概念,我们将联邦数据集称为联邦值,或者称为联邦类型的值。
需要了解的重要一点是,我们正在将所有设备上的数据项的整个集合(例如,分布式阵列中所有传感器的整个集合温度读数)建模为单个联合值。
例如,下面是如何在tff中定义由一组客户机设备托管的联合float的类型。通过分布传感器阵列实现的温度读数集合可以建模为这种联邦类型的值。
来源:CSDN
作者:ItisNagatoYuki
链接:https://blog.csdn.net/qq_35899407/article/details/102482177