مؤتمر Google I / O هو التفاف! تابع جلسات TensorFlow اعرض الجلسات

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

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

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

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

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