Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

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.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 otwartych badań i eksperymentów z Federated Learning (FL) , podejściem do uczenia maszynowego, w którym wspólny model globalny jest szkolony przez wielu uczestniczących klientów, którzy przechowują dane szkoleniowe lokalnie. Na przykład FL był używany do trenowania modeli predykcyjnych dla klawiatur mobilnych bez przesyłania poufnych danych do pisania na serwery.

    TFF umożliwia programistom symulowanie dołączonych algorytmów uczenia federacyjnego na ich modelach i danych, a także eksperymentowanie z nowatorskimi algorytmami. Bloki konstrukcyjne dostarczane przez TFF mogą być również używane do implementowania obliczeń niezwiązanych z uczeniem się, takich jak zagregowana analiza danych zdecentralizowanych. Interfejsy TFF są zorganizowane w dwóch warstwach:

  • Ta warstwa oferuje zestaw interfejsów wysokiego poziomu, które umożliwiają programistom stosowanie dołączonych implementacji federacyjnego szkolenia 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 federacyjnych poprzez połączenie TensorFlow z operatorami komunikacji rozproszonej w ramach ściśle określonego środowiska programowania funkcjonalnego. Ta warstwa służy również jako podstawa, na której zbudowaliśmy Federated Learning.
  • TFF umożliwia programistom deklaratywne wyrażanie obliczeń federacyjnych, dzięki czemu można je wdrażać w różnych środowiskach wykonawczych. Do TFF dołączone jest środowisko uruchomieniowe symulacji jednej maszyny do eksperymentów. Odwiedź samouczki i wypróbuj sam!

    W przypadku pytań i pomocy można znaleźć nas w tagu federacyjnym tensorflow w witrynie StackOverflow.