Google I/O è un involucro! Recupera le sessioni di TensorFlow Visualizza le sessioni

TensorFlow Federated: Machine Learning su dati decentralizzati

import tensorflow as tf
import tensorflow_federated as tff

# Load simulation data.
source, _ = tff.simulation.datasets.emnist.load_data()
def client_data(n):
  return source.create_tf_dataset_for_client(source.client_ids[n]).map(
      lambda e: (tf.reshape(e['pixels'], [-1]), e['label'])
  ).repeat(10).batch(20)

# Pick a subset of client devices to participate in training.
train_data = [client_data(n) for n in range(3)]

# Wrap a Keras model for use with TFF.
def model_fn():
  model = tf.keras.models.Sequential([
      tf.keras.layers.Dense(10, tf.nn.softmax, input_shape=(784,),
                            kernel_initializer='zeros')
  ])
  return tff.learning.from_keras_model(
      model,
      input_spec=train_data[0].element_spec,
      loss=tf.keras.losses.SparseCategoricalCrossentropy(),
      metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])

# Simulate a few rounds of training with the selected client devices.
trainer = tff.learning.build_federated_averaging_process(
  model_fn,
  client_optimizer_fn=lambda: tf.keras.optimizers.SGD(0.1))
state = trainer.initialize()
for _ in range(5):
  state, metrics = trainer.next(state, train_data)
  print(metrics['train']['loss'])
  • TensorFlow Federated (TFF) è un framework open source per l'apprendimento automatico e altri calcoli su dati decentralizzati. TFF è stato sviluppato per facilitare la ricerca e la sperimentazione aperta con Federated Learning (FL) , un approccio all'apprendimento macchina in cui un modello globale condivisa è addestrato in molti i clienti che partecipano che mantengono a livello locale i dati di allenamento. Ad esempio, FL è stato utilizzato per il treno modelli di previsione per tastiere portatili senza caricare i dati di battitura sensibili ai server.

    TFF consente agli sviluppatori di simulare gli algoritmi di apprendimento federato inclusi sui loro modelli e dati, nonché di sperimentare nuovi algoritmi. I ricercatori potranno trovare spunti ed esempi completi per molti tipi di ricerca. I blocchi forniti da TFF possono anche essere utilizzati per implementare calcoli non apprendimento, come analisi federati . Le interfacce di TFF sono organizzate in due livelli principali:

  • Questo livello offre una serie di interfacce di alto livello che consentono agli sviluppatori di applicare le implementazioni incluse di formazione e valutazione federate ai modelli TensorFlow esistenti.
  • Al centro del sistema c'è un insieme di interfacce di livello inferiore per esprimere in modo conciso nuovi algoritmi federati combinando TensorFlow con operatori di comunicazione distribuiti all'interno di un ambiente di programmazione funzionale fortemente tipizzato. Questo livello funge anche da base su cui abbiamo costruito l'apprendimento federato.
  • TFF consente agli sviluppatori di esprimere in modo dichiarativo calcoli federati, in modo che possano essere implementati in diversi ambienti di runtime. Incluso con TFF è un runtime di simulazione multi-macchina ad alte prestazioni per gli esperimenti. Si prega di visitare i tutorial e provarlo voi stessi!

    Per domande e ricevere assistenza, trovare al tag tensorflow federato su StackOverflow.