[解決済み] Pythonのnumpy.exp関数におけるオーバーフローエラー
2022-02-06 14:32:22
質問
を使いたいのですが
numpy.exp
このように
cc = np.array([
[0.120,0.34,-1234.1]
])
print 1/(1+np.exp(-cc))
しかし、これではエラーが発生します。
/usr/local/lib/python2.7/site-packages/ipykernel/__main__.py:5: RuntimeWarning: overflow encountered in exp
なぜなんでしょう?どうしたら直るのでしょうか?どうやら3番目の数字に問題があるようです
(-1234.1)
解決方法は?
fugledeさんがおっしゃるように、ここでの問題は
np.float64
のような大きな数値は扱えません。
exp(1234.1)
. 試しに
np.float128
の代わりに
>>> cc = np.array([[0.120,0.34,-1234.1]], dtype=np.float128)
>>> cc
array([[ 0.12, 0.34, -1234.1]], dtype=float128)
>>> 1 / (1 + np.exp(-cc))
array([[ 0.52996405, 0.58419052, 1.0893812e-536]], dtype=float128)
しかし、拡張精度の使用には、いくつかの癖があることに注意してください。Windowsでは動作しないかもしれませんし、128ビットの完全な精度が得られるわけではありません。詳細はこちらをご覧ください。 こちら .
ほとんどの実用的な目的のために、おそらくあなたは近似することができます。
1 / (1 + <a large number>)
をゼロにします。つまり、警告を無視して先に進めばいいのです。Numpyが近似を引き受けてくれる(
np.float64
):
>>> 1 / (1 + np.exp(-cc))
/usr/local/bin/ipython3:1: RuntimeWarning: overflow encountered in exp
#!/usr/local/bin/python3.4
array([[ 0.52996405, 0.58419052, 0. ]])
警告を表示しないようにしたい場合は
scipy.special.expit
この質問に対するコメントでWarrenWeckesserが提案したように。
>>> from scipy.special import expit
>>> expit(cc)
array([[ 0.52996405, 0.58419052, 0. ]])
関連
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Python Decorator 練習問題
-
Python カメの描画コマンドとその例
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない