TensorLabel

classe pubblica TensorLabel

TensorLabel è un util wrapper per i TensorBuffers con etichette significative su un asse.

Ad esempio, un modello di classificazione di immagini può avere un tensore di output con forma {1, 10}, dove 1 è la dimensione del batch e 10 è il numero di categorie. Infatti, sul secondo asse, potremmo etichettare ogni sottotensore con il nome o la descrizione di ciascuna categoria corrispondente. TensorLabel potrebbe aiutare a convertire il semplice Tensor di TensorBuffer in una mappa le etichette predefinite ai sottotensori. In questo caso, se vengono fornite 10 etichette per il secondo asse, TensorLabel potrebbe convertire il tensore {1, 10} originale in una mappa a 10 elementi, ognuno dei quali Tensor è nella forma {} (scalabile). Esempio di utilizzo:

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

Nota: al momento supportiamo solo la conversione da tensore a mappa per la prima etichetta con dimensione maggiore di 1.

Costruttori pubblici

TensorLabel(Mappa<Numero interoElenco<Stringa>> axisLabel, TensorBuffer tensorBuffer)
Crea un oggetto TensorLabel in grado di etichettare gli assi dei tensori multidimensionali.
TensorLabel(List<String> axisLabel, TensorBuffer tensorBuffer)
Crea un oggetto TensorLabel in grado di etichettare su un asse di tensori multidimensionali.

Metodi pubblici

Elenco<Categoria>
getCategoryList()
Ottiene un elenco di Category dall'oggetto TensorLabel.
Mappa<StringFloat>
getMapWithFloatValue()
Restituisce una mappa che mappa l'etichetta in modo che mobile.
Mappa<StringTensorBuffer>
getMapWithTensorBuffer()
Recupera la mappa con una coppia di etichetta e il TensorBuffer corrispondente.

Metodi ereditati

Costruttori pubblici

pubblica . TensorLabel (Mappa<IntegerElenco<Stringa>> axisLabel, TensorBuffer tensorBuffer)

Crea un oggetto TensorLabel in grado di etichettare gli assi dei tensori multidimensionali.

Parametri
axisLabels Una mappa la cui chiave è l'ID asse (a partire da 0) e il valore è corrispondente etichette. Nota: la dimensione delle etichette deve corrispondere a quella del tensore su quell'asse.
tensorBuffer il TensorBuffer da etichettare.
Lanci
NullPointerException se axisLabels o tensorBuffer è nullo o qualsiasi in axisLabels è nullo.
IllegalArgumentException se una qualsiasi chiave in axisLabels è fuori intervallo (rispetto a la forma di tensorBuffer o qualsiasi valore (etichette) ha dimensioni diverse con il valore tensorBuffer nella dimensione specificata.

pubblica . TensorLabel (List<String> axisLabel, TensorBuffer tensorBuffer)

Crea un oggetto TensorLabel in grado di etichettare su un asse di tensori multidimensionali.

Nota: le etichette vengono applicate al primo asse la cui dimensione è maggiore di 1. Ad esempio, se la forma del tensore è [1, 10, 3], le etichette verranno applicate sull'asse 1 (id a partire da 0) e la dimensione di axisLabels deve essere anch'essa 10.

Parametri
axisLabels Un elenco di etichette, la cui dimensione deve corrispondere a quella del tensore presente sull'asse da etichettare.
tensorBuffer il TensorBuffer da etichettare.

Metodi pubblici

pubblica Elenco<Categoria> getCategoryList ()

Ottiene un elenco di Category dall'oggetto TensorLabel.

L'asse dell'etichetta deve essere effettivamente l'ultimo asse (ovvero ogni tensore secondario specificati da questo asse deve avere una dimensione piatta pari a 1), in modo che ogni sottotensore etichettato possa essere convertito in un punteggio con valore in virgola mobile. Esempio: un TensorLabel con forma {2, 5, 3} e l'asse 2 è valido. Se l'asse è 1 o 0, non può essere convertito in un Category.

getMapWithFloatValue() è un'alternativa, ma restituisce un Map come per ottenere il risultato.

Lanci
IllegalStateException se la dimensione di un sottotensore su ciascuna etichetta non è 1.

pubblica Map<Stringfloat> getMapWithFloatValue ()

Restituisce una mappa che mappa l'etichetta in modo che mobile. Consenti la mappatura solo sul primo asse con dimensioni maggiori di 1 e l'asse dovrebbe essere effettivamente l'ultimo asse (ovvero ogni tensore secondario specificate da questo asse deve avere una dimensione piatta pari a 1).

getCategoryList() è un'API alternativa per ottenere il risultato.

Lanci
IllegalStateException se la dimensione di un sottotensore su ciascuna etichetta non è 1.

pubblica Map<StringTensorBuffer> getMapWithTensorBuffer ()

Recupera la mappa con una coppia di etichetta e il TensorBuffer corrispondente. Consenti solo mappatura sul primo asse con dimensioni attualmente superiori a 1.