דף זה תורגם על ידי Cloud Translation API.
Switch to English

TensorFlow Federated: Machine Learning על נתונים מבוזרים

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.