TensorFlow Federated: Học máy trên dữ liệu phi tập trung
import collections 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. keras_model = tf.keras.models.Sequential([ tf.keras.layers.Dense( 10, tf.nn.softmax, input_shape=(784,), kernel_initializer='zeros') ]) tff_model = tff.learning.models.functional_model_from_keras( keras_model, loss_fn=tf.keras.losses.SparseCategoricalCrossentropy(), input_spec=train_data[0].element_spec, metrics_constructor=collections.OrderedDict( accuracy=tf.keras.metrics.SparseCategoricalAccuracy)) # Simulate a few rounds of training with the selected client devices. trainer = tff.learning.algorithms.build_weighted_fed_avg( tff_model, client_optimizer_fn=tff.learning.optimizers.build_sgdm(learning_rate=0.1)) state = trainer.initialize() for _ in range(5): result = trainer.next(state, train_data) state = result.state metrics = result.metrics print(metrics['client_work']['train']['accuracy'])
-
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 cho 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 và lưu 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 các 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 hợp đượ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 nhà nghiên cứu sẽ tìm ra các điểm khởi đầu và các ví dụ hoàn chỉnh cho nhiều loại nghiên cứu. Các khối xây dựng do TFF cung cấp cũng có thể được sử dụng để triển khai các phép tính không học, chẳng hạn như phân tích liên hợp . Các giao diện của TFF được tổ chức theo hai lớp chính:
-
API học tập liên kết (FL)
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 việc triển khai đào tạo và đánh giá liên kết đi kèm cho các mô hình TensorFlow hiện có của họ. -
API lõi liên kết (FC)
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 để thể hiện chính xác các thuật toán liên kết 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ôi trường lập trình chức năng được định kiểu mạnh mẽ. Lớp này cũng đóng vai trò là nền tảng để chúng tôi xây dựng Học tập 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 đa máy biểu diễn cho các thí nghiệm. Vui lòng 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.