TensorLabel adalah wrapper utilitas untuk TensorBuffers dengan label yang bermakna pada sumbu.
Misalnya, model klasifikasi gambar mungkin memiliki tensor output dengan bentuk {1, 10}, dengan 1 sebagai ukuran tumpukan dan 10 sebagai jumlah kategori. Bahkan, pada sumbu ke-2, kita dapat
memberi label setiap sub-tensor dengan nama atau deskripsi setiap kategori yang sesuai. TensorLabel
dapat membantu mengonversi Tensor biasa di TensorBuffer
menjadi peta dari label bawaan ke sub-tensor. Dalam hal ini, jika disediakan 10 label untuk sumbu ke-2, TensorLabel
dapat mengonversi {1, 10} Tensor asli menjadi peta 10 elemen, yang masing-masing nilainya adalah Tensor dalam bentuk {} (skalar). Contoh penggunaan:
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();
Catatan: saat ini kami hanya mendukung konversi tensor-to-map untuk label pertama dengan ukuran lebih besar dari 1.
Konstruktor Publik
TensorLabel(Map<Integer, List<String>> axisLabels, TensorBuffer tensorBuffer)
Membuat objek TensorLabel yang dapat memberi label pada sumbu tensor multi-dimensi.
|
|
TensorLabel(Daftar<String> axisLabels, tensorBuffer TensorBuffer)
Membuat objek TensorLabel yang dapat memberikan label pada satu sumbu tensor multi-dimensi.
|
Metode Publik
List<Category> |
getCategoryList()
Mendapatkan daftar
Category dari objek TensorLabel . |
Map<String, Float> |
getMapWithFloatValue()
Mendapatkan peta yang memetakan label ke mengambang.
|
Map<String, TensorBuffer> |
getMapWithTensorBuffer()
Mendapatkan peta dengan sepasang label dan TensorBuffer yang sesuai.
|
Metode Turunan
Konstruktor Publik
public TensorLabel (Peta<Bilangan Bulat, Daftar<String>> axisLabels, TensorBuffer tensorBuffer)
Membuat objek TensorLabel yang dapat memberi label pada sumbu tensor multi-dimensi.
Parameter
axisLabels | Sebuah peta, yang kuncinya adalah ID sumbu (dimulai dari 0) dan nilainya adalah label yang sesuai. Catatan: Ukuran label harus sama dengan ukuran tensor pada sumbu tersebut. |
---|---|
tensorBuffer | TensorBuffer akan diberi label. |
Menampilkan
NullPointerException | jika axisLabels atau tensorBuffer adalah null, atau
nilai apa pun di axisLabels adalah null. |
---|---|
IllegalArgumentException | jika kunci dalam axisLabels berada di luar rentang (dibandingkan dengan bentuk tensorBuffer , atau nilai apa pun (label) memiliki ukuran berbeda dengan tensorBuffer pada dimensi yang diberikan.
|
public TensorLabel (List<String> axisLabels, TensorBuffer tensorBuffer)
Membuat objek TensorLabel yang dapat memberikan label pada satu sumbu tensor multi-dimensi.
Catatan: Label diterapkan pada sumbu pertama yang ukurannya lebih besar dari 1. Misalnya, jika bentuk tensor adalah [1, 10, 3], label akan diterapkan pada sumbu 1 (ID dimulai dari 0), dan ukuran axisLabels
juga harus 10.
Parameter
axisLabels | Daftar label, yang ukurannya harus sama dengan ukuran tensor pada sumbu yang akan diberi label. |
---|---|
tensorBuffer | TensorBuffer akan diberi label. |
Metode Publik
publik Daftar<Kategori> getCategoryList ()
Mendapatkan daftar Category
dari objek TensorLabel
.
Sumbu label seharusnya merupakan sumbu terakhir secara efektif (yang berarti setiap sub tensor
yang ditentukan oleh sumbu ini harus memiliki ukuran datar 1), sehingga setiap sub tensor berlabel dapat
dikonversi menjadi skor nilai float. Contoh: TensorLabel
dengan bentuk {2, 5, 3}
dan sumbu 2 valid. Jika sumbunya adalah 1 atau 0, sumbu tersebut tidak dapat dikonversi menjadi Category
.
getMapWithFloatValue()
adalah alternatif, tetapi menampilkan Map
sebagai
hasilnya.
Menampilkan
IllegalStateException | jika ukuran sub tensor pada setiap label bukan 1. |
---|
public Peta<String, Float> getMapWithFloatValue ()
Mendapatkan peta yang memetakan label ke mengambang. Hanya izinkan pemetaan pada sumbu pertama dengan ukuran lebih besar dari 1, dan sumbu tersebut harus secara efektif merupakan sumbu terakhir (yang berarti setiap tensor sub yang ditentukan oleh sumbu ini harus memiliki ukuran datar 1).
getCategoryList()
adalah API alternatif untuk mendapatkan hasil.
Menampilkan
IllegalStateException | jika ukuran sub tensor pada setiap label bukan 1. |
---|
public Map<String, TensorBuffer> getMapWithTensorBuffer ()
Mendapatkan peta dengan sepasang label dan TensorBuffer yang sesuai. Hanya izinkan pemetaan pada sumbu pertama dengan ukuran yang lebih besar dari 1 saat ini.