TensorFlow Federated: การเรียนรู้ของเครื่องเกี่ยวกับข้อมูลที่กระจายอำนาจ, TensorFlow Federated: การเรียนรู้ของเครื่องเกี่ยวกับข้อมูลที่กระจายอำนาจ
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) เป็นเฟรมเวิร์กโอเพนซอร์สสำหรับการเรียนรู้ของเครื่องและการคำนวณอื่นๆ เกี่ยวกับข้อมูลที่กระจายอำนาจ TFF ได้รับการพัฒนาเพื่ออำนวยความสะดวกในการวิจัยแบบเปิดและการทดลองด้วย Federated Learning (FL) ซึ่งเป็นแนวทางในการเรียนรู้ด้วยเครื่องที่ซึ่งโมเดลที่ใช้ร่วมกันทั่วโลกได้รับการฝึกอบรมจากลูกค้าที่เข้าร่วมจำนวนมากที่เก็บข้อมูลการฝึกอบรมไว้ในพื้นที่ ตัวอย่างเช่น FL ถูกใช้เพื่อฝึก โมเดลการคาดคะเนสำหรับคีย์บอร์ดมือถือ โดยไม่ต้องอัปโหลดข้อมูลการพิมพ์ที่ละเอียดอ่อนไปยังเซิร์ฟเวอร์
TFF ช่วยให้นักพัฒนาสามารถจำลองอัลกอริธึมการเรียนรู้แบบสหพันธรัฐที่รวมอยู่ในโมเดลและข้อมูลของพวกเขา เช่นเดียวกับการทดลองกับอัลกอริธึมใหม่ นักวิจัยจะพบ จุดเริ่มต้นและตัวอย่างที่สมบูรณ์ สำหรับการวิจัยหลายประเภท โครงสร้างที่จัดเตรียมโดย TFF ยังสามารถใช้เพื่อปรับใช้การคำนวณที่ไม่ใช่การเรียนรู้ เช่น การวิเคราะห์แบบรวม ศูนย์ อินเทอร์เฟซของ TFF ถูกจัดเป็นสองชั้นหลัก:
-
API การเรียนรู้แบบสหพันธรัฐ (FL) API การเรียนรู้แบบสหพันธ์ (FL)
เลเยอร์นี้เสนอชุดอินเทอร์เฟซระดับสูงที่ช่วยให้นักพัฒนาสามารถนำการใช้งานการฝึกอบรมและการประเมินผลแบบรวมศูนย์มาใช้กับโมเดล TensorFlow ที่มีอยู่ได้ ,เลเยอร์นี้มีชุดอินเทอร์เฟซระดับสูงที่ช่วยให้นักพัฒนาสามารถนำการใช้งานการฝึกอบรมและการประเมินผลแบบรวมศูนย์มาใช้กับโมเดล TensorFlow ที่มีอยู่ได้ -
API สหพันธ์คอร์ (FC), API สหพันธ์คอร์ (FC)
แกนหลักของระบบคือชุดอินเทอร์เฟซระดับล่างสำหรับการแสดงอัลกอริธึมแบบรวมศูนย์แบบใหม่อย่างกระชับ โดยการรวม TensorFlow เข้ากับตัวดำเนินการสื่อสารแบบกระจายภายในสภาพแวดล้อมการเขียนโปรแกรมเชิงฟังก์ชันที่พิมพ์อย่างแน่นหนา เลเยอร์นี้ยังทำหน้าที่เป็นรากฐานที่เราได้สร้างการเรียนรู้แบบสมาพันธ์อีกด้วย ,แกนกลางของระบบคือชุดอินเทอร์เฟซระดับล่างสำหรับการแสดงอัลกอริธึมแบบรวมศูนย์แบบใหม่อย่างกระชับ โดยการรวม TensorFlow เข้ากับตัวดำเนินการสื่อสารแบบกระจายภายในสภาพแวดล้อมการเขียนโปรแกรมเชิงฟังก์ชันที่เน้นการพิมพ์อย่างยิ่ง เลเยอร์นี้ยังทำหน้าที่เป็นรากฐานที่เราได้สร้างการเรียนรู้แบบสมาพันธ์อีกด้วย -
TFF ช่วยให้นักพัฒนาสามารถแสดงการคำนวณแบบรวมศูนย์ได้อย่างชัดเจน เพื่อให้สามารถปรับใช้กับสภาพแวดล้อมรันไทม์ที่หลากหลายได้ ที่มาพร้อมกับ TFF คือรันไทม์การจำลองหลายเครื่องที่มีประสิทธิภาพสำหรับการทดลอง กรุณาเยี่ยมชมบทช่วย สอน และลองด้วยตัวคุณเอง!
สำหรับคำถามและการสนับสนุน พบกับเราได้ที่ แท็กรวมเทนเซอร์โฟลว์ บน StackOverflow