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

ক্ষেত্র

পাবলিক স্ট্যাটিক ফাইনাল FloatDataLayout < ShortDataBuffer > BFLOAT16 16-বিট বিফ্লোটগুলিকে সংক্ষিপ্ত মানগুলিতে/থেকে রূপান্তর করার জন্য ডেটা লেআউট।
পাবলিক স্ট্যাটিক ফাইনাল বুলিয়ানডেটা লেআউট < বাইটডেটাবাফার > বুল বুলিয়ানকে বাইট মান থেকে/থেকে রূপান্তরের জন্য ডেটা লেআউট।
পাবলিক স্ট্যাটিক ফাইনাল FloatDataLayout < ShortDataBuffer > FLOAT16 16-বিট হাফ ফ্লোটগুলিকে সংক্ষিপ্ত মানগুলিতে/থেকে রূপান্তর করার জন্য ডেটা লেআউট।

পাবলিক কনস্ট্রাক্টর

পাবলিক পদ্ধতি

স্ট্যাটিক ডেটা লেআউট < ডেটাবাফার <বাইট[]>, স্ট্রিং>
অফস্ট্রিংস (অক্ষর সেট অক্ষর সেট)
বাইট সিকোয়েন্সে/থেকে স্ট্রিং রূপান্তর করার জন্য একটি ডেটা লেআউট তৈরি করে।

উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি

ক্ষেত্র

সর্বজনীন স্ট্যাটিক চূড়ান্ত FloatDataLayout < ShortDataBuffer > BFLOAT16

16-বিট বিফ্লোটগুলিকে সংক্ষিপ্ত মানগুলিতে/থেকে রূপান্তর করার জন্য ডেটা লেআউট।

এই ফর্ম্যাটটি টেনসরফ্লো-এর জন্য নির্দিষ্ট ছিল কিন্তু এখন মেশিন লার্নিং ক্ষেত্রে আরও বিস্তৃতভাবে গৃহীত হয়েছে। এটি একক-নির্ভুলতা 32-বিট ফ্লোটিং পয়েন্টগুলির সাথে দ্রুত রূপান্তরের জন্য অপ্টিমাইজ করা হয়েছে কেবলমাত্র তাদের মান পরিবর্তন করে এবং ম্যান্টিসাকে শুধুমাত্র 7 বিটে ছোট করে।

অতএব, এটি IEEE-754 অর্ধ-নির্ভুল ফ্লোটিং পয়েন্ট স্পেসিফিকেশনের তুলনায় ভগ্নাংশের অংশে নির্ভুলতা হারিয়েছে ( FLOAT16 দেখুন তবে পুরো অংশে এটির সম্ভাব্য মানগুলির একটি বড় পরিসর রয়েছে কারণ এটি 8-বিট সূচক সংরক্ষণ করে এবং ব্যবহার করে। একই পক্ষপাত, (অর্থাৎ আনুমানিক [10 -40 , 3.39 × 10 38 ] এর 0 এর উপরে একটি পরম পরিসর

কিছু CPUs ভাল পারফরম্যান্সের জন্য স্থানীয়ভাবে bfloat16 বিন্যাস সমর্থন করে।

পাবলিক স্ট্যাটিক ফাইনাল বুলিয়ানডেটা লেআউট < বাইটডেটাবাফার > বুল

বুলিয়ানকে বাইট মান থেকে/থেকে রূপান্তরের জন্য ডেটা লেআউট।

যেহেতু কোন জাভা NIO বুলিয়ান বাফার নেই, তাই এই লেআউটটি বুলিয়ানের মান মানক বাইট বাফারে ম্যাপ করার জন্য বিশেষভাবে উপযোগী। একটি বুলিয়ান এবং একটি বাইটের মধ্যে রূপান্তরের জন্য স্পষ্ট টাইপ কাস্টিং প্রয়োজন।

পাবলিক স্ট্যাটিক ফাইনাল FloatDataLayout < ShortDataBuffer > FLOAT16

16-বিট হাফ ফ্লোটগুলিকে সংক্ষিপ্ত মানগুলিতে/থেকে রূপান্তর করার জন্য ডেটা লেআউট।

IEEE-754 অর্ধ-নির্ভুল ফ্লোটিং পয়েন্ট স্পেসিফিকেশন অনুযায়ী অর্ধেক ফ্লোট মেমরিতে সংরক্ষণ করা হয় এবং ব্যবহারকারী স্পেসে 32-বিট ফ্লোটে/থেকে রূপান্তরিত হয়।

একটি একক ফ্লোট (32-বিট) কে হাফ ফ্লোটে (16-বিট) রূপান্তর করার সময় নির্ভুলতার সম্ভাব্য ক্ষতি হয়। একটি হাফ ফ্লোটের জন্য 0 এর উপরে মানের সম্পূর্ণ পরিসীমা প্রায় [5.96 × 10 -8 , 6.55 × 10 4 ] এবং তাদের দশমিক অংশটি 10 ​​বিট ম্যান্টিসা পর্যন্ত বৃত্তাকার।

সাধারণভাবে, অর্ধেক ফ্লোট গণনা GPU-তে আরও ভাল কার্য সম্পাদন করে যেহেতু, সাধারণভাবে, CPU গুলি এই বিন্যাসটিকে স্থানীয়ভাবে সমর্থন করে না।

পাবলিক কনস্ট্রাক্টর

সর্বজনীন ডেটা লেআউট ()

পাবলিক পদ্ধতি

পাবলিক স্ট্যাটিক ডেটা লেআউট < ডেটাবাফার <বাইট[]>, স্ট্রিং> অফ স্ট্রিংস (অক্ষর সেট)

বাইট সিকোয়েন্সে/থেকে স্ট্রিং রূপান্তর করার জন্য একটি ডেটা লেআউট তৈরি করে।

বাইট সিকোয়েন্স হিসাবে স্ট্রিংগুলিকে কীভাবে এনকোড/ডিকোড করা উচিত তা নির্দিষ্ট করার জন্য এই বিন্যাসের প্যারামিটারে একটি charset প্রয়োজন। তাই একটি নতুন লেআউট উদাহরণ সর্বদা ফেরত দেওয়া হয়।

পরামিতি
অক্ষর সেট ব্যবহার করার জন্য অক্ষর সেট
রিটার্নস
  • একটি নতুন স্ট্রিং লেআউট