TensorLabel

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

TensorLabel হল একটি অক্ষের উপর অর্থপূর্ণ লেবেল সহ TensorBuffers-এর জন্য একটি util wrapper।

উদাহরণস্বরূপ, একটি ইমেজ শ্রেণীবিভাগ মডেলের একটি আউটপুট টেনসর থাকতে পারে যার আকৃতি {1, 10}, যেখানে 1 হল ব্যাচের আকার এবং 10 হল বিভাগের সংখ্যা। প্রকৃতপক্ষে, ২য় অক্ষে, আমরা প্রতিটি সাব-টেনসরকে প্রতিটি সংশ্লিষ্ট বিভাগের নাম বা বিবরণ দিয়ে লেবেল করতে পারি। TensorLabel TensorBuffer প্লেইন টেনসরকে পূর্বনির্ধারিত লেবেল থেকে সাব-টেনসরে রূপান্তর করতে সাহায্য করতে পারে। এই ক্ষেত্রে, যদি দ্বিতীয় অক্ষের জন্য 10টি লেবেল প্রদান করা হয়, TensorLabel মূল {1, 10} টেনসরকে একটি 10 ​​উপাদান মানচিত্রে রূপান্তর করতে পারে, যার প্রতিটি মান টেনসর আকারে {} (স্কেলার)। ব্যবহারের উদাহরণ:

   TensorBuffer outputTensor = ...;
   List<String> labels = FileUtil.loadLabels(context, labelFilePath);
   // labels the first axis with size greater than one
   TensorLabel labeled = new TensorLabel(labels, outputTensor);
   // If each sub-tensor has effectively size 1, we can directly get a float value
   Map<String, Float> probabilities = labeled.getMapWithFloatValue();
   // Or get sub-tensors, when each sub-tensor has elements more than 1
   Map<String, TensorBuffer> subTensors = labeled.getMapWithTensorBuffer();
 

দ্রষ্টব্য: বর্তমানে আমরা 1 এর বেশি আকারের প্রথম লেবেলের জন্য শুধুমাত্র টেনসর-টু-ম্যাপ রূপান্তর সমর্থন করি।

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

টেনসরলেবেল ( মানচিত্র < পূর্ণসংখ্যা , তালিকা < স্ট্রিং >> অক্ষ লেবেল, টেনসরবাফার টেনসরবাফার)
একটি টেনসরলেবেল অবজেক্ট তৈরি করে যা বহুমাত্রিক টেনসরের অক্ষগুলিতে লেবেল করতে সক্ষম।
টেনসরলেবেল ( তালিকা < স্ট্রিং > অক্ষ লেবেল, টেনসরবাফার টেনসরবাফার)
একটি টেনসরলেবেল অবজেক্ট তৈরি করে যা বহুমাত্রিক টেনসরের একটি অক্ষে লেবেল করতে সক্ষম।

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

তালিকা < বিভাগ >
getCategoryList ()
TensorLabel অবজেক্ট থেকে Category একটি তালিকা পায়।
মানচিত্র < স্ট্রিং , ফ্লোট >
getMapWithFloatValue ()
একটি মানচিত্র পায় যা ফ্লোট করার জন্য মানচিত্র লেবেল করে।
মানচিত্র < স্ট্রিং , টেনসরবাফার >
getMapWithTensorBuffer ()
লেবেল এবং সংশ্লিষ্ট TensorBuffer এর একটি জোড়ার সাথে মানচিত্র পায়।

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

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

সর্বজনীন টেনসরলেবেল ( মানচিত্র < পূর্ণসংখ্যা , তালিকা < স্ট্রিং >> অক্ষ লেবেল, টেনসরবাফার টেনসরবাফার)

একটি টেনসরলেবেল অবজেক্ট তৈরি করে যা বহুমাত্রিক টেনসরের অক্ষগুলিতে লেবেল করতে সক্ষম।

