TensorLabel

herkese açık sınıf TensorLabel

TensorLabel, eksen üzerinde anlamlı etiketlere sahip TensorBuffers için bir util sarmalayıcıdır.

Örneğin, bir görüntü sınıflandırma modelinin {1, 10} şeklinde bir çıkış tensörü olabilir. Burada 1 grup boyutunu, 10 ise kategori sayısını ifade eder. Aslında, 2. eksende her bir alt tensörü, karşılık gelen her bir kategorinin adı veya açıklamasıyla etiketleyebiliriz. TensorLabel, TensorBuffer içindeki düz Tensor'ı önceden tanımlanmış etiketlerden alt tensörlere dönüştüren bir haritaya dönüştürmenize yardımcı olabilir. Bu durumda, 2. eksen için 10 etiket sağlanırsa TensorLabel orijinal {1, 10} Tensör'ü, her bir değeri {} (skaler) Tensör şeklinde olan 10 öğeli 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 tensor-eşleme dönüşümünü yalnızca boyutu 1'den büyük olan ilk etiket için destekliyoruz.

İnşaatçılar

TensorLabel(Harita<TamsayıListe<Dize>> axisLabel, TensorBuffer tensorBuffer)
Çok boyutlu tensörlerin eksenlerinde etiketleyebilen bir TensorLabel nesnesi oluşturur.
TensorLabel(Liste<Dize> axisLabel, TensorBuffer tensorBuffer)
Çok boyutlu tensörlerin bir ekseninde etiketleyebilen bir TensorLabel nesnesi oluşturur.

Herkese Açık Yöntemler

List<Category>
getCategoryList()
TensorLabel nesnesinden Category listesini alır.
Map<StringFloat>
getMapWithFloatValue()
Etiketi kayan öğe ile eşleyen bir harita alır.
Map<StringTensorBuffer>
getMapWithTensorBuffer()
Haritayı bir çift etiket ve ilgili TensorBuffer ile alır.

Devralınan Yöntemler

İnşaatçılar

herkese açık TensorLabel (Harita<TamsayıListe<Dize> axisLabels, TensorBuffer tensorBuffer)

Çok boyutlu tensörlerin eksenlerinde etiketleyebilen bir TensorLabel nesnesi oluşturur.

Parametreler
axisLabels Anahtarı eksen kimliği (0'dan başlayan) ve değeri karşılık gelen etiketler olan bir harita. Not: Etiketlerin boyutu, ilgili eksendeki tensörün boyutuyla aynı olmalıdır.
tensorBuffer Etiketlenecek TensorBuffer.
Dekoratif yastıklar
NullPointerException axisLabels veya tensorBuffer null ise ya da axisLabels içindeki herhangi bir değer null ise.
IllegalArgumentException axisLabels işlevindeki herhangi bir anahtar aralık dışındaysa (tensorBuffer şekline kıyasla) veya herhangi bir değer (etiketler) belirtilen boyutta tensorBuffer ile farklı bir boyuta sahipse.

herkese açık TensorLabel (Liste<Dize> axisLabels, TensorBuffer tensorBuffer)

Çok boyutlu tensörlerin bir ekseninde etiketleyebilen bir TensorLabel nesnesi oluşturur.

Not: Etiketler, boyutu 1'den büyük olan ilk eksene uygulanır. Örneğin, tensörün şekli [1, 10, 3] ise etiketler 1. eksene uygulanır (kimlik 0'dan başlar) ve axisLabels boyutu da 10 olmalıdır.

Parametreler
axisLabels Boyutlarının etiketlenecek eksendeki tensör boyutuyla aynı olması gereken etiket listesi.
tensorBuffer Etiketlenecek TensorBuffer.

Herkese Açık Yöntemler

herkese açık Liste<Kategori> getCategoryList ()

TensorLabel nesnesinden Category listesini alır.

Etiket ekseni etkin bir şekilde son eksen olmalıdır (yani bu eksen tarafından belirtilen her alt tensörün düz boyutu 1 olmalıdır). Böylece etiketlenen her alt tensör bir kayan değer puanına dönüştürülebilir. Örnek: {2, 5, 3} şekline sahip ve 2. ekseni geçerli olan bir TensorLabel. Eksen 1 veya 0 ise Category biçimine dönüştürülemez.

getMapWithFloatValue() alternatif bir çözümdür ancak sonuç olarak bir Map döndürür.

Dekoratif yastıklar
IllegalStateException her etiketteki bir alt tensörün boyutu 1 değilse.

herkese açık Harita<StringKayan> getMapWithFloatValue ()

Etiketi kayan öğe ile eşleyen bir harita alır. Eşlemeye yalnızca boyutu 1'den büyük olan ilk eksende izin verin. Eksen, etkin bir şekilde son eksen olmalıdır (yani bu eksen tarafından belirtilen her alt tensör boyutu 1'dir).

getCategoryList(), sonucu almak için alternatif bir API'dir.

Dekoratif yastıklar
IllegalStateException her etiketteki bir alt tensörün boyutu 1 değilse.

herkese açık Harita<StringTensorBuffer> getMapWithTensorBuffer ()

Haritayı bir çift etiket ve ilgili TensorBuffer ile alır. Eşlemeye şu anda yalnızca boyutu 1'den büyük olan ilk eksende izin verin.