TensorLabel

clase pública TensorLabel

TensorLabel es un wrapper 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 una forma como {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ás cada subtensor con el nombre o la descripción de cada categoría correspondiente. TensorLabel podría ayudar a convertir el tensor simple de 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 uno de los cuales es Tensor en 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 mayor que 1.

Constructores públicos

TensorLabel(Map<IntegerList<String>> axisLabels, TensorBuffer tensorBuffer)
Crea un objeto TensorLabel que puede etiquetar los ejes de tensores multidimensionales.
TensorLabel(List<String> 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 del objeto TensorLabel.
Mapa<StringFlotante>
getMapWithFloatValue()
Obtiene un mapa que asigna la etiqueta a flotante.
Map<StringTensorBuffer>
getMapWithTensorBuffer()
Obtiene el mapa con un par de la etiqueta y el TensorBuffer correspondiente.

Métodos heredados

Constructores públicos

público TensorLabel (Map<IntegerList<String>> axisLabels, TensorBuffer tensorBuffer)

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

Parámetros
axisLabels Un mapa cuya clave es el ID del eje (comienza en 0) y su valor es correspondiente con etiquetas de recursos. 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 etiquetará.
Arroja
NullPointerException si axisLabels o tensorBuffer es nulo, o cualquier en axisLabels es nulo.
IllegalArgumentException. si alguna clave de axisLabels está fuera del rango (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.

público TensorLabel (Lista<String> 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, la forma del tensor es [1, 10, 3], las etiquetas se aplicarán en el eje 1 (id a partir de 0) y el tamaño de axisLabels también debe ser 10.

Parámetros
axisLabels Una lista de etiquetas, cuyo tamaño debe ser igual al tamaño del tensor activado el eje a etiquetar.
tensorBuffer El TensorBuffer que se etiquetará.

Métodos públicos

público Lista<Categoría> . getCategoryList ()

Obtiene una lista de Category del objeto TensorLabel.

El eje de etiqueta debería ser efectivamente el último eje (lo que significa que cada subtensor especificadas por este eje debe tener un tamaño plano de 1), de modo que cada subtensor etiquetado pueda convertido en una puntuación de valor flotante. Ejemplo: Un TensorLabel con la forma {2, 5, 3} y el eje 2 es válido. Si el eje es 1 o 0, no se puede convertir en Category.

getMapWithFloatValue() es una alternativa, pero muestra un Map como el resultado.

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

público Mapa<CadenaNúmero de punto flotante> getMapWithFloatValue ()

Obtiene un mapa que asigna la etiqueta a flotante. Solo permitir la asignación en el primer eje con un tamaño mayor en vez de 1, y el eje debería ser efectivamente el último eje (lo que significa que cada subtensor especificadas por este eje debe tener un tamaño plano de 1).

getCategoryList() es una API alternativa para obtener el resultado.

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

público Map<StringTensorBuffer> getMapWithTensorBuffer ()

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