DataLayouts

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

חושף מופעי 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 בפרמטר כדי לציין כיצד יש לקודד/פענח את המחרוזות כרצפי בתים. אז מופע פריסה חדש מוחזר תמיד.

פרמטרים
ערכת תווים ערכת תווים לשימוש
מחזיר
  • פריסת מחרוזת חדשה