Посетите симпозиум «Женщины в машинном обучении» 7 декабря Зарегистрируйтесь сейчас
Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

TensorFlow Federated: машинное обучение на децентрализованных данных

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.algorithms.build_weighted_fed_avg(
  model_fn,
  client_optimizer_fn=lambda: tf.keras.optimizers.SGD(0.1))
state = trainer.initialize()
for _ in range(5):
  result = trainer.next(state, train_data)
  state = result.state
  metrics = result.metrics
  print(metrics['train']['loss'])
  • TensorFlow Federated (TFF) — это платформа с открытым исходным кодом для машинного обучения и других вычислений с децентрализованными данными. TFF был разработан для облегчения открытых исследований и экспериментов с федеративным обучением (FL) — подходом к машинному обучению, при котором общая глобальная модель обучается на множестве участвующих клиентов, которые хранят свои обучающие данные локально. Например, FL использовался для обучения моделей предсказания для мобильных клавиатур без загрузки конфиденциальных данных для ввода на серверы.

    TFF позволяет разработчикам моделировать встроенные алгоритмы федеративного обучения на своих моделях и данных, а также экспериментировать с новыми алгоритмами. Исследователи найдут отправные точки и полные примеры для многих видов исследований. Строительные блоки, предоставляемые TFF, также можно использовать для реализации вычислений, не связанных с обучением, таких как федеративная аналитика . Интерфейсы TFF организованы в два основных уровня:

  • Этот уровень предлагает набор интерфейсов высокого уровня, которые позволяют разработчикам применять включенные реализации федеративного обучения и оценки к их существующим моделям TensorFlow.
  • В основе системы лежит набор низкоуровневых интерфейсов для краткого выражения новых федеративных алгоритмов путем объединения TensorFlow с операторами распределенной связи в строго типизированной среде функционального программирования. Этот уровень также служит основой, на которой мы построили федеративное обучение.
  • TFF позволяет разработчикам декларативно выражать федеративные вычисления, чтобы их можно было развертывать в различных средах выполнения. В состав TFF входит высокопроизводительная среда выполнения моделирования для экспериментов на нескольких машинах. Пожалуйста, посетите учебники и попробуйте сами!

    Чтобы задать вопросы и получить поддержку, найдите нас по тегу tensorflow-federated на StackOverflow.