Bantuan melindungi Great Barrier Reef dengan TensorFlow pada Kaggle Bergabung Tantangan

TensorFlow Federated: Machine Learning pada Data Terdesentralisasi

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) adalah kerangka kerja sumber terbuka untuk pembelajaran mesin dan komputasi lainnya pada data yang didesentralisasi. TFF telah dikembangkan untuk memfasilitasi penelitian terbuka dan eksperimen dengan Federasi Learning (FL) , suatu pendekatan untuk pembelajaran mesin di mana model global bersama dilatih di banyak klien yang berpartisipasi yang menyimpan data pelatihan mereka secara lokal. Sebagai contoh, FL telah digunakan untuk kereta model prediksi untuk keyboard ponsel tanpa meng-upload data yang mengetik sensitif terhadap server.

    TFF memungkinkan pengembang untuk mensimulasikan algoritme pembelajaran gabungan yang disertakan pada model dan data mereka, serta bereksperimen dengan algoritme baru. Para peneliti akan menemukan titik awal dan contoh lengkap untuk berbagai jenis penelitian. Blok bangunan yang disediakan oleh TFF juga dapat digunakan untuk melaksanakan perhitungan non-learning, seperti analisis federasi . Antarmuka TFF diatur dalam dua lapisan utama:

  • Lapisan ini menawarkan serangkaian antarmuka tingkat tinggi yang memungkinkan developer untuk menerapkan implementasi yang disertakan dari pelatihan dan evaluasi gabungan ke model TensorFlow mereka yang sudah ada.
  • Inti dari sistem ini adalah serangkaian antarmuka tingkat rendah untuk mengekspresikan algoritme gabungan baru secara ringkas dengan menggabungkan TensorFlow dengan operator komunikasi terdistribusi dalam lingkungan pemrograman fungsional yang diketik dengan kuat. Lapisan ini juga berfungsi sebagai fondasi di mana kita telah membangun Pembelajaran Federasi.
  • TFF memungkinkan pengembang untuk mengekspresikan komputasi gabungan secara deklaratif, sehingga dapat diterapkan ke lingkungan runtime yang beragam. Termasuk dengan TFF adalah runtime simulasi multi-mesin berkinerja untuk eksperimen. Silakan kunjungi tutorial dan mencobanya sendiri!

    Untuk pertanyaan dan dukungan, menemukan kami di tag tensorflow-federasi di StackOverflow.