חושף מופעי DataLayout
של פורמטי נתונים המשמשים לעתים קרובות בחישוב אלגברה ליניארי.
דוגמה לשימוש:
// Storing boolean values in a ByteDataBuffer
BooleanDataBuffer boolBuffer = DataLayouts.BOOL.applyTo(byteDataBuffer);
// Allocating a new buffer of 256 half floats
FloatDataBuffer halfBuffer = DataLayouts.FLOAT16.applyTo(DataBuffers.ofShorts(256 * DataLayouts.FLOAT16.scale());
שדות
public static final FloatDataLayout < ShortDataBuffer > | BFLOAT16 | פריסת נתונים להמרת bfloats של 16 סיביות ל-/מערכים קצרים. |
public static final BooleanDataLayout < ByteDataBuffer > | BOOL | פריסת נתונים להמרת בוליאנים לערכי בתים/בתים. |
public static final FloatDataLayout < ShortDataBuffer > | FLOAT16 | פריסת נתונים להמרת חצי צפים של 16 סיביות לערכים קצרים. |
בונים ציבוריים
שיטות ציבוריות
סטטי DataLayout < DataBuffer <byte[]>, String> | ofStrings (ערכת תווים) יוצר פריסת נתונים להמרת מחרוזות אל/מרצפי בתים. |
שיטות בירושה
שדות
public static final FloatDataLayout < ShortDataBuffer > BFLOAT16
פריסת נתונים להמרת bfloats של 16 סיביות ל-/מערכים קצרים.
פורמט זה היה בעבר ספציפי ל-TensorFlow, אך כעת אומץ באופן רחב יותר בתחום למידת המכונה. הוא מותאם להמרה מהירה עם נקודות צפה של 32 סיביות דיוק בודדות על ידי שינוי הערך שלהן וקיצוץ המנטיסה ל-7 סיביות בלבד.
לכן, זהו אובדן דיוק בחלק השבר בהשוואה למפרט הנקודה הצפה בחצי דיוק של IEEE-754 (ראה FLOAT16
אך יש לו טווח גדול יותר של ערכים אפשריים בחלק כולו מכיוון שהוא משמר את המעריך של 8 סיביות ומשתמש אותה הטיה, (כלומר טווח מוחלט מעל 0 של בערך [10 -40 , 3.39 × 10 38 ]
חלק מהמעבדים תומכים בפורמט bfloat16 באופן מקורי לביצועים טובים יותר.
public static final BooleanDataLayout < ByteDataBuffer > BOOL
פריסת נתונים להמרת בוליאנים לערכי בתים/בתים.
מכיוון שאין מאגר בוליאני של Java NIO, פריסה זו שימושית במיוחד למיפוי ערכי בוליאני למאגרי בתים סטנדרטיים. ההמרה בין בוליאני לבייט דורשת ליהוק סוג מפורש.
public static final FloatDataLayout < ShortDataBuffer > FLOAT16
פריסת נתונים להמרת חצי צפים של 16 סיביות לערכים קצרים.
חצי צפים מאוחסנים בזיכרון בהתאם למפרט הנקודה הצפה בחצי דיוק של IEEE-754, ומומרים ל-/מ-32-bit floats במרחב המשתמש.
קיים אובדן פוטנציאלי של דיוק בעת המרת ציפה בודדת (32 סיביות) לחצי ציפה (16 סיביות). טווח מוחלט של ערכים מעל 0 עבור חצי ציפה הוא בקירוב [5.96 × 10 -8 , 6.55 × 10 4 ] והחלק העשרוני שלהם מעוגל כלפי מעלה למנטיסה של 10 סיביות.
באופן כללי, חישוב חצי צף מתפקד טוב יותר במעבדי GPU מכיוון שבאופן כללי, מעבדים לא תומכים בפורמט זה באופן מקורי.
בונים ציבוריים
פריסות נתונים ציבוריות ()
שיטות ציבוריות
public static DataLayout < DataBuffer <byte[]>, String> ofStrings (ערכת תווים)
יוצר פריסת נתונים להמרת מחרוזות אל/מרצפי בתים.
פריסה זו דורשת charset
בפרמטר כדי לציין כיצד יש לקודד/פענח את המחרוזות כרצפי בתים. אז מופע פריסה חדש מוחזר תמיד.
פרמטרים
ערכת תווים | ערכת תווים לשימוש |
---|
מחזיר
- פריסת מחרוזת חדשה