TensorLabel

klasa publiczna TensorLabel

TensorLabel to kod narzędziowy TensorBuffers z przydatnymi etykietami na osi.

Na przykład model klasyfikacji obrazów może mieć tensor wyjściowy o kształcie równym {1, 10}, gdzie 1 to rozmiar wsadu, a 10 to liczba kategorii. Na drugiej osi mogliśmy oznacz poszczególne składniki podrzędne nazwami lub opisami odpowiednich kategorii. TensorLabel może pomóc w przekształceniu zwykłego procesora Tensor w TensorBuffer na mapę z wstępnie zdefiniowanych etykiet do podrzędników. W tym przypadku, jeśli podano 10 etykiet dla 2 osi, funkcja TensorLabel może przekonwertować oryginalny Tensor {1, 10} na mapę z 10 elementami, której wartości to Tensor w kształcie {} (skalarny). Przykład zastosowania:

   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();
 

Uwaga: obecnie obsługujemy tylko konwersje z tensora na mapowanie w przypadku pierwszej etykiety o rozmiarze większym niż 1.

Konstruktorki publiczne

TensorLabel(Map <Liczba całkowitaLista<Ciąg>> axisAttributes, TensorBuffer tensorBuffer)
Tworzy obiekt TensorLabel, który można oznaczać etykietami na osiach tensorów wielowymiarowych.
TensorLabel(List<String> axis labels, TensorBuffer tensorBuffer)
Tworzy obiekt TensorLabel, który można oznaczać etykietami na jednej osi tensorów wielowymiarowych.

Metody publiczne

List<Kategoria>
getCategoryList()
Pobiera listę wartości Category z obiektu TensorLabel.
Map<StringFloat> (Mapa)
getMapWithFloatValue()
Pobiera mapę, która mapuje etykietę na pływającą.
Map<StringTensorBuffer> (Mapa)
getMapWithTensorBuffer()
Pobiera mapę z parą etykiety i odpowiednim TensorBuffer.

Metody dziedziczone

Konstruktorki publiczne

publiczne . TensorLabel (Mapa <liczba całkowitalista<Ciąg>> axislines, TensorBuffer tensorBuffer)

Tworzy obiekt TensorLabel, który można oznaczać etykietami na osiach tensorów wielowymiarowych.

Parametry
axisLabels Mapa, której klucz to identyfikator osi (zaczynający się od 0) i odpowiadającą mu wartość etykiety. Uwaga: rozmiar etykiet powinien być taki sam jak rozmiar tensora na tej osi.
tensorBuffer TensorBuffer, który ma zostać oznaczony etykietą.
Rzuty
NullPointerException jeśli axisLabels lub tensorBuffer ma wartość null lub dowolną wartość w funkcji axisLabels jest pusta.
IllegalArgumentException jeśli dowolny klucz w funkcji axisLabels jest poza zakresem (w porównaniu z kształt elementu tensorBuffer lub dowolna wartość (etykiety) ma inny rozmiar z tensorBuffer w danym wymiarze.

publiczne . TensorLabel (List<String> axis labels, TensorBuffer tensorBuffer)

Tworzy obiekt TensorLabel, który można oznaczać etykietami na jednej osi tensorów wielowymiarowych.

Uwaga: etykiety są stosowane na pierwszej osi, której rozmiar jest większy niż 1. Na przykład, jeśli kształt tensora to [1, 10, 3], etykiety zostaną zastosowane na osi 1 (identyfikator zaczynający się od 0), a rozmiar axisLabels również powinien wynosić 10.

Parametry
axisLabels Lista etykiet, których rozmiar powinien być taki sam jak rozmiar tensora na osi oznaczonej etykietą.
tensorBuffer TensorBuffer, który ma zostać oznaczony etykietą.

Metody publiczne

publiczne List<Kategoria> . getCategoryList ()

Pobiera listę wartości Category z obiektu TensorLabel.

Oś etykiety powinna być ostatnią osią (co oznacza, że każdy tensor podrzędny określony przez tę oś powinien mieć płaski rozmiar 1), tak aby każdy oznaczony tensor podrzędny mógł zostać na wartość zmiennoprzecinkową. Przykład: TensorLabel o kształcie {2, 5, 3} a oś 2 jest prawidłowa. Jeśli oś ma wartość 1 lub 0, nie można jej przekształcić w Category.

getMapWithFloatValue() jest alternatywą, ale zwraca Map jako w konsekwencji wyniku.

Rzuty
IllegalStateException jeśli rozmiar tensora podrzędnego na każdej etykiecie nie wynosi 1.

publiczne Map<StringFloat> getMapWithFloatValue ()

Pobiera mapę, która mapuje etykietę na pływającą. Zezwalaj na mapowanie tylko na pierwszej osi o większym rozmiarze niż 1, przy czym oś powinna być ostatnią osią (co oznacza, że każdy tensor podrzędny określony przez tę oś powinien mieć płaski rozmiar 1).

getCategoryList() to alternatywny interfejs API pozwalający uzyskać wynik.

Rzuty
IllegalStateException jeśli rozmiar tensora podrzędnego na każdej etykiecie nie wynosi 1.

publiczne Map<StringTensorBuffer> getMapWithTensorBuffer ()

Pobiera mapę z parą etykiety i odpowiednim TensorBuffer. Zezwalaj tylko na na pierwszej osi o rozmiarze większym niż 1.