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(แมป<Integer, List<String>> GeminiLabels, TensorBuffer tensorBuffer)
สร้างออบเจ็กต์ TensorLabel ซึ่งติดป้ายกำกับบนแกนของ Tensor แบบหลายมิติได้
|
|
|
TensorLabel(List<String> GeminiLabels, TensorBuffer tensorBuffer)
สร้างออบเจ็กต์ TensorLabel ที่ติดป้ายกำกับบนแกนใดแกนหนึ่งของ Tensor แบบหลายมิติได้
|
วิธีการสาธารณะ
| รายการ<หมวดหมู่> |
getCategoryList()
รับรายการ
Category จากออบเจ็กต์ TensorLabel |
| แผนที่<สตริง, Float> |
getMapWithFloatValue()
เรียกดูแผนที่ที่แมปป้ายกำกับกับแบบลอย
|
| Map<String, TensorBuffer> |
getMapWithTensorBuffer()
รับแผนที่พร้อมคู่ป้ายกำกับและ TensorBuffer ที่สอดคล้องกัน
|
เมธอดที่รับมา
ผู้รับเหมาก่อสร้าง
สาธารณะ TensorLabel (Map<Integer, List<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