ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

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

# 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) هو إطار عمل مفتوح المصدر للتعلم الآلي والحسابات الأخرى على البيانات اللامركزية. تم تطوير TFF لتسهيل البحث المفتوح والتجريب باستخدام Federated Learning (FL) ، وهو نهج للتعلم الآلي حيث يتم تدريب نموذج عالمي مشترك عبر العديد من العملاء المشاركين الذين يحتفظون ببيانات التدريب الخاصة بهم محليًا. على سبيل المثال ، تم استخدام FL لتدريب نماذج التنبؤ للوحات المفاتيح المحمولة دون تحميل بيانات الكتابة الحساسة إلى الخوادم.

    يمكّن TFF المطورين من محاكاة خوارزميات التعلم الموحد المضمنة على نماذجهم وبياناتهم ، بالإضافة إلى تجربة خوارزميات جديدة. يمكن أيضًا استخدام اللبنات الأساسية التي يوفرها TFF لتنفيذ العمليات الحسابية غير التعليمية ، مثل التحليلات المجمعة على البيانات اللامركزية. يتم تنظيم واجهات TFF في طبقتين:

  • تقدم هذه الطبقة مجموعة من الواجهات عالية المستوى التي تسمح للمطورين بتطبيق عمليات التنفيذ المضمنة للتدريب الموحد والتقييم على نماذج TensorFlow الحالية الخاصة بهم.
  • يوجد في صميم النظام مجموعة من الواجهات ذات المستوى الأدنى للتعبير بإيجاز عن خوارزميات موحدة جديدة من خلال الجمع بين TensorFlow ومشغلي الاتصالات الموزعة في بيئة برمجة وظيفية شديدة التصنيف. تعمل هذه الطبقة أيضًا كأساس أنشأنا عليه التعلم الموحد.
  • يمكّن TFF المطورين من التعبير بشكل إعلاني عن الحسابات الموحدة ، بحيث يمكن نشرها في بيئات وقت تشغيل متنوعة. يشتمل مع TFF على وقت تشغيل محاكاة لجهاز واحد للتجارب. يرجى زيارة الدروس وجربها بنفسك!

    للأسئلة والدعم ، تجدنا في العلامة الموحدة tensorflow على StackOverflow.