דף זה תורגם על ידי Cloud Translation API.
Switch to English

tff.simulation.TransformingClientData

מקור צפה על GitHub

המרה של נתונים הלקוח, וכך להרחיב על ידי הוספת-לקוחות פסאודו.

יורשת: ClientData

כל לקוח של raw_client_data הוא "מורחבת" אל המספר חלק-לקוחות פסאודו. מזהה כל לקוח הוא מחרוזת מורכבת בזיהוי לקוח המקורי בתוספת מדד שלם בשרשור. לדוגמא, בזיהוי לקוח הגלם "client_a" עלול להיות מורחב לתוך מזהים פסבדו-הלקוח "client_a_0", "client_a_1" ו "client_a_2". פונקציה fn (x) ממפה לנקודת נתונים X כדי לנקודת נתונים חדשים, שבהם בנאי של fn הוא להם פרמטרים ידי (גלם) client_id ואינדקס i. לדוגמה, אם x הוא דימוי, אז make_transform_fn ( "client_a", 0) (x) עשוי להיות זהות, בעוד make_transform_fn ( "client_a", 1) (x) יכול להיות רוטציה אקראית של התמונה עם זווית נקבע על ידי גיבוב של "client_a" ו- "1". בדרך כלל על ידי אמנת המדד 0 תואם את הפונקציה הזהה אם הזהות נתמכת.

raw_client_data ClientData להתרחב.
make_transform_fn פונקציה שמחזירה מפות callable כי לנקודת נתונים X כדי לנקודת נתונים חדשים x". make_transform_fn ייקרא כפי make_transform_fn (raw_client_id, i) כאשר i הוא אינדקס שלם, וצריך להחזיר פונקציה fn (x) -> x. לדוגמה, אם x הוא דימוי, אז make_transform_fn ( "client_a", 0) (x) עשוי להיות זהות, בעוד make_transform_fn ( "client_a", 1) (x) יכול להיות רוטציה אקראית של התמונה עם זווית נקבע על ידי גיבוב של "client_a" ו- "1". אם מחזיר transform_fn_cons None , אין שינוי מתבצע. בדרך כלל על ידי אמנת המדד 0 תואם את הפונקציה הזהה אם הזהות נתמכת.
num_transformed_clients המספר הכולל של לקוחות טרנספורמציה לייצר. אם מדובר k מספר שלם של מספר לקוחות אמיתיים, יהיו בדיוק k פסאודו-לקוחות לכל לקוח אמיתי, עם מדדי 0 ... k-1. כול גרמו ושאר יופק מן הלקוחות האמיתיים g הראשון יינתן k מדד.

client_ids רשימה מזהה מחרוזת עבור לקוחות שבמערך הזה.
dataset_computation tff.Computation קבלת תעודת זהות לקוח, חוזר במערך.

ClientData מימושים שאינם תומכים dataset_computation צריך להעלות NotImplementedError אם תכונה זו היא ניגשת.

element_type_structure מידע סוג האלמנט של מערכי הנתונים לקוח.

אלמנטים חזרו ידי מערכי נתונים זה ClientData אובייקט.

שיטות

create_tf_dataset_for_client

ראה מקור

יוצר חדש tf.data.Dataset המכיל דוגמאות אימוני לקוח.

ARGS
client_id מחרוזת CLIENT_ID עבור הלקוח הרצוי.

החזרות
tf.data.Dataset אובייקט.

create_tf_dataset_from_all_clients

ראה מקור

יוצר חדש tf.data.Dataset המכיל את כל הדוגמאות הלקוח.

פונקציה זו מיועדת הכשרה בשימוש המרוכזת, דגמים-הפצה בלתי (NUM_CLIENTS = 1). זה יכול להיות שימושי כנקודת השוואה מול מודלים Federated.

נכון לעכשיו, היישום מייצר נתון המכילים את כל דוגמאות מלקוח יחיד כדי, ולכן בדרך כלל דשדוש נוסף צריכה להתבצע.

ARGS
seed אופציונלי, זרע כדי לקבוע את הסדר שבו לקוחות מעובדי נתון הצטרפו. הזרע יכול להיות כל מספר שלם לא חתום 32-bit או מערך של מספרים שלמים כאלה.

החזרות
tf.data.Dataset אובייקט.

datasets

ראה מקור

תשואות tf.data.Dataset עבור כל לקוח בסדר אקראי.

פונקציה זו מיועדת לשימוש בבניית מערך סטטי של נתוני לקוח יסופק בחישוב Federated ברמה העליונה.

ARGS
limit_count אופציונלי, מספר מערכי נתונים מקסימלית לחזור.
seed אופציונלי, זרע כדי לקבוע את הסדר שבו לקוחות מעובדי נתון הצטרפו. הזרע יכול להיות כל מספר שלם לא חתום 32-bit או מערך של מספרים שלמים כאלה.

from_clients_and_fn

ראה מקור

בונה ClientData מבוסס על הפונקציה נתון.

ARGS
client_ids רשימה לא ריקה של client_ids אשר קלט חוקי אל create_tf_dataset_for_client_fn.
create_tf_dataset_for_client_fn פונקציה שלוקח client_id מהרשימה הנ"ל, ומחזירה tf.data.Dataset .

החזרות
ClientData .

preprocess

ראה מקור

חל preprocess_fn לכל של נתונים הלקוח.

train_test_client_split

ראה מקור

מחזירה זוג (רכבת, מבחן) ClientData .

מחיצות שיטה זו הלקוחות של client_data לשתי ClientData אובייקטים עם קבוצות זרות של ClientData.client_ids . כל הלקוחות במבחן ClientData מובטחים שיהיו מערכי נתונים שאיננו ריקים, אבל אימוני ClientData עשויה להיות לקוחות ללא נתונים.

ARGS
client_data הבסיס ClientData לפיצול.
num_test_clients כמה לקוחות להחזיק מעמד לבדיקה. זה יכול להיות לכל היותר לן (client_data.client_ids) - 1, מאז אנחנו לא רוצים לייצר ריק ClientData .

החזרות
זוג (train_client_data, test_client_data), שבו test_client_data יש num_test_clients שנבחר באקראי, כפוף למגבלה שלכול אחד מהם יש לפחות יצווה 1 שבמערך שלהם.

מעלה
ValueError אם num_test_clients לא ניתן satistifed ידי client_data , או לקוחות רבים מדי יש מערכי נתונים ריקים.