TensorLabel

TensorLabel classe pública

TensorLabel é um wrapper utilitário para TensorBuffers com rótulos significativos em um eixo.

Por exemplo, um modelo de classificação de imagem pode ter um tensor de saída com forma como {1, 10}, onde 1 é o tamanho do lote e 10 é o número de categorias. De fato, no 2º eixo, poderíamos rotular cada sub-tensor com o nome ou descrição de cada categoria correspondente. TensorLabel poderia ajudar a converter o Tensor planície em TensorBuffer em um mapa de rótulos predefinidos para sub-tensores. Neste caso, se fornecida 10 etiquetas para o eixo 2, TensorLabel poderia converter o original {1, 10} Tensor para um mapa 10 de elemento, cada valor das quais é em forma Tensor {} (escalar). Exemplo de utilização:

   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();
 

Observação: atualmente, só oferecemos suporte à conversão de tensor em mapa para o primeiro rótulo com tamanho maior que 1.

Construtores Públicos

TensorLabel ( Mapa < Integer , Lista < Cordas >> axisLabels, TensorBuffer tensorBuffer)
Cria um objeto TensorLabel que é capaz de rotular os eixos de tensores multidimensionais.
TensorLabel ( Lista < string > axisLabels, TensorBuffer tensorBuffer)
Cria um objeto TensorLabel que é capaz de rotular em um eixo de tensores multidimensionais.

Métodos Públicos

Lista < Categoria >
getCategoryList ()
Obtém uma lista de Category da TensorLabel objeto.
Mapa < string , Float >
getMapWithFloatValue ()
Obtém um mapa que mapeia o rótulo para flutuar.
Mapa < string , TensorBuffer >
getMapWithTensorBuffer ()
Obtém o mapa com um par do rótulo e o TensorBuffer correspondente.

Métodos herdados

Construtores Públicos

pública TensorLabel ( Mapa < Integer , Lista < Cordas >> axisLabels, TensorBuffer tensorBuffer)

Cria um objeto TensorLabel que é capaz de rotular os eixos de tensores multidimensionais.

Parâmetros
axisLabels Um mapa, cuja chave é o id do eixo (começando em 0) e o valor são os rótulos correspondentes. Nota: O tamanho dos rótulos deve ser igual ao tamanho do tensor naquele eixo.
tensorBuffer O TensorBuffer a ser rotulado.
Lança
Null Pointer Exception se axisLabels ou tensorBuffer é nulo ou qualquer valor em axisLabels é nulo.
Exceção de argumento ilegal se qualquer tecla em axisLabels está fora do intervalo (em comparação com a forma de tensorBuffer , ou qualquer valor (etiquetas) tem um tamanho diferente com o tensorBuffer na dimensão dada.

pública TensorLabel ( Lista < string > axisLabels, TensorBuffer tensorBuffer)

Cria um objeto TensorLabel que é capaz de rotular em um eixo de tensores multidimensionais.

Nota: Os rótulos são aplicados no primeiro eixo cujo tamanho é maior que 1. Por exemplo, se a forma do tensor for [1, 10, 3], os rótulos serão aplicados no eixo 1 (id começando em 0), e tamanho de axisLabels deve ser 10 bem.

Parâmetros
axisLabels Uma lista de rótulos, cujo tamanho deve ser igual ao tamanho do tensor no eixo a ser rotulado.
tensorBuffer O TensorBuffer a ser rotulado.

Métodos Públicos

pública Lista < Categoria > getCategoryList ()

Obtém uma lista de Category da TensorLabel objeto.

O eixo do rótulo deve ser efetivamente o último eixo (o que significa que cada sub tensor especificado por este eixo deve ter um tamanho plano de 1), de modo que cada sub tensor rotulado possa ser convertido em uma pontuação de valor flutuante. Exemplo: Um TensorLabel com forma {2, 5, 3} e o eixo 2 é válido. Se eixo é 1 ou 0, ele não pode ser convertido em uma Category .

getMapWithFloatValue() é uma alternativa, mas retorna um Map como o resultado.

Lança
IllegalStateException se o tamanho de um sub tensor em cada rótulo não for 1.

pública Map < string , Float > getMapWithFloatValue ()

Obtém um mapa que mapeia o rótulo para flutuar. Permitir apenas o mapeamento no primeiro eixo com tamanho maior que 1, e o eixo deve ser efetivamente o último eixo (o que significa que cada subdensor especificado por este eixo deve ter um tamanho plano de 1).

getCategoryList() é uma API alternativa para obter o resultado.

Lança
IllegalStateException se o tamanho de um sub tensor em cada rótulo não for 1.

pública Map < string , TensorBuffer > getMapWithTensorBuffer ()

Obtém o mapa com um par do rótulo e o TensorBuffer correspondente. Permitir apenas o mapeamento no primeiro eixo com tamanho maior que 1 atualmente.