2016-12-12 10 views
0

テンソルは密度値を保持しており、セッションで評価すると(0,1e-31)の値をとります。次に、テンソルにtf.logをelementwiseで適用します。このテンソルを評価するとき、-infを持つ2つの要素が得られます。非常に小さな値のテンソルにtf.logを適用するとき-infを得る

私のテンソルの最小値は、ログが適用される前に、評価されると1.4012985e-45であり、ログの後に-infが得られます。

これは何ですか?私はtf.float32を使用していたために発生している可能性があると考えましたが、float64に変更しても-inf値が得られました。

EDIT:問題は実際には精度が低すぎたためです。グラフ上のすべてのプレースホルダと変数にtf.float64を使用すると、-infの値はなくなりました。

+0

あなたが解決した場合は、あなたの解決策を回答として投稿し、それが受け入れられたとマークして、人々がもうこの質問に来ないようにすることができます。 –

+1

2日間で私の答えを受け入れることができます。 – eager2learn

+0

パーフェクト、ありがとう。 –

答えて

0

Tensorflowは、非常に小さな値(〜1e-50)のtf.float32型のテンソルでtf.log演算を評価するときに出力します。この問題を回避するには、グラフのすべての変数に対してtf.float64を使用する必要があります。

関連する問題