TensorLabel

clase pública TensorLabel

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.