TensorLabel

Öffentliche Klasse TensorLabel

TensorLabel ist ein Dienstprogramm-Wrapper für TensorBuffers mit aussagekräftigen Beschriftungen auf einer Achse.

Ein Bildklassifizierungsmodell kann beispielsweise einen Ausgabetensor mit der Form {1, 10} haben, wobei 1 die Batchgröße und 10 die Anzahl der Kategorien ist. Auf der zweiten Achse könnten wir jeden Untertensor mit dem Namen oder der Beschreibung der entsprechenden Kategorie beschriften. TensorLabel könnte dabei helfen, den einfachen Tensor in TensorBuffer in eine Karte von vordefinierten Labels in Untertensoren umzuwandeln. Wenn in diesem Fall zehn Labels für die zweite Achse angegeben werden, könnte TensorLabel den ursprünglichen {1, 10}-Tensor in eine Karte mit 10 Elementen umwandeln, wobei jeder Wert Tensor in der Form {} (skalar) ist. Verwendungsbeispiel:

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

Hinweis: Derzeit wird die Tensor-zu-Map-Konvertierung nur für das erste Label mit einer Größe größer als 1 unterstützt.

Public Constructors

TensorLabel(Map<IntegerList<String>> axisLabels, TensorBuffer tensorBuffer)
Erstellt ein TensorLabel-Objekt, das die Achsen von mehrdimensionalen Tensoren beschriften kann.
TensorLabel(List<String> axisLabels, TensorBuffer tensorBuffer)
Erstellt ein TensorLabel-Objekt, das auf einer Achse mehrdimensionaler Tensoren beschriften kann.

Public Methods

List<Category>
getCategoryList()
Ruft eine Liste von Category aus dem TensorLabel-Objekt ab.
Map<StringFloat>
getMapWithFloatValue()
Ruft eine Karte ab, die ein Label einer Gleitkommazahl zuordnet.
Map<StringTensorBuffer>
getMapWithTensorBuffer()
Ruft die Karte mit einem Paar aus Label und dem zugehörigen TensorBuffer ab.

Übernommene Methoden

Public Constructors

public TensorLabel (Map<GanzzahlListe<String>> axisLabels, TensorBuffer tensorBuffer)

Erstellt ein TensorLabel-Objekt, das die Achsen von mehrdimensionalen Tensoren beschriften kann.

Parameter
axisLabels Eine Karte, deren Schlüssel die Achsen-ID (beginnend mit 0) und deren Wert ist, sind entsprechende Labels. Hinweis: Die Größe der Beschriftungen sollte der Größe des Tensors auf dieser Achse entsprechen.
tensorBuffer Der TensorBuffer, der mit einem Label versehen werden soll.
Löst aus
NullPointerException wenn axisLabels oder tensorBuffer null ist oder ein beliebiger Wert in axisLabels null ist.
IllegalArgumentException Ein Schlüssel in axisLabels liegt außerhalb des zulässigen Bereichs (im Vergleich zur Form von tensorBuffer oder ein Wert (Labels) hat eine andere Größe mit dem tensorBuffer für die jeweilige Dimension.

public TensorLabel (List<String> axisLabels, TensorBuffer tensorBuffer)

Erstellt ein TensorLabel-Objekt, das auf einer Achse mehrdimensionaler Tensoren beschriften kann.

Hinweis: Die Beschriftungen werden auf der ersten Achse angewendet, die größer als 1 ist. Wenn die Form des Tensors beispielsweise [1, 10, 3] ist, werden die Labels auf Achse 1 angewendet (ID beginnt bei 0) und die Größe von axisLabels sollte ebenfalls 10 sein.

Parameter
axisLabels Eine Liste von Labels, deren Größe der Größe des Tensors auf der Achse für das Label entsprechen sollte.
tensorBuffer Der TensorBuffer, der mit einem Label versehen werden soll.

Public Methods

public List<Category> getCategoryList ()

Ruft eine Liste von Category aus dem TensorLabel-Objekt ab.

Die Achse des Labels sollte effektiv die letzte Achse sein (d. h., jeder durch diese Achse angegebene Untertensor sollte eine flache Größe von 1 haben), sodass jeder beschriftete Subtensor in einen Gleitkommawertwert umgewandelt werden kann. Beispiel: Eine TensorLabel mit der Form {2, 5, 3} und Achse 2 ist gültig. Wenn die Achse 1 oder 0 ist, kann sie nicht in eine Category konvertiert werden.

getMapWithFloatValue() ist eine Alternative, gibt aber ein Map als Ergebnis zurück.

Löst aus
IllegalStateException wenn die Größe eines Untertensors für jedes Label nicht 1 ist.

public Map<StringFloat> getMapWithFloatValue ()

Ruft eine Karte ab, die ein Label einer Gleitkommazahl zuordnet. Lassen Sie die Kartierung nur auf der ersten Achse mit einer Größe größer als 1 zu. Die Achse sollte effektiv die letzte Achse sein (d. h., jeder durch diese Achse angegebene Untertensor muss eine flache Größe von 1 haben).

getCategoryList() ist eine alternative API zum Abrufen des Ergebnisses.

Löst aus
IllegalStateException wenn die Größe eines Untertensors für jedes Label nicht 1 ist.

public Map<StringTensorBuffer> getMapWithTensorBuffer ()

Ruft die Karte mit einem Paar aus Label und dem zugehörigen TensorBuffer ab. Lassen Sie die Zuordnung derzeit nur auf der ersten Achse mit einer Größe von mehr als 1 zu.