本頁面由 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 ,或太多客戶有空數據集。