این صفحه به‌وسیله ‏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 برای تسهیل تحقیقات آزاد و آزمایش با آموزش فدرال (FL) ، رویکردی برای یادگیری ماشین که در آن یک مدل جهانی مشترک برای بسیاری از مشتریان شرکت کننده آموزش داده می شود که داده های آموزش خود را به صورت محلی نگه می دارند ، ایجاد شده است. به عنوان مثال ، از FL برای آموزش مدل های پیش بینی برای صفحه کلیدهای تلفن همراه بدون بارگذاری اطلاعات حساس تایپ روی سرورها استفاده شده است.

    TFF توسعه دهندگان را قادر می سازد الگوریتم های یادگیری فدراسیون گنجانده شده را بر روی مدل ها و داده های خود شبیه سازی کنند و همچنین الگوریتم های جدید را آزمایش کنند. عناصر سازنده ارائه شده توسط TFF همچنین می توانند برای پیاده سازی محاسبات غیرآموزشی مانند تجزیه و تحلیل تجمیع شده روی داده های غیرمتمرکز استفاده شوند. رابط های TFF در دو لایه سازمان یافته اند:

  • این لایه مجموعه ای از رابط های سطح بالا را ارائه می دهد که به توسعه دهندگان اجازه می دهد پیاده سازی های مربوط به آموزش فدراسیون و ارزیابی را در مدل های موجود TensorFlow خود اعمال کنند.
  • در هسته سیستم مجموعه ای از رابط های سطح پایین برای بیان مختصر الگوریتم های فدراسیون جدید با ترکیب TensorFlow با اپراتورهای ارتباطی توزیع شده در یک محیط برنامه نویسی عملکردی کاملاً متناسب وجود دارد. این لایه همچنین به عنوان پایه و اساسی است که ما آموزش فدراسیون را بر اساس آن بنا کرده ایم.
  • TFF توسعه دهندگان را قادر می سازد تا محاسبات فدرال را بصورت اظهارنظر بیان کنند ، بنابراین می توانند در محیط های مختلف زمان اجرا مستقر شوند. با استفاده از TFF ، مدت زمان شبیه سازی تک دستگاه برای آزمایشها وجود دارد. لطفاً از آموزشها دیدن کنید و خودتان آن را امتحان کنید!

    برای س questionsالات و پشتیبانی ، ما را در برچسب tensorflow federated در StackOverflow پیدا کنید.