ho cercato di attuare soft-max con il seguente codice (out_vec
è una numpy
vettore di galleggianti):RuntimeWarning: valido valore rilevato in maggiore
numerator = np.exp(out_vec)
denominator = np.sum(np.exp(out_vec))
out_vec = numerator/denominator
Tuttavia, ho ottenuto un errore di overflow causa di np.exp(out_vec)
. Pertanto, ho controllato (manualmente) qual è il limite superiore di np.exp()
e ho riscontrato che np.exp(709)
è un numero, ma np.exp(710)
è considerato come np.inf
. Così, per cercare di evitare l'errore di overflow, ho modificato il mio codice come segue:
out_vec[out_vec > 709] = 709 #prevent np.exp overflow
numerator = np.exp(out_vec)
denominator = np.sum(np.exp(out_vec))
out_vec = numerator/denominator
Ora, ottengo un errore diverso:
RuntimeWarning: invalid value encountered in greater out_vec[out_vec > 709] = 709
Cosa c'è di sbagliato con la linea ho aggiunto? Ho cercato questo specifico errore e tutto quello che ho trovato è il consiglio della gente su come ignorare l'errore. Semplicemente ignorare l'errore non mi aiuterà, perché ogni volta che il mio codice incontra questo errore non dà i soliti risultati.
'gamma out_vec' contiene' 'NaN' o valori Inf'? – kvorobiev
@kvorobiev sai come ho potuto ricevere l'avviso in modo da poter controllare? – Cheshie
Prova 'np.isnan (np.sum (out_vec))' – kvorobiev