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

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), 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 makine öğrenimine yönelik bir yaklaşım olan Federe Öğrenme (FL) ile açık araştırma ve denemeyi kolaylaştırmak için geliştirilmiştir. Örneğin, FL, sunuculara hassas yazma verilerini yüklemeden mobil klavyeler için tahmin modellerini eğitmek için kullanılmıştır.

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

  • Bu katman, geliştiricilerin dahili eğitim ve değerlendirme uygulamalarını mevcut TensorFlow modellerine uygulamalarına olanak tanıyan bir dizi üst düzey arabirim sunar.
  • Sistemin merkezinde, TensorFlow'u güçlü bir şekilde yazılmış bir 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 Federe Öğrenmeyi inşa ettiğimiz temel görevi de görür.
  • TFF, geliştiricilerin federe hesaplamaları bildirimsel olarak ifade etmelerini sağlar, böylece bunlar çeşitli çalışma zamanı ortamlarına dağıtılabilir. TFF ile birlikte, deneyler için yüksek performanslı bir çok makineli simülasyon çalışma zamanı dahildir. Lütfen eğitimleri ziyaret edin ve kendiniz deneyin!

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