Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

tff.simulation.TransformingClientData

Visualizza sorgente su GitHub

Trasforma i dati dei clienti, potenzialmente in espansione con l'aggiunta di pseudo-client.

Eredita da: ClientData

Ogni cliente della raw_client_data viene "espansa" in un certo numero di pseudo-clienti. Ciascun ID cliente è una stringa costituita dal ID client originale più un indice intero concatenato. Ad esempio, il client id greggio "client_a" potrebbe essere ampliata in pseudo-client ids "client_a_0", "client_a_1" e "client_a_2". Una funzione fn (x) mappa datapoint x in un punto dati, in cui il costruttore di fn è parametrizzato dal client_id (grezzo) e l'indice i. Ad esempio, se x è un'immagine, quindi make_transform_fn ( "client_a", 0) (x) potrebbe essere l'identità, mentre make_transform_fn ( "client_a", 1) (x) potrebbe essere una rotazione casuale dell'immagine con l'angolo determinato dal un hash di "client_a" e "1". Tipicamente per convenzione l'indice 0 corrisponde alla funzione identità se l'identità è supportato.

raw_client_data Un ClientData per espandere.
make_transform_fn Una funzione che restituisce un richiamabile che le mappe punto dati x per una nuova datapoint x'. make_transform_fn sarà chiamato come make_transform_fn (raw_client_id, i) dove i è un indice intero, e deve restituire una funzione fn (x) -> x. Ad esempio, se x è un'immagine, quindi make_transform_fn ( "client_a", 0) (x) potrebbe essere l'identità, mentre make_transform_fn ( "client_a", 1) (x) potrebbe essere una rotazione casuale dell'immagine con l'angolo determinato dal un hash di "client_a" e "1". Se transform_fn_cons restituisce None , nessuna trasformazione viene eseguita. Tipicamente per convenzione l'indice 0 corrisponde alla funzione identità se l'identità è supportato.
num_transformed_clients Il numero totale di clienti trasformati per produrre. Se è un intero k multiplo del numero di clienti reali, ci sarà esattamente k pseudo-client per cliente reale, con indici 0 ... k-1. Qualsiasi residuo g sarà generato dal primo g clienti reali e verrà dato indice k.

client_ids Un elenco di identificatori di stringa per i clienti in questo set di dati.
dataset_computation Un tff.Computation accettare un ID cliente, la restituzione di un insieme di dati.

ClientData implementazioni che non supportano dataset_computation dovrebbe sollevare NotImplementedError se questo attributo si accede.

element_type_structure Le informazioni sul tipo elemento del set di dati del cliente.

elementi restituiti da insiemi di dati in questo ClientData oggetto.

metodi

create_tf_dataset_for_client

Vedi la fonte

Crea un nuovo tf.data.Dataset contenente gli esempi di addestramento del cliente.

args
client_id La stringa client_id per il client desiderato.

ritorna
Un tf.data.Dataset oggetto.

create_tf_dataset_from_all_clients

Vedi la fonte

Crea un nuovo tf.data.Dataset contenente tutti gli esempi di client.

Questa funzione è destinato per l'addestramento all'uso centralizzata, modelli non distribuiti (num_clients = 1). Questo può essere utile come punto di confronto con modelli federati.

Attualmente, l'attuazione produce un insieme di dati contenente tutti gli esempi da un singolo cliente in ordine, e rimescolamento così generalmente aggiuntivo deve essere eseguita.

args
seed Opzionale, un seme per determinare l'ordine in cui i clienti sono trattati nel set di dati unito. Il seme può essere qualsiasi numero intero senza segno a 32 bit o un array di tali interi.

ritorna
Un tf.data.Dataset oggetto.

datasets

Vedi la fonte

Calcola la tf.data.Dataset per ogni cliente in ordine casuale.

Questa funzione è destinata all'uso costruire una matrice statica di dati client da fornire al calcolo federata di livello superiore.

args
limit_count Opzionale, un numero massimo di set di dati da restituire.
seed Opzionale, un seme per determinare l'ordine in cui i clienti sono trattati nel set di dati unito. Il seme può essere qualsiasi numero intero senza segno a 32 bit o un array di tali interi.

from_clients_and_fn

Vedi la fonte

Costruisce una ClientData in base alla funzione data.

args
client_ids Una lista non vuota di client_ids che sono ingressi validi al create_tf_dataset_for_client_fn.
create_tf_dataset_for_client_fn Una funzione che prende un client_id dalla lista qui sopra, e restituisce un tf.data.Dataset .

ritorna
A ClientData .

preprocess

Vedi la fonte

Applica preprocess_fn ai dati di ogni cliente.

train_test_client_split

Vedi la fonte

Restituisce una coppia di (treno, test) ClientData .

Questo metodo partizioni dei clienti di client_data in due ClientData oggetti con insiemi disgiunti di ClientData.client_ids . Tutti i clienti nel test ClientData sono garantiti per avere insiemi di dati non vuoti, ma la formazione ClientData possono avere clienti senza dati.

args
client_data La base ClientData a Spalato.
num_test_clients Quanti clienti di tenere fuori per il test. Questo può essere al massimo Len (client_data.client_ids) - 1, dal momento che non vogliamo produrre vuoto ClientData .

ritorna
Una coppia (train_client_data, test_client_data), dove test_client_data ha num_test_clients scelti a caso, il vincolo che hanno ciascuno almeno 1 lotto nel loro insieme di dati.

alza
ValueError Se num_test_clients non possono essere satistifed da client_data , o troppi clienti hanno set di dati vuote.