文章目录
项目介绍
使用联邦学习算法对 emnist 数据集进行分类。
首先要先明确一个知识点,就是修饰符 @tff.tf_computation 和 @tff.federated_computation 的区别:
- tensorflow_federated (TFF) 操作处理的是联邦值;
- 每个联邦值都有一个联邦类型,联邦类型包括联邦数据成员类型 (如 tf.float32) 和联邦数据部署位置 (如 tff.CLIENTS),另外,联邦类型还有一个属性 all_equal 查看客户端中的数据类型是否全部相同;
- 联邦值可以被移动(客户端–>服务端),这必须通过 @tff.federated_computation 和一个联邦类型完成;
- 传入 @tff.tf_computation 修饰符的参数类型只能是
SequenceType
,NamedTupleType
和TensorType
中的一种,从 @tff.tf_computation 修饰的函数的 type signatures 中只能看出数据成员类型的变化; - 传入 @tff.federated_computation 修饰符的参数类型可以带联邦数据部署位置,也可以只有数据成员类型;