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) के साथ खुले अनुसंधान और प्रयोग की सुविधा के लिए विकसित किया गया है, मशीन लर्निंग के लिए एक दृष्टिकोण जहां एक साझा वैश्विक मॉडल कई प्रतिभागी ग्राहकों को प्रशिक्षित किया जाता है जो अपने प्रशिक्षण डेटा को स्थानीय स्तर पर रखते हैं। उदाहरण के लिए, एफएल को सर्वर पर संवेदनशील टाइपिंग डेटा अपलोड किए बिना मोबाइल कीबोर्ड के लिए भविष्यवाणी मॉडल को प्रशिक्षित करने के लिए उपयोग किया गया है।

    TFF डेवलपर्स को उनके मॉडल और डेटा पर शामिल फ़ेडरेटेड लर्निंग एल्गोरिदम को अनुकरण करने में सक्षम बनाता है, साथ ही साथ उपन्यास एल्गोरिदम के साथ प्रयोग करने के लिए भी। शोधकर्ता कई तरह के शोध के लिए शुरुआती बिंदु और पूर्ण उदाहरण पाएंगे। TFF द्वारा प्रदान किए गए भवन ब्लॉकों का उपयोग गैर-शिक्षण संगणनाओं को कार्यान्वित करने के लिए भी किया जा सकता है, जैसे कि संघबद्ध विश्लेषण । TFF के इंटरफेस दो मुख्य परतों में व्यवस्थित हैं:

  • यह परत उच्च-स्तरीय इंटरफेस का एक सेट प्रदान करती है, जो डेवलपर्स को अपने मौजूदा टेनसॉरफ्लो मॉडल के लिए संघटित प्रशिक्षण और मूल्यांकन के सम्मिलित कार्यान्वयन को लागू करने की अनुमति देता है।
  • सिस्टम के मुख्य भाग में एक दृढ़ता से टाइप किए गए कार्यात्मक प्रोग्रामिंग वातावरण में वितरित संचार ऑपरेटरों के साथ TensorFlow के संयोजन से उपन्यास फेडरेटेड एल्गोरिदम को स्पष्ट रूप से व्यक्त करने के लिए निचले स्तर के इंटरफेस का एक सेट है। यह परत उस नींव के रूप में भी काम करती है जिस पर हमने Federated Learning बनाया है।
  • TFF डेवलपर्स को घोषित रूप से संघनित अभिकलन व्यक्त करने में सक्षम बनाता है, इसलिए उन्हें विविध रनटाइम वातावरण में तैनात किया जा सकता है। TFF के साथ शामिल प्रयोगों के लिए एक बहु-मशीन अनुकार रनटाइम है। कृपया ट्यूटोरियल देखें और इसे स्वयं आज़माएँ!

    प्रश्नों और समर्थन के लिए, हमें StackOverflow पर टेंसरफ़्लो-फ़ेडरेटेड टैग पर खोजें।