TensorLabel es un contenedor de utilidades para TensorBuffers con etiquetas significativas en un eje.
Por ejemplo, un modelo de clasificación de imágenes puede tener un tensor de salida con forma {1, 10}, donde 1 es el tamaño del lote y 10 es el número de categorías. De hecho, en el segundo eje, podríamos etiquetar cada subtensor con el nombre o descripción de cada categoría correspondiente. TensorLabel
podría ayudar a convertir el Tensor simple en TensorBuffer
en un mapa de etiquetas predefinidas a subtensores. En este caso, si se proporcionan 10 etiquetas para el segundo eje, TensorLabel
podría convertir el tensor {1, 10} original en un mapa de 10 elementos, cada valor del cual tiene forma de tensor {} (escalar). Ejemplo de uso:
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: actualmente solo admitimos la conversión de tensor a mapa para la primera etiqueta con un tamaño mayor que 1.
Constructores Públicos
TensorLabel ( Mapa < Entero , Lista < Cadena >> axisLabels, TensorBuffer tensorBuffer) Crea un objeto TensorLabel que puede etiquetar en los ejes de tensores multidimensionales. | |
TensorLabel ( Lista <Cadena> axisLabels, TensorBuffer tensorBuffer) Crea un objeto TensorLabel que puede etiquetar en un eje de tensores multidimensionales. |
Métodos públicos
Lista < Categoría > | obtener lista de categorías () Obtiene una lista de Category del objeto TensorLabel . |
Mapa < cadena , flotante > | obtenerMapWithFloatValue () Obtiene un mapa que asigna la etiqueta para que flote. |
Mapa < Cadena , TensorBuffer > | getMapWithTensorBuffer () Obtiene el mapa con un par de etiquetas y el TensorBuffer correspondiente. |
Métodos heredados
Constructores Públicos
TensorLabel público ( Mapa < Integer , Lista < Cadena >> axisLabels, TensorBuffer tensorBuffer)
Crea un objeto TensorLabel que puede etiquetar en los ejes de tensores multidimensionales.
Parámetros
etiquetas de eje | Un mapa, cuya clave es la identificación del eje (a partir de 0) y el valor son las etiquetas correspondientes. Nota: El tamaño de las etiquetas debe ser el mismo que el tamaño del tensor en ese eje. |
---|---|
tensorBuffer | El TensorBuffer que se va a etiquetar. |
Lanza
Excepción de puntero nulo | si axisLabels o tensorBuffer es nulo, o cualquier valor en axisLabels es nulo. |
---|---|
Argumento de excepción ilegal | si alguna clave en axisLabels está fuera de rango (en comparación con la forma de tensorBuffer , o cualquier valor (etiquetas) tiene un tamaño diferente con tensorBuffer en la dimensión dada. |
TensorLabel público ( Lista <Cadena> axisLabels, TensorBuffer tensorBuffer)
Crea un objeto TensorLabel que puede etiquetar en un eje de tensores multidimensionales.
Nota: Las etiquetas se aplican en el primer eje cuyo tamaño es mayor que 1. Por ejemplo, si la forma del tensor es [1, 10, 3], las etiquetas se aplicarán en el eje 1 (id comenzando desde 0), y el tamaño de axisLabels
también debe ser 10.
Parámetros
etiquetas de eje | Una lista de etiquetas, cuyo tamaño debe ser el mismo que el tamaño del tensor en el eje que se va a etiquetar. |
---|---|
tensorBuffer | El TensorBuffer que se va a etiquetar. |
Métodos públicos
Lista pública < Categoría > getCategoryList ()
Obtiene una lista de Category
del objeto TensorLabel
.
El eje de la etiqueta debe ser efectivamente el último eje (lo que significa que cada subtensor especificado por este eje debe tener un tamaño plano de 1), de modo que cada subtensor etiquetado pueda convertirse en una puntuación de valor flotante. Ejemplo: un TensorLabel
con forma {2, 5, 3}
y eje 2 es válido. Si el eje es 1 o 0, no se puede convertir en una Category
.
getMapWithFloatValue()
es una alternativa pero devuelve un Map
como resultado.
Lanza
Excepción de estado ilegal | si el tamaño de un subtensor en cada etiqueta no es 1. |
---|
Mapa público < Cadena , Flotante > getMapWithFloatValue ()
Obtiene un mapa que asigna la etiqueta para que flote. Solo permita el mapeo en el primer eje con un tamaño mayor que 1, y el eje debe ser efectivamente el último eje (lo que significa que cada subtensor especificado por este eje debe tener un tamaño plano de 1).
getCategoryList()
es una API alternativa para obtener el resultado.
Lanza
Excepción de estado ilegal | si el tamaño de un subtensor en cada etiqueta no es 1. |
---|
Mapa público < Cadena , TensorBuffer > getMapWithTensorBuffer ()
Obtiene el mapa con un par de etiquetas y el TensorBuffer correspondiente. Actualmente, solo permita el mapeo en el primer eje con un tamaño mayor que 1.