TensorLabel, TensorBuffer'lar için bir eksen üzerinde anlamlı etiketler içeren bir kullanım sarıcıdır.
Örneğin, bir görüntü sınıflandırma modeli, şekli {1, 10} olan bir çıktı tensörüne sahip olabilir; burada 1, toplu iş boyutu ve 10, kategori sayısıdır. Aslında 2. eksende her bir alt tensörü ilgili kategorinin adı veya açıklamasıyla etiketleyebiliriz. TensorLabel
TensorBuffer
düz Tensor'u önceden tanımlanmış etiketlerden alt tensörlere kadar bir haritaya dönüştürmeye yardımcı olabilir. Bu durumda, 2. eksen için 10 etiket sağlanırsa TensorLabel
, orijinal {1, 10} Tensörünü, her değeri {} (skaler) şeklinde Tensör olan 10 öğeli bir haritaya dönüştürebilir. Kullanım örneği:
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();
Not: Şu anda yalnızca boyutu 1'den büyük olan ilk etiket için tensörden haritaya dönüştürmeyi destekliyoruz.
Kamu İnşaatçıları
TensorLabel ( Harita < Tamsayı , Liste < Dize >> axisLabels, TensorBuffer tensorBuffer) Çok boyutlu tensörlerin eksenlerini etiketleyebilen bir TensorLabel nesnesi oluşturur. | |
TensorLabel ( Liste < String > axisLabels, TensorBuffer tensorBuffer) Çok boyutlu tensörlerin bir ekseninde etiketleme yapabilen bir TensorLabel nesnesi oluşturur. |
Genel Yöntemler
Liste < Kategori > | getCategoryList () TensorLabel nesnesinden Category listesini alır. |
Harita < Dize , Kayan Nokta > | getMapWithFloatValue () Etiketi kayan noktaya eşleyen bir harita alır. |
Harita < String , TensorBuffer > | getMapWithTensorBuffer () Haritayı bir çift etiket ve karşılık gelen TensorBuffer ile alır. |
Kalıtsal Yöntemler
Kamu İnşaatçıları
public TensorLabel ( Harita < Tamsayı , Liste < String >> axisLabels, TensorBuffer tensorBuffer)
Çok boyutlu tensörlerin eksenlerini etiketleyebilen bir TensorLabel nesnesi oluşturur.
Parametreler
eksenEtiketler | Anahtarı eksen kimliği (0'dan başlayarak) ve değeri karşılık gelen etiketler olan bir harita. Not: Etiketlerin boyutu o eksendeki tensörün boyutuyla aynı olmalıdır. |
---|---|
tensör Tamponu | Etiketlenecek TensorBuffer. |
Atar
NullPointerException | axisLabels veya tensorBuffer null ise veya axisLabels içindeki herhangi bir değer null ise. |
---|---|
YasadışıTartışmaİstisna | axisLabels içindeki herhangi bir anahtar aralık dışındaysa ( tensorBuffer şekliyle karşılaştırıldığında veya herhangi bir değer (etiket), verilen boyutta tensorBuffer ile farklı boyuta sahipse. |
public TensorLabel ( Liste < String > axisLabels, TensorBuffer tensorBuffer)
Çok boyutlu tensörlerin bir ekseninde etiketleme yapabilen bir TensorLabel nesnesi oluşturur.
Not: Etiketler boyutu 1'den büyük olan birinci eksene uygulanır. Örneğin tensörün şekli [1, 10, 3] ise etiketler eksen 1'e (id 0'dan başlayarak) uygulanacaktır, ve axisLabels
boyutu da 10 olmalıdır.
Parametreler
eksenEtiketler | Boyutu etiketlenecek eksendeki tensörün boyutuyla aynı olması gereken etiketlerin listesi. |
---|---|
tensör Tamponu | Etiketlenecek TensorBuffer. |
Genel Yöntemler
genel Liste < Kategori > getCategoryList ()
TensorLabel
nesnesinden Category
listesini alır.
Etiket ekseni etkili bir şekilde son eksen olmalıdır (bu, bu eksen tarafından belirtilen her alt tensörün düz boyutunun 1 olması gerektiği anlamına gelir), böylece her etiketli alt tensör, kayan değer puanına dönüştürülebilir. Örnek: Şekil {2, 5, 3}
ve eksen 2 olan bir TensorLabel
geçerlidir. Eksen 1 veya 0 ise Category
dönüştürülemez.
getMapWithFloatValue()
bir alternatiftir ancak sonuç olarak bir Map
döndürür.
Atar
Yasadışı Durum İstisnası | her etiketteki alt tensörün boyutu 1 değilse. |
---|
genel Harita < String , Float > getMapWithFloatValue ()
Etiketi kayan noktaya eşleyen bir harita alır. Yalnızca boyutu 1'den büyük olan ilk eksende eşleme yapılmasına izin verin; eksen etkili bir şekilde son eksen olmalıdır (bu, bu eksen tarafından belirtilen her alt tensörün düz boyutunun 1 olması gerektiği anlamına gelir).
getCategoryList()
sonucu almak için alternatif bir API'dir.
Atar
Yasadışı Durum İstisnası | her etiketteki alt tensörün boyutu 1 değilse. |
---|
genel Harita < String , TensorBuffer > getMapWithTensorBuffer ()
Haritayı bir çift etiket ve karşılık gelen TensorBuffer ile alır. Şu anda yalnızca boyutu 1'den büyük olan ilk eksende eşleme yapılmasına izin verin.