TensorLabel

classe publique TensorLabel

TensorLabel est un wrapper util pour les TensorBuffers avec des étiquettes pertinentes sur un axe.

Par exemple, un modèle de classification d'images peut avoir un Tensor de sortie de forme {1, 10}, où 1 correspond à la taille de lot et 10 au nombre de catégories. En fait, sur le 2e axe, étiquetez chaque sous-Tensor avec le nom ou la description de chaque catégorie correspondante. TensorLabel pourrait aider à convertir le Tensor brut de TensorBuffer en mappage à partir de des étiquettes prédéfinies aux sous-Tensors. Dans ce cas, si 10 étiquettes sont fournies pour le 2e axe, TensorLabel peut convertir le Tensor {1, 10} d'origine en un mappage à 10 éléments, dont chaque valeur est un Tensor de forme {} (scalaire). Exemple d'utilisation :

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

Remarque: Actuellement, nous n'acceptons que la conversion de Tensor en carte pour le premier libellé dont la taille est supérieure que 1.

Constructeurs publics

TensorLabel(Map<EntierListe<String>> axisÉtiquettes, TensorBuffer tensorBuffer)
Crée un objet TensorLabel capable d'étiqueter sur les axes de Tensors multidimensionnels.
TensorLabel(Liste<String> axisLibellés, TensorBuffer tensorBuffer)
Crée un objet TensorLabel capable d'effectuer des étiquettes sur un axe de Tensors multidimensionnels.

Méthodes publiques

Liste<Category>
getCategoryList()
Récupère une liste de Category à partir de l'objet TensorLabel.
Map<ChaîneFlottant>
getMapWithFloatValue()
Récupère une carte qui mappe le libellé à flotter.
Map<String (Mappage), TensorBuffer>
getMapWithTensorBuffer()
Récupère la carte avec une paire d'étiquettes et le TensorBuffer correspondant.

Méthodes héritées

Constructeurs publics

<ph type="x-smartling-placeholder"></ph> public TensorLabel (Map<EntierListe<String>> axisLibellés, TensorBuffer tensorBuffer)

Crée un objet TensorLabel capable d'étiqueter sur les axes de Tensors multidimensionnels.

Paramètres
axisLabels Une map, dont la clé est l'identifiant de l'axe (à partir de 0) et dont la valeur est la même étiquettes. Remarque: La taille des étiquettes doit être identique à la taille du Tensor sur cet axe.
tensorBuffer TensorBuffer à étiqueter.
Génère
NullPointerException si axisLabels ou tensorBuffer est nul, ou toute la valeur dans axisLabels est nulle.
IllegalArgumentException si une clé de axisLabels est en dehors de la plage (par rapport à la forme de tensorBuffer ou de toute valeur (libellés) a une taille différente avec tensorBuffer pour la dimension donnée.

<ph type="x-smartling-placeholder"></ph> public TensorLabel (Liste<String> axisLibellés, TensorBuffer tensorBuffer)

Crée un objet TensorLabel capable d'effectuer des étiquettes sur un axe de Tensors multidimensionnels.

Remarque: Les libellés sont appliqués sur le premier axe dont la taille est supérieure à 1. Par exemple, si la forme du Tensor est [1, 10, 3], les étiquettes seront appliquées à l'axe 1 (id à partir de 0) et la taille de axisLabels doit également être égale à 10.

Paramètres
axisLabels Une liste d'étiquettes, dont la taille doit être identique à celle du Tensor sur l'axe à étiqueter.
tensorBuffer TensorBuffer à étiqueter.

Méthodes publiques

<ph type="x-smartling-placeholder"></ph> public Liste<Catégorie> getCategoryList ()

Récupère une liste de Category à partir de l'objet TensorLabel.

L'axe de l'étiquette doit être effectivement le dernier axe (ce qui signifie que chaque sous-Tensor spécifié par cet axe doit avoir une taille plate de 1), de sorte que chaque sous-Tensor étiqueté puisse être converti en score flottant. Exemple: une TensorLabel de forme {2, 5, 3} et l'axe 2 est valide. Si l'axe est égal à 1 ou 0, il ne peut pas être converti en Category.

getMapWithFloatValue() est une alternative, mais renvoie un Map en tant que le résultat.

Génère
IllegalStateException si la taille d'un sous-Tensor de chaque étiquette n'est pas de 1.

<ph type="x-smartling-placeholder"></ph> public Map<ChaîneFlottant> getMapWithFloatValue ()

Récupère une carte qui mappe le libellé à flotter. Autoriser uniquement le mappage sur le premier axe dont la taille est supérieure supérieur à 1. L'axe doit être en réalité le dernier axe (ce qui signifie que chaque sous-Tensor spécifié par cet axe doit avoir une taille plate de 1).

getCategoryList() est une autre API permettant d'obtenir le résultat.

Génère
IllegalStateException si la taille d'un sous-Tensor de chaque étiquette n'est pas de 1.

<ph type="x-smartling-placeholder"></ph> public Map<String (Chaîne), TensorBuffer> getMapWithTensorBuffer ()

Récupère la carte avec une paire d'étiquettes et le TensorBuffer correspondant. N'autorisez que les le mappage sur le premier axe dont la taille est actuellement supérieure à 1.