Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

tff.simulation.TransformingClientData

Quelltext anzeigen auf GitHub

Verwandelt Kundendaten, die Erweiterung möglicherweise durch pseudo-Kunden hinzufügen.

Erbt von ClientData

Jeder Kunde der raw_client_data wird „erweitert“ in eine bestimmte Anzahl von Pseudo-Kunden. Jede Client-ID ist eine Zeichenfolge der ursprünglichen Client-ID aus und ein verketteten ganzzahliger Index. Zum Beispiel könnte die rohe Client-ID "Client_A" erweitert werden, in pseudo-Client-IDs "client_a_0", "client_a_1" und "client_a_2". Eine Funktion fn (x) abbildet Datenpunkt zu einem neuen Datenpunkt x, wobei der Konstruktor von fn durch die (raw) client_id und Index i parametriert. wenn x ist zum Beispiel ein Bild, dann make_transform_fn ( „Client_A“, 0) (x) könnte die Identität sein, während make_transform_fn ( „Client_A“, 1) (x) eine zufällige Drehung des Bildes sein könnte, mit dem Winkel bestimmt, indem ein Hash "Client_A" und "1". Typischerweise durch Konvention Funktion des Index 0 entspricht die Identität, wenn die Identität unterstützt.

raw_client_data Ein Clientdata zu erweitern.
make_transform_fn Eine Funktion, dass die Renditen ein aufrufbare, dass die Karten-Datenpunkt zu einem neuen Datenpunkt x x‘. make_transform_fn wird als make_transform_fn genannt werden (raw_client_id, i), wobei i eine ganze Zahl Index, und sollte eine Funktion fn (x) return -> x. wenn x ist zum Beispiel ein Bild, dann make_transform_fn ( „Client_A“, 0) (x) könnte die Identität sein, während make_transform_fn ( „Client_A“, 1) (x) eine zufällige Drehung des Bildes sein könnte, mit dem Winkel bestimmt, indem ein Hash "Client_A" und "1". Wenn transform_fn_cons kehrt None , wird keine Transformation durchgeführt. Typischerweise durch Konvention Funktion des Index 0 entspricht die Identität, wenn die Identität unterstützt.
num_transformed_clients Die Gesamtzahl der transformierten Kunden zu produzieren. Wenn es ein ganzes Vielfaches k der Anzahl von realen Kunden ist, wird es genau k pseudo-Clients pro echte Client, mit den Indizes 0 ... k-1. Jeder Rest g wird aus den ersten g realen Kunden generiert werden und wird der Index k gegeben.

client_ids Eine Liste von String-Bezeichner für die Kunden in diesem Datensatz.
dataset_computation Ein tff.Computation Annahme einer Client - ID, einen Datensatz zurück.

ClientData Implementierungen , die nicht unterstützen dataset_computation sollte erhöhen NotImplementedError wenn dieses Attribut zugegriffen wird.

element_type_structure Der Elementtyp Information der Client-Datenmengen.

Elemente von Datensätzen in diesem ClientData Objekt.

Methods

create_tf_dataset_for_client

Quelltext anzeigen

Erstellt einen neuen tf.data.Dataset die Client - Trainingsbeispiele enthalten.

args
client_id Der String client_id für den gewünschten Client.

Kehrt zurück
Ein tf.data.Dataset Objekt.

create_tf_dataset_from_all_clients

Quelltext anzeigen

Erstellt einen neuen tf.data.Dataset alle Client - Beispiele enthält.

Diese Funktion ist für den Einsatz Ausbildung soll zentralisiert, nicht ausgeschüttete Modelle (num_clients = 1). Dies kann als ein Punkt des Vergleichs gegen föderierten Modelle nützlich sein.

Derzeit produziert die Implementierung eines Datensatzes, der alle Beispiele von einem einzigen Client enthält, um, und so im Allgemeinen zusätzliches Mischen durchgeführt werden sollte.

args
seed Optional, ein Samen, in welcher Reihenfolge Kunden verarbeitet werden, in dem verbundenen Datenmenge zu bestimmen. Der Samen kann jede 32-Bit-Ganzzahl oder eine Anordnung solcher ganzen Zahlen.

Kehrt zurück
Ein tf.data.Dataset Objekt.

datasets

Quelltext anzeigen

Ergibt die tf.data.Dataset für jeden Kunden in zufälliger Reihenfolge.

Diese Funktion ist für die Verwendung ein statisches Array von Client-Daten zum Aufbau der obersten Ebene Federated Berechnung zur Verfügung gestellt werden.

args
limit_count Auf Wunsch zurückzukehren eine maximale Anzahl von Datensätzen.
seed Optional, ein Samen, in welcher Reihenfolge Kunden verarbeitet werden, in dem verbundenen Datenmenge zu bestimmen. Der Samen kann jede 32-Bit-Ganzzahl oder eine Anordnung solcher ganzen Zahlen.

from_clients_and_fn

Quelltext anzeigen

Konstruiert einen ClientData auf der Grundlage der gegebenen Funktion.

args
client_ids Eine nicht-leere Liste von client_ids der gültigen Eingaben für die create_tf_dataset_for_client_fn sind.
create_tf_dataset_for_client_fn Eine Funktion , die eine client_id aus der obigen Liste nimmt und gibt eine tf.data.Dataset .

Kehrt zurück
Ein ClientData .

preprocess

Quelltext anzeigen

Gilt preprocess_fn auf jeden Kunden der Daten.

train_test_client_split

Quelltext anzeigen

Gibt ein Paar (Zug, Test) ClientData .

Diese Methode Partitionen der Kunden von client_data in zwei ClientData Objekte mit disjunkten Mengen von ClientData.client_ids . Alle Kunden in der ClientData sind garantiert nicht leere Datensätze haben, aber die Ausbildung ClientData haben kann Kunden ohne Daten.

args
client_data Die Basis ClientData aufzuspalten.
num_test_clients Wie viele Kunden zu halten für die Prüfung. Dies kann höchstens len (client_data.client_ids) - 1 liegen , da wir nicht wollen , leer produzieren ClientData .

Kehrt zurück
Ein Paar (train_client_data, test_client_data), wobei test_client_data hat num_test_clients dem Zufallsprinzip, unter der Nebenbedingung ausgewählt sie jeweils mindestens 1 Charge in ihrer Datenmenge.

Raises
ValueError Wenn num_test_clients nicht durch satistifed werden kann client_data oder zu viele Kunden haben leere Datensätze.