TensorLabel

TensorLabel clase pública

TensorLabel es un contenedor útil 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 la 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 la conversión de la llanura Tensor en TensorBuffer en un mapa de etiquetas predefinidas para sub-tensores. En este caso, si se proporciona 10 etiquetas para el eje segundo, TensorLabel podría convertir el original {1, 10} Tensor a un mapa 10 elemento, cada valor de que es Tensor de forma {} (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 superior a 1.

Constructores públicos

TensorLabel ( Mapa < Integer , Lista < Cuerda >> 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 >
getCategoryList ()
Obtiene una lista de Category de la TensorLabel objeto.
Mapa < cadena , Flotador >
getMapWithFloatValue ()
Obtiene un mapa que asigna una etiqueta a flotar.
Mapa < cadena , TensorBuffer >
getMapWithTensorBuffer ()
Obtiene el mapa con un par de la etiqueta y el TensorBuffer correspondiente.

Métodos heredados

Constructores públicos

TensorLabel pública ( Mapa < Integer , List < Cuerda >> axisLabels, TensorBuffer tensorBuffer)

Crea un objeto TensorLabel que puede etiquetar en los ejes de tensores multidimensionales.

Parámetros
axisLabels 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 coincidir con 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 nula, o cualquier valor axisLabels es nula.
Argumento de excepción ilegal si cualquier tecla en axisLabels está fuera del intervalo (en comparación con la forma de tensorBuffer , o cualquier valor (etiquetas) tiene un tamaño diferente con el tensorBuffer en la dimensión determinada.

TensorLabel pública ( 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 debe ser 10 también.

Parámetros
axisLabels 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

pública Lista < Categoría > getCategoryList ()

Obtiene una lista de Category de la TensorLabel objeto.

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 el 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 el resultado.

Lanza
IllegalStateException si el tamaño de un subtensor en cada etiqueta no es 1.

pública Mapa < cadena , Flotador > getMapWithFloatValue ()

Obtiene un mapa que asigna una etiqueta a flotar. 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
IllegalStateException si el tamaño de un subtensor en cada etiqueta no es 1.

pública Mapa < cadena , TensorBuffer > getMapWithTensorBuffer ()

Obtiene el mapa con un par de la etiqueta y el TensorBuffer correspondiente. Solo permite el mapeo en el primer eje con un tamaño mayor que 1 actualmente.