DataLayouts

lớp cuối cùng công khai DataLayouts

Hiển thị các phiên bản DataLayout của các định dạng dữ liệu thường được sử dụng trong tính toán đại số tuyến tính.

Ví dụ về cách sử dụng:

// 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());
 

Trường

công khai tĩnh cuối cùng FloatDataLayout < ShortDataBuffer > BLOAT16 Bố cục dữ liệu để chuyển đổi bfloat 16 bit thành/từ các giá trị ngắn.
công khai tĩnh cuối cùng BooleanDataLayout < ByteDataBuffer > BOOL Bố cục dữ liệu để chuyển đổi booleans sang/từ các giá trị byte.
công khai tĩnh cuối cùng FloatDataLayout < ShortDataBuffer > FLOAT16 Bố cục dữ liệu để chuyển đổi nửa nổi 16 bit thành/từ các giá trị ngắn.

Nhà xây dựng công cộng

Phương pháp công khai

DataLayout tĩnh < DataBuffer <byte[]>, String>
ofStrings (Bộ ký tự charset)
Tạo bố cục dữ liệu để chuyển đổi chuỗi thành/từ chuỗi byte.

Phương pháp kế thừa

Trường

cuối cùng tĩnh công khai FloatDataLayout < ShortDataBuffer > BFLOAT16

Bố cục dữ liệu để chuyển đổi bfloat 16 bit thành/từ các giá trị ngắn.

Định dạng này trước đây dành riêng cho TensorFlow nhưng hiện đã được áp dụng rộng rãi hơn trong lĩnh vực học máy. Nó được tối ưu hóa để chuyển đổi nhanh với các dấu phẩy động 32-bit có độ chính xác đơn bằng cách dịch chuyển giá trị của chúng và cắt bớt phần định trị xuống chỉ còn 7 bit.

Do đó, điều này bị mất độ chính xác ở phần phân số so với đặc tả dấu phẩy động có độ chính xác bán chính xác của IEEE-754 (xem FLOAT16 nhưng nó có phạm vi giá trị có thể lớn hơn trong toàn bộ phần vì nó bảo toàn số mũ 8 bit và sử dụng cùng độ lệch, (tức là phạm vi tuyệt đối trên 0 của khoảng [10 -40 , 3,39 × 10 38 ]

Một số CPU hỗ trợ định dạng bfloat16 nguyên bản để có hiệu suất tốt hơn.

công khai tĩnh cuối cùng BooleanDataLayout < ByteDataBuffer > BOOL

Bố cục dữ liệu để chuyển đổi booleans sang/từ các giá trị byte.

Vì không có bộ đệm boolean Java NIO nên bố cục này đặc biệt hữu ích để ánh xạ các giá trị boolean vào bộ đệm byte tiêu chuẩn. Việc chuyển đổi giữa boolean và byte yêu cầu chuyển kiểu rõ ràng.

cuối cùng tĩnh công khai FloatDataLayout < ShortDataBuffer > FLOAT16

Bố cục dữ liệu để chuyển đổi nửa nổi 16 bit thành/từ các giá trị ngắn.

Một nửa số float được lưu trữ trong bộ nhớ theo thông số kỹ thuật dấu phẩy động có độ chính xác bán chính xác của IEEE-754 và được chuyển đổi thành/từ các float 32 bit trong không gian người dùng.

Có khả năng mất độ chính xác khi chuyển đổi một float đơn (32-bit) thành một nửa float (16-bit). Phạm vi tuyệt đối của các giá trị trên 0 cho một nửa số float là khoảng [5,96 × 10 -8 , 6,55 × 10 4 ] và phần thập phân của chúng được làm tròn thành phần định trị 10 bit.

Nói chung, tính toán nửa nổi hoạt động tốt hơn trên GPU vì nhìn chung, CPU không hỗ trợ định dạng này nguyên bản.

Nhà xây dựng công cộng

DataLayouts công khai ()

Phương pháp công khai

public static DataLayout < DataBuffer <byte[]>, String> ofStrings (Bộ ký tự charset)

Tạo bố cục dữ liệu để chuyển đổi chuỗi thành/từ chuỗi byte.

Bố cục này yêu cầu một charset trong tham số để chỉ định cách mã hóa/giải mã các chuỗi dưới dạng chuỗi byte. Vì vậy, một phiên bản bố cục mới luôn được trả về.

Thông số
bộ ký tự bộ ký tự để sử dụng
Trả lại
  • bố cục chuỗi mới