TensorLabel

ชั้นเรียนสาธารณะ TensorLabel

TensorLabel เป็นยูทิลิตี้ Wrapper สำหรับ TensorBuffers ที่มีป้ายกำกับที่สื่อความหมายบนแกน

ตัวอย่างเช่น โมเดลการจัดประเภทรูปภาพอาจมี tensor เอาต์พุตที่มีรูปร่างเป็น {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();
 

หมายเหตุ: ปัจจุบันเรารองรับเฉพาะการแปลง tensor-to-map สำหรับป้ายกำกับแรกที่มีขนาดใหญ่กว่าเท่านั้น 1.

ผู้รับเหมาก่อสร้าง

TensorLabel(แมป<IntegerList<String>> GeminiLabels, TensorBuffer tensorBuffer)
สร้างออบเจ็กต์ TensorLabel ซึ่งติดป้ายกำกับบนแกนของ Tensor แบบหลายมิติได้
TensorLabel(List<String> GeminiLabels, TensorBuffer tensorBuffer)
สร้างออบเจ็กต์ TensorLabel ที่ติดป้ายกำกับบนแกนใดแกนหนึ่งของ Tensor แบบหลายมิติได้

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

รายการ<หมวดหมู่>
getCategoryList()
รับรายการ Category จากออบเจ็กต์ TensorLabel
แผนที่<สตริงFloat>
getMapWithFloatValue()
เรียกดูแผนที่ที่แมปป้ายกำกับกับแบบลอย
Map<StringTensorBuffer>
getMapWithTensorBuffer()
รับแผนที่พร้อมคู่ป้ายกำกับและ TensorBuffer ที่สอดคล้องกัน

เมธอดที่รับมา

ผู้รับเหมาก่อสร้าง

สาธารณะ TensorLabel (Map<IntegerList<String>> GeminiLabels, TensorBuffer tensorBuffer)

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

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

สาธารณะ TensorLabel (รายการ<สตริง> แกนป้ายกำกับ, TensorBuffer tensorBuffer)

สร้างออบเจ็กต์ TensorLabel ที่ติดป้ายกำกับบนแกนใดแกนหนึ่งของ Tensor แบบหลายมิติได้

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

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

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

สาธารณะ รายการ<หมวดหมู่> getCategoryList ()

รับรายการ Category จากออบเจ็กต์ TensorLabel

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

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

การขว้าง
IllegalStateException หากขนาดของ Tensor ย่อยในแต่ละป้ายกำกับไม่ใช่ 1

สาธารณะ แผนที่<สตริงFloat> getMapWithFloatValue ()

เรียกดูแผนที่ที่แมปป้ายกำกับกับแบบลอย อนุญาตการแมปบนแกนแรกที่มีขนาดมากกว่าเท่านั้น มากกว่า 1 และแกนควรเป็นแกนสุดท้าย (ซึ่งหมายถึงทุก Tensor ย่อย) ที่ระบุโดยแกนนี้ควรมีขนาดระดับเดียวเท่ากับ 1)

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

การขว้าง
IllegalStateException หากขนาดของ Tensor ย่อยในแต่ละป้ายกำกับไม่ใช่ 1

สาธารณะ แมป<สตริงTensorBuffer> getMapWithTensorBuffer ()

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