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<Entier, Liste<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îne, Flottant> |
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<Entier, Liste<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îne, Flottant> 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.