DecodeProto

מחלקה סופית ציבורית DecodeProto

ה-op מחלץ שדות מפרוטוקול מסודר מאחסן הודעה לטנזורים.

הערה: API זה מיועד לאורתוגונליות ולא לידידותיות אנושית. ניתן להשתמש בו כדי לנתח פרוטו קלט ביד, אך הוא מיועד לשימוש בקוד שנוצר.

האופציה `decode_proto` מחלצת שדות מפרוטוקול מסודר מאחסנת הודעה לטנזורים. השדות ב-'name_fields' מפוענחים ומומרים ל-'output_types' המתאימים במידת האפשר.

יש לספק שם 'סוג_הודעה' כדי לתת הקשר לשמות השדות. ניתן לחפש את מתאר ההודעה בפועל במאגר התיאורים המקושר או בשם קובץ שסופק על ידי המתקשר באמצעות התכונה `descriptor_source`.

כל טנסור פלט הוא טנסור צפוף. המשמעות היא שהוא מרופד כדי להחזיק את המספר הגדול ביותר של רכיבים חוזרים ונשנים במיני-אצט הקלט. (הצורה גם מרופדת באחד כדי למנוע ממדים בגודל אפס). ניתן למצוא את ספירת החזרות בפועל עבור כל דוגמה ב-minibatch בפלט 'מידות'. במקרים רבים הפלט של `decode_proto` מוזן מיד לתוך tf.squeeze אם ערכים חסרים אינם מהווים חשש. בעת שימוש ב-tf.squeeze, תמיד העבר את ממד הסחיטה במפורש כדי למנוע הפתעות.

לרוב, המיפוי בין סוגי שדות Proto ו-TensorFlow dtypes הוא פשוט. עם זאת, ישנם כמה מקרים מיוחדים:

- ניתן להמיר שדה פרוטו שמכיל תת-הודעה או קבוצה רק ל-'DT_STRING' (תת-ההודעה בסידרה). זאת כדי להפחית את המורכבות של ה-API. המחרוזת שהתקבלה יכולה לשמש כקלט למופע אחר של ה-decode_proto op.

- TensorFlow חסרה תמיכה במספרים שלמים לא חתומים. האופציות מייצגות סוגי uint64 בתור `DT_INT64` עם אותה תבנית סיביות משלימה של שניים (הדרך הברורה). ערכי int32 לא חתומים יכולים להיות מיוצגים במדויק על ידי ציון סוג `DT_INT64`, או שימוש בהשלמה של שניים אם המתקשר מציין `DT_INT32` בתכונה `output_types`.

- שדות 'מפה' אינם מפוענחים ישירות. הם מטופלים כשדות 'חוזרים', מסוג הערך המתאים. הפרוטו-מהדר מגדיר סוגי ערכים עבור כל שדה מפה. שם הסוג הוא שם השדה, שהומר ל-"CamelCase" עם "כניסה" מצורף. הודעת tf.train.Features.FeatureEntry היא דוגמה לאחד מסוגי ה'כניסה' המרומזים הללו.

- יש לקרוא את שדות 'enum' בתור int32.

הן תומכות בהמשכה בינארית והן בהמשכיות פרוטו טקסט, וניתן לבחור אותן באמצעות התכונה 'פורמט'.

התכונה `descriptor_source` בוחרת את המקור של מתארי הפרוטוקול שיש להתייעץ בהם בעת חיפוש `message_type`. זה יכול להיות:

- מחרוזת ריקה או "local://", ובמקרה זה נוצרים מתארי פרוטוקול עבור הגדרות פרוטו C++ (לא Python) המקושרות לבינארי.

- קובץ, ובמקרה זה נוצרים מתארי פרוטוקול מהקובץ, אשר צפוי להכיל `FileDescriptorSet` בסידרה כמחרוזת. הערה: אתה יכול לבנות קובץ `descriptor_source` באמצעות האפשרויות `--descriptor_set_out` ו`--include_imports` למהדר הפרוטוקול `protoc`.

- A "bytes:// ", שבו מתארי פרוטוקול נוצרים מתוך ` `, אשר צפוי להיות `FileDescriptorSet` בסידרה כמחרוזת.

כיתות מקוננות

מעמד DecodeProto.Options תכונות אופציונליות עבור DecodeProto

שיטות ציבוריות

סטטי DecodeProto
create ( scope scope, Operand <String> bytes, String messageType, List<String> fieldNames, List<Class<?>> outputTypes, Options... options)
שיטת מפעל ליצירת מחלקה העוטפת פעולת DecodeProto חדשה.
סטטי DecodeProto.Options
descriptorSource (מחרוזת descriptorSource)
סטטי DecodeProto.Options
messageFormat (String messageFormat)
סטטי DecodeProto.Options
חיטוי (חיטוי בוליאני)
פלט <מספר שלם>
גדלים ()
טנסור של int32 עם הצורה `[batch_shape, len(field_names)]`.
רשימה< פלט <?>>
ערכים ()
רשימת טנסורים המכילה ערכים עבור השדה המתאים.

שיטות בירושה

שיטות ציבוריות

public static DecodeProto create ( scope scope, Operand <String> bytes, String messageType, List<String> fieldNames, List<Class<?>> outputTypes, Options... options)

שיטת מפעל ליצירת מחלקה העוטפת פעולת DecodeProto חדשה.

פרמטרים
תְחוּם ההיקף הנוכחי
בתים טנסור של פרוטו סידורי עם צורה 'אצווה_צורה'.
סוג הודעה שם סוג הודעת הפרוטו לפענוח.
שמות שדה רשימת מחרוזות המכילות שמות שדות פרוטו. ניתן לפענח שדה הרחבה באמצעות השם המלא שלו, למשל EXT_PACKAGE.EXT_FIELD_NAME.
outputTypes רשימה של סוגי TF לשימוש עבור השדה המתאים בשדה_שמות.
אפשרויות נושא ערכי תכונות אופציונליות
החזרות
  • מופע חדש של DecodeProto

public static DecodeProto.Options descriptorSource (String descriptorSource)

פרמטרים
descriptorSource או הערך המיוחד `local://` או נתיב לקובץ המכיל `FileDescriptorSet` מסודר.

public static DecodeProto.Options messageFormat (String messageFormat)

פרמטרים
messageFormat או 'בינארי' או text .

public static DecodeProto.Options sanitize (חיטוי בוליאני)

פרמטרים
לחטא האם לחטא את התוצאה או לא.

פלט ציבורי בגדלים של <Integer> ()

טנסור של int32 עם הצורה `[batch_shape, len(field_names)]`. כל ערך הוא מספר הערכים שנמצאו עבור השדה המתאים. שדות אופציונליים עשויים לכלול 0 או 1 ערכים.

ערכי רשימה ציבורית< פלט <?>> ()

רשימת טנסורים המכילה ערכים עבור השדה המתאים. ל-`values[i]` יש את סוג הנתונים `output_types[i]` ואת הצורה `[batch_shape, max(sizes[...,i])]`.