Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

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)]

# Grab a single batch of data so that TFF knows what data looks like.
sample_batch = tf.nest.map_structure(
    lambda x: x.numpy(), iter(train_data[0]).next())

# 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,
      dummy_batch=sample_batch,
      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), 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. TFF tarafından sağlanan yapı taşları, merkezi olmayan veriler üzerinde toplu analitik gibi öğrenme dışı hesaplamaları uygulamak için de kullanılabilir. TFF'nin arayüzleri iki 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ış işlevsel programlama ortamında dağıtılmış iletişim operatörleri ile birleştirerek yeni birleşik algoritmaları kısaca ifade etmek için bir dizi alt düzey arabirim 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 tek makineli bir simülasyon çalışma zamanı dahildir. Lütfen eğiticileri ziyaret edin ve kendiniz deneyin!

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