Google I/O to frajda! Nadrobić zaległości w sesjach TensorFlow Zobacz sesje

Federacja TensorFlow: uczenie maszynowe na zdecentralizowanych danych

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) to platforma typu open source do uczenia maszynowego i innych obliczeń na zdecentralizowanych danych. TFF został opracowany w celu ułatwienia otwartego badania i eksperymenty z Federacji Learning (FL) , podejście do uczenia maszynowego gdzie wspólny globalny model jest przeszkolony w wielu uczestniczących klientów, które utrzymują swoje dane treningowe lokalnie. Na przykład, Floryda został wykorzystany do pociągu modeli predykcyjnych dla klawiatur telefonów bez przesyłania poufnych danych typowania do serwerów.

    TFF umożliwia programistom symulowanie dołączonych algorytmów sfederowanego uczenia się na ich modelach i danych, a także eksperymentowanie z nowymi algorytmami. Naukowcy znajdzie punktów wyjściowych i kompletne przykłady wielu rodzajów badań. Budulcem świadczone przez TFF mogą być również wykorzystywane do realizacji obliczeń non-learningowych, takich jak federacyjnych analityki . Interfejsy TFF są zorganizowane w dwóch głównych warstwach:

  • Ta warstwa oferuje zestaw interfejsów wysokiego poziomu, które umożliwiają programistom stosowanie dołączonych implementacji szkolenia sfederowanego i oceny do istniejących modeli TensorFlow.
  • Rdzeniem systemu jest zestaw interfejsów niższego poziomu do zwięzłego wyrażania nowatorskich algorytmów sfederowanych poprzez połączenie TensorFlow z operatorami komunikacji rozproszonej w ramach silnie określonego funkcjonalnego środowiska programistycznego. Ta warstwa służy również jako fundament, na którym zbudowaliśmy federacyjną naukę.
  • TFF umożliwia programistom deklaratywne wyrażanie sfederowanych obliczeń, dzięki czemu można je wdrażać w różnych środowiskach wykonawczych. Dołączony do TFF jest wydajny runtime symulacyjny wielu maszyn do eksperymentów. Proszę odwiedzić tutoriale i wypróbować samemu!

    W przypadku pytań i wsparcie, znaleźć nas w tagu tensorflow-stowarzyszony na StackOverflow.