Home › Fóruns › Fórum Processamento de Linguagem Natural com BERT e Python › Como converter um resultado do tensor em um percentual?
- Este tópico contém 7 respostas, 2 vozes e foi atualizado pela última vez 2 anos, 6 meses atrás por Denny Ceccon.
- AutorPosts
- 30 de maio de 2022 às 22:42 #35023
Fiz uma classificação de 8 saídas e o resultado foi este:
tf.Tensor( [[5.0646520e-07 1.3181153e-14 1.4571293e-07 7.5655301e-08 1.2556800e-12 6.9665895e-10 9.9999928e-01 6.7364786e-10]], shape=(1, 8), dtype=float32)
como converto separadamente este valor em percentual de modo que eu possa responder com a classificação mais próxima?
31 de maio de 2022 às 11:30 #35029Olá Aislan,
Este tensor já contém as probabilidades para cada uma das classes. Observe que o valor no index 6 é igual a 0.999, que equivale a 99.9%. Todos os outros são tão baixos que na prática equivalem a zero.
Se você quiser formatar melhor, pode converser este tensor para numpy array com
array = tensor.numpy()
, e depois extrair o valor máximo comnp.max(array)
.31 de maio de 2022 às 11:48 #35030Realmente estou com dúvida nesta conversão
usei desta forma, mas deu erro
def get_prediction(sentence):
tokens = encode_sentence(sentence)
inputs = tf.expand_dims(tokens, 0) # (batch_size) (1,…)output = Dcnn(inputs, training=False)
array = tensor.numpy(output)
return array31 de maio de 2022 às 11:52 #35031Tendei desta forma, também não consegui
def get_prediction(sentence):
tokens = encode_sentence(sentence)
inputs = tf.expand_dims(tokens, 0) # (batch_size) (1,…)output = Dcnn(inputs, training=False)
array = output.numpy
array = np.max(array)
return array31 de maio de 2022 às 12:00 #35032array = output.numpy() array = np.max(array) return array
31 de maio de 2022 às 15:13 #35069Como eu correlaciono o valor maior da probabilidade com a classificação, ou seja, como sei que o valor maior é do item 1,2,3,4 ou 5?
31 de maio de 2022 às 15:15 #35070O ideal seria mostrar o % maior e em qual posição ele está no array
array([[9.99883652e-01, 1.02646968e-14, 2.08835633e-27, 1.16383424e-04, 5.13055348e-23, 1.39506823e-18, 1.89806015e-31, 8.62781277e-19]], dtype=float32)
Assim, seria possível saber em qual item foi classificado.
31 de maio de 2022 às 16:53 #35071Com a função argmax:
array = output.numpy() prob = np.max(array) index = np.argmax(array) return prob, index
- AutorPosts
- Você deve fazer login para responder a este tópico.