Se usó la API de Cloud Translation para traducir esta página.
Switch to English

tff.simulation.TransformingClientData

Ver código fuente en GitHub

Transforma los datos del cliente, lo que podría expandir añadiendo pseudo-clientes.

Hereda de: ClientData

Cada cliente de la raw_client_data se "expande" en cierto número de pseudo-clientes. Cada ID de cliente es una cadena que consiste en la ID de cliente original más un índice entero concatenado. Por ejemplo, el ID de cliente en bruto "Client_A" podría ampliarse en seudo-cliente identificadores de "client_a_0", "client_a_1" y "client_a_2". Una función fn (x) los mapas de puntos de datos x para un nuevo punto de datos, donde el constructor de fn está parametrizada por el client_id (en bruto) y el índice i. Por ejemplo, si x es una imagen, entonces make_transform_fn ( "Client_A", 0) (x) podría ser la identidad, mientras que make_transform_fn ( "Client_A", 1) (x) podría ser una rotación aleatoria de la imagen con el ángulo determinado por un hash de "Client_A" y "1". Típicamente, por convención, el índice 0 corresponde a la función identidad si se admite la identidad.

raw_client_data Un ClientData se expanda.
make_transform_fn Una función que devuelve un exigible que los mapas de puntos de datos X a un nuevo punto de datos x'. make_transform_fn será llamado como make_transform_fn (raw_client_id, i) donde i es un índice entero, y debe devolver una función fn (x) -> x. Por ejemplo, si x es una imagen, entonces make_transform_fn ( "Client_A", 0) (x) podría ser la identidad, mientras que make_transform_fn ( "Client_A", 1) (x) podría ser una rotación aleatoria de la imagen con el ángulo determinado por un hash de "Client_A" y "1". Si transform_fn_cons vuelve None , no se realiza ninguna transformación. Típicamente, por convención, el índice 0 corresponde a la función identidad si se admite la identidad.
num_transformed_clients El número total de clientes transformadas para producir. Si se trata de un múltiplo entero k del número de clientes reales, habrá exactamente k pseudo-clientes por cliente real, con índices 0 ... k-1. Cualquier resto g se genera a partir de los clientes reales primero g y se le dará índice k.

client_ids Una lista de los identificadores de cadena para los clientes en este conjunto de datos.
dataset_computation Un tff.Computation aceptar un ID de cliente, devolver un conjunto de datos.

ClientData implementaciones que no soportan dataset_computation debe levantar NotImplementedError si se accede a este atributo.

element_type_structure La información de tipo de elemento de los conjuntos de datos de clientes.

elementos devueltos por los conjuntos de datos en este ClientData objeto.

Métodos

create_tf_dataset_for_client

Ver fuente

Crea un nuevo tf.data.Dataset que contiene los ejemplos de entrenamiento cliente.

args
client_id La cadena client_id para el cliente desee.

Devoluciones
A tf.data.Dataset objeto.

create_tf_dataset_from_all_clients

Ver fuente

Crea un nuevo tf.data.Dataset que contiene todos los ejemplos de clientes.

Esta función está destinada para la formación uso centralizado, modelos no distribuidos (num_clients = 1). Esto puede ser útil como un punto de comparación contra modelos federados.

Actualmente, la aplicación produce un conjunto de datos que contiene todos los ejemplos de un único cliente con el fin, y arrastrando los pies por lo general adicional debe ser realizada.

args
seed Opcional, una semilla para determinar el orden en que se procesan los clientes en el conjunto de datos unido. La semilla puede ser cualquier número entero sin signo de 32 bits o una matriz de tales números enteros.

Devoluciones
A tf.data.Dataset objeto.

datasets

Ver fuente

Los rendimientos de la tf.data.Dataset para cada cliente en orden aleatorio.

Esta función está destinada para su uso la construcción de una matriz estática de los datos del cliente que debe proporcionarse a la computación federados de nivel superior.

args
limit_count Opcional, un número máximo de conjuntos de datos para regresar.
seed Opcional, una semilla para determinar el orden en que se procesan los clientes en el conjunto de datos unido. La semilla puede ser cualquier número entero sin signo de 32 bits o una matriz de tales números enteros.

from_clients_and_fn

Ver fuente

Construye un ClientData en base a la función dada.

args
client_ids Una lista no vacía de client_ids que son entradas válidas a la create_tf_dataset_for_client_fn.
create_tf_dataset_for_client_fn Una función que toma un client_id de la lista anterior, y devuelve un tf.data.Dataset .

Devoluciones
Un ClientData .

preprocess

Ver fuente

Aplica preprocess_fn a los datos de cada cliente.

train_test_client_split

Ver fuente

Devuelve un par de (tren, prueba) ClientData .

Este método particiones de los clientes de client_data en dos ClientData objetos con conjuntos disjuntos de ClientData.client_ids . Todos los clientes en la prueba ClientData están garantizados para tener conjuntos de datos que no estén vacíos, pero la formación ClientData pueden tener clientes sin datos.

args
client_data La base ClientData a Split.
num_test_clients ¿Cuántos clientes de resistir durante las pruebas. Esto puede ser en la mayoría de len (client_data.client_ids) - 1, ya que no queremos producir vacío ClientData .

Devoluciones
Un par (train_client_data, test_client_data), donde test_client_data ha num_test_clients seleccionado al azar, sujeto a la restricción de que cada uno tiene al menos 1 lote en su conjunto de datos.

aumentos
ValueError Si num_test_clients no pueden ser satistifed por client_data , o demasiados clientes tienen conjuntos de datos vacías.