TensorLabel

TensorLabel คลาสสาธารณะ

TensorLabel เป็น wrapper util สำหรับ TensorBuffers ที่มีป้ายกำกับที่มีความหมายบนแกน

ตัวอย่างเช่น โมเดลการจัดหมวดหมู่รูปภาพอาจมีเอาท์พุตเทนเซอร์ที่มีรูปร่างเป็น {1, 10} โดยที่ 1 คือขนาดแบตช์ และ 10 คือจำนวนหมวดหมู่ ที่จริงแล้ว บนแกนที่ 2 เราสามารถติดป้ายกำกับแต่ละเทนเซอร์ย่อยด้วยชื่อหรือคำอธิบายของแต่ละหมวดหมู่ที่เกี่ยวข้องได้ TensorLabel สามารถช่วยแปลง Tensor ธรรมดาใน TensorBuffer ให้เป็นแผนที่จากป้ายกำกับที่กำหนดไว้ล่วงหน้าไปเป็นเทนเซอร์ย่อย ในกรณีนี้ หากระบุป้ายกำกับ 10 รายการสำหรับแกนที่ 2 TensorLabel จะสามารถแปลง {1, 10} Tensor ดั้งเดิมเป็นแผนผังองค์ประกอบ 10 องค์ประกอบ ซึ่งแต่ละค่าจะเป็น Tensor ในรูปทรง {} (สเกลาร์) ตัวอย่างการใช้งาน:

   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 ( แผนที่ < จำนวนเต็ม , รายการ < สตริง >> axisLabels, TensorBuffer tensorBuffer)
สร้างวัตถุ TensorLabel ซึ่งสามารถติดป้ายกำกับบนแกนของเทนเซอร์หลายมิติได้
TensorLabel ( รายการ < สตริง > axisLabels, TensorBuffer tensorBuffer)
สร้างวัตถุ TensorLabel ซึ่งสามารถติดป้ายกำกับบนแกนเดียวของเทนเซอร์หลายมิติได้

วิธีการสาธารณะ

รายการ < หมวดหมู่ >
รับหมวดหมู่รายการ ()
รับรายการ Category จากวัตถุ TensorLabel
แผนที่ < สตริง , ลอย >
getMapWithFloatValue ()
รับแผนที่ที่แมปป้ายกำกับให้ลอย
แผนที่ < สตริง , TensorBuffer >
getMapWithTensorBuffer ()
รับแผนที่พร้อมป้ายกำกับและ TensorBuffer ที่เกี่ยวข้อง

วิธีการสืบทอด

คอนสตรัคชั่นสาธารณะ

TensorLabel สาธารณะ ( แผนที่ < จำนวนเต็ม , รายการ < สตริง >> axisLabels, TensorBuffer tensorBuffer)

สร้างวัตถุ TensorLabel ซึ่งสามารถติดป้ายกำกับบนแกนของเทนเซอร์หลายมิติได้

พารามิเตอร์
axisLabels แผนที่ซึ่งมีคีย์คือรหัสแกน (เริ่มจาก 0) และค่าเป็นป้ายกำกับที่สอดคล้องกัน หมายเหตุ: ขนาดของฉลากควรเท่ากันกับขนาดของเทนเซอร์บนแกนนั้น
เทนเซอร์บัฟเฟอร์ TensorBuffer ที่จะติดป้ายกำกับ
ขว้าง
NullPointerException ถ้า axisLabels หรือ tensorBuffer เป็นโมฆะ หรือค่าใดๆ ใน axisLabels เป็นโมฆะ
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย หากคีย์ใด ๆ ใน axisLabels อยู่นอกช่วง (เมื่อเทียบกับรูปร่างของ tensorBuffer หรือค่าใด ๆ (ป้ายกำกับ) มีขนาดแตกต่างกันด้วย tensorBuffer ในมิติที่กำหนด

TensorLabel สาธารณะ ( รายการ < สตริง > axisLabels, TensorBuffer tensorBuffer)

สร้างวัตถุ TensorLabel ซึ่งสามารถติดป้ายกำกับบนแกนเดียวของเทนเซอร์หลายมิติได้

หมายเหตุ: ป้ายจะถูกติดบนแกนแรกซึ่งมีขนาดใหญ่กว่า 1 ตัวอย่างเช่น หากรูปร่างของเทนเซอร์เป็น [1, 10, 3] ป้ายจะถูกติดบนแกน 1 (id เริ่มต้นจาก 0) และขนาดของ axisLabels ควรเป็น 10 เช่นกัน

พารามิเตอร์
axisLabels รายการป้ายกำกับ ซึ่งควรมีขนาดเท่ากันกับขนาดของเทนเซอร์บนแกนที่จะติดป้ายกำกับ
เทนเซอร์บัฟเฟอร์ TensorBuffer ที่จะติดป้ายกำกับ

วิธีการสาธารณะ

รายการ สาธารณะ < ประเภท > getCategoryList ()

รับรายการ Category จากวัตถุ TensorLabel

แกนของป้ายกำกับควรเป็นแกนสุดท้ายอย่างมีประสิทธิภาพ (ซึ่งหมายความว่าเทนเซอร์ย่อยทุกตัวที่ระบุโดยแกนนี้ควรมีขนาดแบนเท่ากับ 1) เพื่อให้เทนเซอร์ย่อยแต่ละตัวที่มีป้ายกำกับสามารถแปลงเป็นคะแนนค่าทศนิยมได้ ตัวอย่าง: TensorLabel ที่มีรูปร่าง {2, 5, 3} และแกน 2 สามารถใช้ได้ หากแกนเป็น 1 หรือ 0 จะไม่สามารถแปลงเป็น Category ได้

getMapWithFloatValue() เป็นทางเลือกหนึ่ง แต่จะส่งคืน Map เป็นผลลัพธ์

ขว้าง
IllegalStateException ถ้าขนาดของเทนเซอร์ย่อยในแต่ละฉลากไม่ใช่ 1

แผนที่ สาธารณะ < String , Float > getMapWithFloatValue ()

รับแผนที่ที่แมปป้ายกำกับให้ลอย อนุญาตเฉพาะการแมปบนแกนแรกที่มีขนาดมากกว่า 1 และแกนควรเป็นแกนสุดท้ายอย่างมีประสิทธิภาพ (ซึ่งหมายความว่าเทนเซอร์ย่อยทุกตัวที่ระบุโดยแกนนี้ควรมีขนาดเรียบเป็น 1)

getCategoryList() เป็น API ทางเลือกอื่นในการรับผลลัพธ์

ขว้าง
IllegalStateException ถ้าขนาดของเทนเซอร์ย่อยในแต่ละฉลากไม่ใช่ 1

แผนที่ สาธารณะ < String , TensorBuffer > getMapWithTensorBuffer ()

รับแผนที่พร้อมป้ายกำกับและ TensorBuffer ที่เกี่ยวข้อง อนุญาตให้แมปบนแกนแรกที่มีขนาดมากกว่า 1 ในปัจจุบันเท่านั้น