TensorLabel adalah wrapper util untuk TensorBuffers dengan label yang bermakna pada sumbu.
Misalnya, model klasifikasi gambar mungkin memiliki tensor output dengan bentuk {1, 10},
di mana 1 adalah ukuran tumpukan dan 10 adalah jumlah kategori. Bahkan, pada sumbu ke-2, kita bisa
melabeli setiap sub-tensor dengan nama atau deskripsi dari setiap kategori yang sesuai. TensorLabel dapat membantu mengonversi Tensor biasa di TensorBuffer menjadi peta dari
label yang telah ditetapkan
ke sub-tensor. Dalam hal ini, jika memberikan 10 label untuk sumbu ke-2, TensorLabel dapat mengonversi Tensor {1, 10} asli menjadi peta dengan 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-ke-peta 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(List<String> axisLabels, TensorBuffer tensor)
Membuat objek TensorLabel yang dapat memberi label pada satu sumbu tensor multi-dimensi.
|
Metode Publik
| Daftar<Kategori> |
getCategoryList()
Mendapatkan daftar
Category dari objek TensorLabel. |
| Peta<String, Mengambang> |
getMapWithFloatValue()
Mendapatkan peta yang memetakan label agar mengambang.
|
| Peta<String, TensorBuffer> |
getMapWithTensorBuffer()
Mendapatkan peta dengan sepasang label dan TensorBuffer yang sesuai.
|
Metode Turunan
Konstruktor Publik
publik TensorLabel (Map<Bilangan Bulat, Daftar<String>> axisLabels, TensorBuffer tensorBuffer)
Membuat objek TensorLabel yang dapat memberi label pada sumbu tensor multi-dimensi.
Parameter
| axisLabels | Peta yang kuncinya adalah ID sumbu (mulai dari 0) dan nilainya sesuai label. Catatan: Ukuran label harus sama dengan ukuran tensor pada sumbu tersebut. |
|---|---|
| tensorBuffer | TensorBuffer yang akan diberi label. |
Menampilkan
| NullPointerException | jika axisLabels atau tensorBuffer adalah null, atau salah
nilai dalam axisLabels adalah null. |
|---|---|
| IllegalArgumentException | jika kunci apa pun dalam axisLabels berada di luar rentang (dibandingkan dengan
bentuk tensorBuffer, atau nilai apa pun (label) memiliki ukuran yang berbeda dengan tensorBuffer pada dimensi yang diberikan.
|
publik TensorLabel (Daftar<String> axisLabels, TensorBuffer tensorBuffer)
Membuat objek TensorLabel yang dapat memberi 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 mulai 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 yang akan diberi label. |
Metode Publik
publik Daftar<Kategori> getCategoryList ()
Mendapatkan daftar Category dari objek TensorLabel.
Sumbu label harus secara efektif menjadi sumbu terakhir (yang berarti setiap sub-tensor
yang ditentukan oleh sumbu ini harus memiliki ukuran datar 1), sehingga setiap sub-tensor berlabel
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. |
|---|
publik Peta<String, Mengambang> getMapWithFloatValue ()
Mendapatkan peta yang memetakan label agar mengambang. Hanya izinkan pemetaan pada sumbu pertama dengan ukuran yang lebih besar dari 1, dan sumbunya harus secara efektif menjadi sumbu terakhir (yang berarti setiap sub-tensor yang ditentukan oleh sumbu ini harus memiliki ukuran tetap 1).
getCategoryList() adalah API alternatif untuk mendapatkan hasil.
Menampilkan
| IllegalStateException | jika ukuran sub tensor pada setiap label bukan 1. |
|---|
publik Peta<String, TensorBuffer> getMapWithTensorBuffer ()
Mendapatkan peta dengan sepasang label dan TensorBuffer yang sesuai. Hanya izinkan pemetaan pada sumbu pertama dengan ukuran lebih besar dari 1 saat ini.