TensorLabel

کلاس عمومی TensorLabel

TensorLabel یک پوشش کاربردی برای TensorBuffer با برچسب های معنی دار روی یک محور است.

برای مثال، یک مدل طبقه‌بندی تصویر ممکن است یک تانسور خروجی با شکل {1، 10} داشته باشد، که در آن 1 اندازه دسته و 10 تعداد دسته‌ها است. در واقع، در محور دوم، می‌توانیم هر تانسور فرعی را با نام یا شرح هر دسته مربوطه برچسب‌گذاری کنیم. TensorLabel می تواند به تبدیل Tensor ساده در 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 پشتیبانی می کنیم.

سازندگان عمومی

TensorLabel ( Map < Integer , List < String >> axisLabels, TensorBuffer tensorBuffer)
یک شی TensorLabel ایجاد می کند که می تواند بر روی محورهای تانسورهای چند بعدی برچسب بزند.
TensorLabel ( List < String > axisLabels, TensorBuffer tensorBuffer)
یک شی TensorLabel ایجاد می کند که می تواند روی یک محور تانسورهای چند بعدی برچسب گذاری کند.

روش های عمومی

فهرست < دسته >
getCategoryList ()
لیستی از Category را از شی TensorLabel دریافت می کند.
نقشه < رشته ، شناور >
getMapWithFloatValue ()
نقشه ای دریافت می کند که برچسب را برای شناور نقشه می کشد.
نقشه < رشته ، TensorBuffer >
getMapWithTensorBuffer ()
نقشه را با یک جفت برچسب و TensorBuffer مربوطه دریافت می کند.

روش های ارثی

سازندگان عمومی

public TensorLabel ( Map < Integer , List < String >> axisLabels, TensorBuffer tensorBuffer)

یک شی TensorLabel ایجاد می کند که می تواند بر روی محورهای تانسورهای چند بعدی برچسب بزند.

مولفه های
برچسب های محور نقشه ای که کلید آن شناسه محور (شروع از 0) و مقدار آن برچسب های مربوطه است. توجه: اندازه برچسب ها باید با اندازه تانسور در آن محور یکسان باشد.
تنسور بافر TensorBuffer که باید برچسب گذاری شود.
پرتاب می کند
NullPointerException اگر axisLabels یا tensorBuffer تهی باشد یا هر مقداری در axisLabels تهی باشد.
IllegalArgumentException اگر هر کلیدی در axisLabels خارج از محدوده باشد (در مقایسه با شکل tensorBuffer ، یا هر مقدار (برچسب) با tensorBuffer در بعد داده شده اندازه متفاوتی داشته باشد.

عمومی TensorLabel ( لیست < رشته > axisLabels، TensorBuffer tensorBuffer)

یک شی TensorLabel ایجاد می کند که می تواند روی یک محور تانسورهای چند بعدی برچسب گذاری کند.

توجه: برچسب ها روی اولین محوری که اندازه آن بزرگتر از 1 است اعمال می شود. به عنوان مثال، اگر شکل تانسور [1، 10، 3] باشد، برچسب ها روی محور 1 اعمال می شوند (id از 0 شروع می شود). و اندازه axisLabels نیز باید 10 باشد.

مولفه های
برچسب های محور فهرستی از برچسب‌ها که اندازه آنها باید با اندازه تانسور در محور مورد برچسب برابر باشد.
تنسور بافر TensorBuffer که باید برچسب گذاری شود.

روش های عمومی

فهرست عمومی < دسته > getCategoryList ()

لیستی از Category را از شی TensorLabel دریافت می کند.

محور برچسب باید به طور موثر آخرین محور باشد (به این معنی که هر تانسور فرعی مشخص شده توسط این محور باید اندازه مسطح 1 داشته باشد)، به طوری که هر تانسور فرعی برچسب‌گذاری شده می‌تواند به یک امتیاز ارزش شناور تبدیل شود. مثال: یک TensorLabel با شکل {2, 5, 3} و محور 2 معتبر است. اگر محور 1 یا 0 باشد، نمی توان آن را به یک Category تبدیل کرد.

getMapWithFloatValue() یک جایگزین است اما یک Map به عنوان نتیجه برمی گرداند.

پرتاب می کند
IllegalStateException اگر اندازه تانسور فرعی روی هر برچسب 1 نباشد.

نقشه عمومی < رشته ، شناور > getMapWithFloatValue ()

نقشه ای دریافت می کند که برچسب را برای شناور نقشه می کشد. فقط اجازه دهید که نگاشت در اولین محور با اندازه بزرگتر از 1 باشد و محور باید به طور موثر آخرین محور باشد (به این معنی که هر تانسور فرعی مشخص شده توسط این محور باید اندازه مسطح 1 داشته باشد).

getCategoryList() یک API جایگزین برای دریافت نتیجه است.

پرتاب می کند
IllegalStateException اگر اندازه تانسور فرعی روی هر برچسب 1 نباشد.

نقشه عمومی < رشته ، TensorBuffer > getMapWithTensorBuffer ()

نقشه را با یک جفت برچسب و TensorBuffer مربوطه دریافت می کند. فقط اجازه نگاشت در اولین محور با اندازه بزرگتر از 1 در حال حاضر را بدهید.