TensorFlow Federated: Merkezi Olmayan Veriler Üzerinde Makine Öğrenimi,TensorFlow Federated: Merkezi Olmayan Veriler Üzerinde Makine Öğrenimi

import collections
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.
keras_model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(
    10, tf.nn.softmax, input_shape=(784,), kernel_initializer='zeros')
])
tff_model = tff.learning.models.functional_model_from_keras(
      keras_model,
      loss_fn=tf.keras.losses.SparseCategoricalCrossentropy(),
      input_spec=train_data[0].element_spec,
      metrics_constructor=collections.OrderedDict(
        accuracy=tf.keras.metrics.SparseCategoricalAccuracy))

# Simulate a few rounds of training with the selected client devices.
trainer = tff.learning.algorithms.build_weighted_fed_avg(
  tff_model,
  client_optimizer_fn=tff.learning.optimizers.build_sgdm(learning_rate=0.1))
state = trainer.initialize()
for _ in range(5):
  result = trainer.next(state, train_data)
  state = result.state
  metrics = result.metrics
  print(metrics['client_work']['train']['accuracy'])
  • TensorFlow Federated (TFF), merkezi olmayan veriler üzerinde makine öğrenimi ve diğer hesaplamalar için açık kaynaklı bir çerçevedir. TFF, eğitim verilerini yerel olarak tutan birçok katılımcı müşteri arasında paylaşılan bir küresel modelin eğitildiği bir makine öğrenimi yaklaşımı olan Federated Learning (FL) ile açık araştırma ve deneyi kolaylaştırmak için geliştirilmiştir. Örneğin, FL, sunuculara hassas yazma verileri yüklemeden mobil klavyeler için tahmin modellerini eğitmek için kullanılmıştır.

    TFF, geliştiricilerin modellerinde ve verilerinde dahil edilen birleşik öğrenme algoritmalarını simüle etmelerinin yanı sıra yeni algoritmalarla denemeler yapmalarını sağlar. Araştırmacılar, birçok araştırma türü için başlangıç ​​noktaları ve eksiksiz örnekler bulacaktır. TFF tarafından sağlanan yapı taşları, birleşik analitik gibi öğrenme dışı hesaplamaları uygulamak için de kullanılabilir. TFF'nin arayüzleri iki ana katmanda düzenlenmiştir:

  • Bu katman, geliştiricilerin birleşik eğitim ve değerlendirmenin dahil edilen uygulamalarını mevcut TensorFlow modellerine uygulamalarına olanak tanıyan bir dizi üst düzey arayüz sunar. Bu katman, geliştiricilerin birleşik eğitim ve değerlendirmenin dahil edilen uygulamalarını mevcut TensorFlow modellerine uygulamalarına olanak tanıyan bir dizi üst düzey arayüz sunar.
  • Sistemin merkezinde, TensorFlow'u güçlü bir şekilde yazılmış işlevsel programlama ortamında dağıtılmış iletişim operatörleriyle birleştirerek yeni birleşik algoritmaları kısaca ifade etmek için bir dizi alt düzey arayüz bulunur. Bu katman aynı zamanda Birleşik Öğrenim'i üzerine kurduğumuz temel görevi de görür. Sistemin merkezinde, TensorFlow'u güçlü bir şekilde yazılmış işlevsel programlama ortamında dağıtılmış iletişim operatörleriyle birleştirerek yeni birleşik algoritmaları kısaca ifade etmek için bir dizi alt düzey arayüz bulunur. Bu katman aynı zamanda Birleşik Öğrenim'i üzerine kurduğumuz temel görevi de görür.
  • TFF, geliştiricilerin birleştirilmiş hesaplamaları bildirimsel olarak ifade etmelerini sağlar, böylece çeşitli çalışma zamanı ortamlarına dağıtılabilirler. TFF'ye dahil edilen, deneyler için performanslı bir çok makineli simülasyon çalışma zamanıdır. Lütfen öğreticileri ziyaret edin ve kendiniz deneyin!

    Sorular ve destek için bizi StackOverflow'daki tensorflow-federated etiketinde bulun .