TensorFlow Federated: Merkezi Olmayan Verilerde 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.models.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['client_work']['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 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:
-
Federe Öğrenim (FL) API'sı
Bu katman, geliştiricilerin dahil edilen birleşik eğitim ve değerlendirme uygulamalarını mevcut TensorFlow modellerine uygulamalarına olanak tanıyan bir dizi üst düzey arabirim sunar. -
Federe Çekirdek (FC) API'si
Sistemin merkezinde, TensorFlow'u dağıtılmış iletişim operatörleri ile güçlü bir şekilde tanımlanmış işlevsel programlama ortamında birleştirerek yeni birleşik algoritmaları kısa ve öz bir şekilde ifade etmek için bir dizi alt düzey arabirim bulunur. Bu katman aynı zamanda Federated Learning'i üzerine kurduğumuz temel görevi 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 .