Cara memperbaiki: runtimewarning: terjadi overflow di exp
Peringatan yang mungkin Anda temui di Python adalah:
RuntimeWarning: overflow encountered in exp
Peringatan ini terjadi ketika Anda menggunakan fungsi exp NumPy, namun menggunakan nilai yang terlalu besar untuk ditangani.
Penting untuk dicatat bahwa ini hanyalah peringatan dan NumPy akan tetap melakukan perhitungan yang Anda minta, namun memberikan peringatan secara default.
Saat Anda menemukan peringatan ini, Anda memiliki dua pilihan:
1. Abaikan saja.
2. Hapus peringatan sepenuhnya.
Contoh berikut menunjukkan bagaimana menanggapi peringatan ini dalam praktiknya.
Cara mereproduksi peringatan tersebut
Misalkan kita melakukan perhitungan berikut dengan Python:
import numpy as np #perform some calculation print (1/(1+np. exp (1140))) 0.0 /srv/conda/envs/notebook/lib/python3.7/site-packages/ipykernel_launcher.py:3: RuntimeWarning: overflow encountered in exp
Perhatikan bahwa NumPy melakukan perhitungan (hasilnya 0,0) tetapi masih mencetak RuntimeWarning .
Peringatan ini dicetak karena nilai np.exp(1140) mewakili e 1140 , yang merupakan angka yang sangat besar .
Kami pada dasarnya meminta NumPy untuk melakukan perhitungan berikut:
- 1 / (1 + bilangan masif)
Hal ini dapat direduksi menjadi:
- 1 / bilangan masif
Memang benar 0, itulah sebabnya NumPy menghitung hasilnya sebagai 0.0 .
Bagaimana cara menghilangkan peringatan tersebut
Jika kita mau, kita bisa menggunakan paket warnings untuk menyembunyikan peringatan sebagai berikut:
import numpy as np import warnings #remove warnings warnings. filterwarnings (' ignore ') #perform some calculation print (1/(1+np. exp (1140))) 0.0
Perhatikan bahwa NumPy melakukan penghitungan dan tidak menampilkan RuntimeWarning.
Catatan : Secara umum, peringatan dapat membantu dalam mengidentifikasi potongan kode yang memerlukan waktu lama untuk dieksekusi. Jadi berhati-hatilah saat memutuskan untuk menghapus peringatan.
Sumber daya tambahan
Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:
Cara Memperbaiki KeyError di Pandas
Cara Memperbaiki: ValueError: Tidak dapat mengubah float NaN menjadi int
Cara Memperbaiki: ValueError: Operan tidak dapat disiarkan dengan bentuk