Como converter um resultado do tensor em um percentual?

Home Fóruns Fórum Processamento de Linguagem Natural com BERT e Python Como converter um resultado do tensor em um percentual?

Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #35023
    Aislan Greca
    Participante

    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?

    #35029
    Denny Ceccon
    Moderador

    Olá 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 com np.max(array).

    #35030
    Aislan Greca
    Participante

    Realmente 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 array

    #35031
    Aislan Greca
    Participante

    Tendei 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 array

    #35032
    Denny Ceccon
    Moderador
    array = output.numpy()
    array = np.max(array)
    return array
    #35069
    Aislan Greca
    Participante

    Como 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?

    #35070
    Aislan Greca
    Participante

    O 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.

    #35071
    Denny Ceccon
    Moderador

    Com a função argmax:

    array = output.numpy()
    prob = np.max(array)
    index = np.argmax(array)
    return prob, index
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Você deve fazer login para responder a este tópico.