Einstellen des Tensorflow-Rundungsmodus

9

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):

%Vor%

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 :

ausgibt %Vor%     
Peter 19.01.2018, 15:59
quelle

1 Antwort

0

Ersetzen

%Vor%

mit

%Vor%

Siehe tf.where

    
Sreeragh A R 23.01.2018, 13:37
quelle

Tags und Links