পরামিতি
axisLabels একটি মানচিত্র, যার কী হল অক্ষ আইডি (0 থেকে শুরু) এবং মান হল সংশ্লিষ্ট লেবেল৷ দ্রষ্টব্য: লেবেলের আকার সেই অক্ষের টেনসরের আকারের সাথে একই হওয়া উচিত।
tensorBuffer TensorBuffer লেবেল করা হবে.
নিক্ষেপ করে
নাল পয়েন্টার ব্যতিক্রম যদি axisLabels বা tensorBuffer নাল হয়, অথবা axisLabels এর কোন মান নাল হয়।
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি axisLabels এর কোন কী রেঞ্জের বাইরে থাকে ( tensorBuffer এর আকারের তুলনায়, বা যেকোন মান (লেবেল) প্রদত্ত মাত্রার tensorBuffer এর সাথে ভিন্ন আকারের থাকে।

সর্বজনীন টেনসরলেবেল ( তালিকা < স্ট্রিং > অক্ষ লেবেল, টেনসরবাফার টেনসরবাফার)

একটি টেনসরলেবেল অবজেক্ট তৈরি করে যা বহুমাত্রিক টেনসরের একটি অক্ষে লেবেল করতে সক্ষম।

দ্রষ্টব্য: লেবেলগুলি প্রথম অক্ষে প্রয়োগ করা হয় যার আকার 1 এর চেয়ে বড়। উদাহরণস্বরূপ, যদি টেনসরের আকৃতি [1, 10, 3] হয়, তবে লেবেলগুলি অক্ষ 1-এ প্রয়োগ করা হবে (0 থেকে শুরু আইডি), এবং axisLabels আকারও 10 হওয়া উচিত।

পরামিতি
axisLabels লেবেলগুলির একটি তালিকা, যার আকার লেবেলযুক্ত অক্ষের টেনসরের আকারের সাথে একই হওয়া উচিত।
tensorBuffer TensorBuffer লেবেল করা হবে.

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

সর্বজনীন তালিকা < বিভাগ > getCategoryList ()

TensorLabel অবজেক্ট থেকে Category একটি তালিকা পায়।

লেবেলের অক্ষটি কার্যকরভাবে শেষ অক্ষ হওয়া উচিত (যার অর্থ এই অক্ষ দ্বারা নির্দিষ্ট করা প্রতিটি সাব টেনসরের একটি ফ্ল্যাট আকার 1 হওয়া উচিত), যাতে প্রতিটি লেবেলযুক্ত সাব টেনসর একটি ফ্লোট মান স্কোরে রূপান্তরিত হতে পারে। উদাহরণ: আকৃতি {2, 5, 3} এবং অক্ষ 2 সহ একটি TensorLabel বৈধ। অক্ষ 1 বা 0 হলে, এটি একটি Category রূপান্তর করা যাবে না।

getMapWithFloatValue() একটি বিকল্প কিন্তু ফলাফল হিসাবে একটি Map প্রদান করে।

নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম যদি প্রতিটি লেবেলে একটি সাব টেনসরের আকার 1 না হয়।

সর্বজনীন মানচিত্র < স্ট্রিং , ফ্লোট > getMapWithFloatValue ()

একটি মানচিত্র পায় যা ফ্লোট করার জন্য মানচিত্র লেবেল করে। শুধুমাত্র প্রথম অক্ষে 1 এর চেয়ে বড় আকারের ম্যাপিংয়ের অনুমতি দিন এবং অক্ষটি কার্যকরভাবে শেষ অক্ষ হতে হবে (যার মানে এই অক্ষ দ্বারা নির্দিষ্ট করা প্রতিটি সাব টেনসরের 1 এর সমতল আকার থাকা উচিত)।

getCategoryList() ফলাফল পেতে একটি বিকল্প API।

নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম যদি প্রতিটি লেবেলে একটি সাব টেনসরের আকার 1 না হয়।

সর্বজনীন মানচিত্র < স্ট্রিং , টেনসরবাফার > getMapWithTensorBuffer ()

লেবেল এবং সংশ্লিষ্ট TensorBuffer এর একটি জোড়ার সাথে মানচিত্র পায়। শুধুমাত্র প্রথম অক্ষে ম্যাপিংয়ের অনুমতি দিন যার আকার বর্তমানে 1-এর বেশি।