Ich versuche nur eine gute Sigmoid-Funktion in C++ (und effizient) zu berechnen. Also muß er noch etwas tun:
1/(1 + exp(-x))
C++ Hinzufügen von 1 zu sehr kleine Zahl?
Das Problem ist, wenn X
groß wird (oder auch klein), das Ergebnis der 1 + e
dreht 0 oder 1
Zum Beispiel sein,
1 + exp(-30) = 1
Aber das ist falsch ...
Wie können wir sehr kleine (oder große) Zahlen einfach und effizient hinzufügen?
Datentyp ich verwende: Doppel
Hier ist der Code-Schnipsel:
double Quaternion::sigmoidReal(double v){
return 1.0/(1.0 + exp(-v)) ;
}
Dank!
Welche Datentypen verwenden Sie? – NathanOliver
double, sorry ... –
Zeigen Sie Ihren Code für eine präzise Antwort. –