יש שאלה? התחבר לקהילה בפורום הביקור של 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 ב- StackOverflow.