Ich arbeite mit kleinen Zahlen in tensorflow
, was manchmal zu numerischer Instabilität führt.
Ich möchte die Genauigkeit meiner Ergebnisse erhöhen oder zumindest Grenzen für mein Ergebnis festlegen .
Der folgende Code zeigt ein spezifisches Beispiel für numerische Fehler (es gibt nan
statt 0.0
aus, weil float64
nicht präzise genug ist, um 1+eps/2
zu verarbeiten):
Ich gehe davon aus, dass es keine Möglichkeit gibt, die Genauigkeit der Werte im Tensorflow zu erhöhen. Aber vielleicht ist es möglich, den Rundungsmodus einzustellen, wie in C ++ mit std::fesetround(FE_UPWARD)
? Dann könnte ich den Tensorfluss zwingen, immer aufzurunden, was sicherstellen würde, dass ich die Quadratwurzel einer nicht negativen Zahl nehme.
Was ich versucht habe: Ich habe versucht, dieser Frage zu folgen beschreibt, wie der Rundungsmodus für Python / Numpy eingestellt wird. Dies scheint jedoch nicht zu funktionieren, da der folgende Code weiterhin nan
:
Tags und Links tensorflow rounding