次のエラーは何ですか?
Warning: overflow encountered in exp
scipy/numpy で Python を使用すると、一般的に何を意味しますか? 次のように、log(a) + log(b) などの対数形式で比率を計算し、exp を使用して結果の指数を取得し、logsumexp を使用して合計します。
c = log(a) + log(b)
c = c - logsumexp(c)
配列 b の一部の値は意図的に 0 に設定されています。それらのログは -Inf になります。
この警告の原因は何でしょうか? ありがとうございます。
ベストアンサー1
あなたの場合、それb
はとても配列のどこかに小さい値があり、出力を格納するために使用している配列の dtype (float32、float64 など) に対して大きすぎる数値 (a/b
または) が取得されます。exp(log(a) - log(b))
Numpyは次のように設定できます
- このようなエラーは無視してください。
- エラーを出力しますが、実行を停止するための警告は出しません (デフォルト)
- エラーを記録します。
- 警告を発する
- エラーを発生させる
- ユーザー定義関数を呼び出す
見るnumpy.seterr
浮動小数点配列のアンダーフローやオーバーフローなどの処理方法を制御します。