此页面由 Cloud Translation API 翻译。
Switch to English

tff.simulation.TransformingClientData

GitHub上查看源代码

变换的客户数据,可能通过添加伪客户扩大。

继承: ClientData

在raw_client_data的每个客户端“扩展”到一定数量的伪客户。每个客户端ID是由原始客户端ID加上串接整数索引的字符串。例如,原始客户端ID“client_a”可能被扩展成伪客户端ID“client_a_0”,“client_a_1”和“client_a_2”。甲函数fn(x)的数据点映射x到一个新的数据点,其中,fn的构造是由(原始)的client_id和索引i参数化。例如,如果x是一个图像,则make_transform_fn(“client_a”,0)(x)的可能的身份,而make_transform_fn(“client_a”,1)(x)的可能是与角度确定由图像的随机旋转“client_a”和“1”的散列。通常通过常规的索引0对应于恒等函数,如果身份被支持。

raw_client_data 一个ClientData扩大。
make_transform_fn 一个函数返回Callable该地图数据点X到一个新的数据点X”。 make_transform_fn将被称为make_transform_fn(raw_client_id,I),其中i是整数索引,并且应该返回一个函数fn(x)的 - > X。例如,如果x是一个图像,则make_transform_fn(“client_a”,0)(x)的可能的身份,而make_transform_fn(“client_a”,1)(x)的可能是与角度确定由图像的随机旋转“client_a”和“1”的散列。如果transform_fn_cons回报None ,不进行任何改造。通常通过常规的索引0对应于恒等函数,如果身份被支持。
num_transformed_clients 转化客户的总数来生产。如果它是真实的客户端数量的K的整数倍,会有每个真正的客户恰好有k个伪客户,与指数0 ... K-1。任何剩余克将从第一克真实客户端生成并且将给出索引k。

client_ids 在此数据集的客户端串标识符的列表。
dataset_computation tff.Computation接受客户端ID,返回一个数据集。

ClientData实现不支持dataset_computation应该提高NotImplementedError如果这个属性被访问。

element_type_structure 客户端的数据集的元素类型信息。

由数据集在此返回的元素ClientData对象。

方法

create_tf_dataset_for_client

查看源代码

创建一个新的tf.data.Dataset包含客户培训例子。

ARGS
client_id 字符串CLIENT_ID所希望的客户。

返回
一个tf.data.Dataset对象。

create_tf_dataset_from_all_clients

查看源代码

创建一个新的tf.data.Dataset包含所有客户端的例子。

此功能适用于集中式,非分布式模型(NUM_CLIENTS = 1)使用方法的培训。这可以作为对联合模式的比较点有用的。

目前,实施产生包含为了从单一的客户端的所有实例的数据集,并应进行所以一般额外的洗牌。

ARGS
seed 可选的,一个种子,以确定哪些客户端在接合数据集中处理的顺序。所述种子可以是任何的32比特无符号整数或这些整数的数组。

返回
一个tf.data.Dataset对象。

datasets

查看源代码

收益率tf.data.Dataset在随机顺序每一个客户。

此功能是为使用构建客户端数据的一个静态数组要提供给顶层联合计算。

ARGS
limit_count 可选的,数据集的最大数量返回。
seed 可选的,一个种子,以确定哪些客户端在接合数据集中处理的顺序。所述种子可以是任何的32比特无符号整数或这些整数的数组。

from_clients_and_fn

查看源代码

构造一个ClientData基于给定的功能。

ARGS
client_ids client_ids这是有效输入create_tf_dataset_for_client_fn的非空列表。
create_tf_dataset_for_client_fn 一个函数,它从上面的列表中的CLIENT_ID,并返回一个tf.data.Dataset

返回
一个ClientData

preprocess

查看源代码

适用preprocess_fn每个客户的数据。

train_test_client_split

查看源代码

返回一对(火车,测试)的ClientData

这种方法分区的客户client_data分为两个ClientData不相交集的对象ClientData.client_ids 。在测试中的所有客户端ClientData保证具有非空的数据集,但训练ClientData可能有客户没有数据。

ARGS
client_data 基座ClientData到分裂。
num_test_clients 有多少客户持币观望的测试。这可能是最多LEN(client_data.client_ids) - 1,因为我们不希望产生空ClientData

返回
一对(train_client_data,test_client_data),其中已test_client_data num_test_clients中选择的随机,服从约束它们各自具有至少1批在其数据集。

加薪
ValueError 如果num_test_clients不能由satistifed client_data ,或太多客户有空数据集。