Trang này được dịch bởi Cloud Translation API.
Switch to English

TensorFlow Federated: Học máy trên dữ liệu phi tập trung

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) là một khuôn khổ mã nguồn mở cho máy học và các tính toán khác trên dữ liệu phi tập trung. TFF đã được phát triển để tạo điều kiện thuận lợi cho việc nghiên cứu và thử nghiệm mở với Federated Learning (FL) , một phương pháp tiếp cận máy học, trong đó mô hình toàn cầu được chia sẻ được đào tạo cho nhiều khách hàng tham gia giữ dữ liệu đào tạo của họ tại địa phương. Ví dụ: FL đã được sử dụng để đào tạo mô hình dự đoán cho bàn phím di động mà không cần tải dữ liệu nhập nhạy cảm lên máy chủ.

    TFF cho phép các nhà phát triển mô phỏng các thuật toán học tập liên kết được bao gồm trên các mô hình và dữ liệu của họ, cũng như thử nghiệm với các thuật toán mới. Các khối xây dựng do TFF cung cấp cũng có thể được sử dụng để thực hiện các phép tính không học, chẳng hạn như phân tích tổng hợp trên dữ liệu phi tập trung. Các giao diện của TFF được tổ chức thành hai lớp:

  • Lớp này cung cấp một tập hợp các giao diện cấp cao cho phép các nhà phát triển áp dụng các triển khai được bao gồm của đào tạo liên hợp và đánh giá cho các mô hình TensorFlow hiện có của họ.
  • Cốt lõi của hệ thống là một tập hợp các giao diện cấp thấp hơn để diễn đạt một cách chính xác các thuật toán liên hợp mới bằng cách kết hợp TensorFlow với các toán tử truyền thông phân tán trong một môi trường lập trình chức năng được đánh máy mạnh. Lớp này cũng đóng vai trò là nền tảng mà chúng tôi đã xây dựng Học liên kết.
  • TFF cho phép các nhà phát triển thể hiện rõ ràng các phép tính liên hợp, vì vậy chúng có thể được triển khai cho các môi trường thời gian chạy đa dạng. Đi kèm với TFF là thời gian chạy mô phỏng một máy cho các thí nghiệm. Hãy truy cập các hướng dẫn và thử nó cho mình!

    Đối với các câu hỏi và hỗ trợ, hãy tìm chúng tôi tại thẻ liên kết tensorflow trên StackOverflow.