Cette page a été traduite par l'API Cloud Translation.
Switch to English

tff.simulation.TransformingClientData

Voir la source sur GitHub

Transforme les données du client, l'expansion en ajoutant potentiellement pseudo-clients.

De: Hérite ClientData

Chaque client de l'raw_client_data est « élargi » dans un certain nombre de pseudo-clients. Chaque ID de client est une chaîne constituée de l'identifiant client original et un indice de nombre entier concaténé. Par exemple, l'identifiant client brut "de client_a" pourrait être étendue dans ids pseudo-client "client_a_0", "client_a_1" et "client_a_2". Une fonction fn (x) x cartes de point de données à un nouveau point de donnée, où le constructeur de fn est paramétré par la client_id (brut) et de l'indice i. Par exemple, si x est une image, puis make_transform_fn ( "client_a", 0) (x) peut être l'identité, tandis que make_transform_fn ( "client_a", 1) (x) peut être une rotation aléatoire de l'image avec l'angle déterminé par un hachage de « client_a » et « 1 ». Typiquement, par convention, l'indice 0 correspond à la fonction d'identité si l'identité est pris en charge.

raw_client_data Un ClientData de se développer.
make_transform_fn Une fonction qui renvoie une appelable que les cartes x à un point de données nouvelle x point de données. make_transform_fn sera appelé comme make_transform_fn (raw_client_id, i) où i est un indice entier, et doit renvoyer une fonction fn (x) -> x. Par exemple, si x est une image, puis make_transform_fn ( "client_a", 0) (x) peut être l'identité, tandis que make_transform_fn ( "client_a", 1) (x) peut être une rotation aléatoire de l'image avec l'angle déterminé par un hachage de « client_a » et « 1 ». Si le rendement de transform_fn_cons None , aucune transformation est effectuée. Typiquement, par convention, l'indice 0 correspond à la fonction d'identité si l'identité est pris en charge.
num_transformed_clients Le nombre total de clients transformées pour produire. Si elle est un multiple entier k du nombre de clients réels, il y aura exactement k pseudo-clients par client réel, avec des indices 0 ... k-1. Tout g reste sera généré à partir des premiers clients g réels et sera donné indice k.

client_ids Une liste d'identifiants de chaîne pour les clients dans cet ensemble de données.
dataset_computation Un tff.Computation accepter un identifiant client, renvoyant un ensemble de données.

ClientData implémentations qui ne prennent pas en charge dataset_computation devrait augmenter NotImplementedError si cet attribut est accessible.

element_type_structure Les informations de type d'élément des ensembles de données client.

des éléments renvoyés par les ensembles de données dans ce ClientData objet.

méthodes

create_tf_dataset_for_client

Voir la source

Crée une nouvelle tf.data.Dataset contenant les exemples de formation des clients.

args
client_id La chaîne client_id pour le client désiré.

Retour
Un tf.data.Dataset objet.

create_tf_dataset_from_all_clients

Voir la source

Crée une nouvelle tf.data.Dataset contenant tous les exemples de clients.

Cette fonction est destinée à la formation d'une utilisation centralisée, les modèles non distribués (num_clients = 1). Cela peut être utile comme point de comparaison par rapport aux modèles fédérés.

À l'heure actuelle, la mise en œuvre produit un ensemble de données qui contient tous les exemples d'un seul client dans l'ordre, et ainsi de brassage supplémentaire devrait généralement être réalisée.

args
seed En option, une graine pour déterminer l'ordre dans lequel les clients sont traitées dans l'ensemble de données jointes. La semence peut être un quelconque nombre entier non signé de 32 bits ou un réseau de tels nombres entiers.

Retour
Un tf.data.Dataset objet.

datasets

Voir la source

Donne le tf.data.Dataset pour chaque client dans un ordre aléatoire.

Cette fonction est destinée à être utilisée construction d'un tableau statique des données clients à fournir au niveau supérieur calcul fédérée.

args
limit_count En option, un nombre maximum d'ensembles de données pour revenir.
seed En option, une graine pour déterminer l'ordre dans lequel les clients sont traitées dans l'ensemble de données jointes. La semence peut être un quelconque nombre entier non signé de 32 bits ou un réseau de tels nombres entiers.

from_clients_and_fn

Voir la source

Trace un ClientData basé sur la fonction donnée.

args
client_ids Une liste non vide de client_ids qui sont entrées valides au create_tf_dataset_for_client_fn.
create_tf_dataset_for_client_fn Une fonction qui prend une client_id dans la liste ci - dessus, et renvoie un tf.data.Dataset .

Retour
Un ClientData .

preprocess

Voir la source

Applique preprocess_fn aux données de chaque client.

train_test_client_split

Voir la source

Renvoie une paire de (train, test) ClientData .

Cette méthode partitions les clients de client_data en deux ClientData objets avec des ensembles disjoints de ClientData.client_ids . Tous les clients dans le test ClientData sont garantis d'avoir des ensembles de données non vides, mais la formation ClientData peuvent avoir des clients sans données.

args
client_data La base ClientData à Split.
num_test_clients Combien de clients à tenir pour les tests. Cela peut être au plus len (client_data.client_ids) - 1, étant donné que nous ne voulons pas produire vide ClientData .

Retour
Une paire (train_client_data, test_client_data), où test_client_data a num_test_clients choisis au hasard, sous réserve de la contrainte qu'ils ont chacun au moins une charge dans leur ensemble de données.

relances
ValueError Si num_test_clients ne peuvent pas être satistifed par client_data , ou trop de clients ont des ensembles de données vides.