วิธีแก้ไข: runtimewarning: พบโอเวอร์โฟลว์ใน exp
คำเตือนที่คุณอาจพบใน Python คือ:
RuntimeWarning: overflow encountered in exp
คำเตือนนี้เกิดขึ้นเมื่อคุณใช้ฟังก์ชัน exp NumPy แต่ใช้ค่าที่ใหญ่เกินกว่าจะจัดการได้
สิ่งสำคัญที่ควรทราบคือนี่เป็นเพียง คำเตือน และ NumPy จะยังคงทำการคำนวณที่คุณร้องขอ แต่จะให้คำเตือนตามค่าเริ่มต้น
เมื่อคุณพบคำเตือนนี้ คุณมีสองทางเลือก:
1. เพิกเฉยต่อมัน.
2. ลบคำเตือนออกให้หมด
ตัวอย่างต่อไปนี้แสดงวิธีการตอบสนองต่อคำเตือนนี้ในทางปฏิบัติ
วิธีทำซ้ำคำเตือน
สมมติว่าเราทำการคำนวณต่อไปนี้ใน 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
โปรดทราบว่า NumPy ทำการคำนวณ (ผลลัพธ์คือ 0.0) แต่ยังคงพิมพ์ RuntimeWarning
คำเตือนนี้ถูกพิมพ์ออกมาเนื่องจากค่า np.exp(1140) แสดงถึง e 1140 ซึ่งเป็นตัวเลข จำนวนมาก
โดยพื้นฐานแล้วเราขอให้ NumPy ทำการคำนวณต่อไปนี้:
- 1 / (1 + จำนวนมาก)
สิ่งนี้สามารถลดลงเป็น:
- 1 / จำนวนมหาศาล
มันคือ 0 จริงๆ ซึ่งเป็นสาเหตุที่ NumPy คำนวณผลลัพธ์เป็น 0.0
วิธีลบคำเตือน
หากต้องการเราสามารถใช้แพ็คเกจ คำเตือน เพื่อระงับคำเตือนได้ดังนี้:
import numpy as np import warnings #remove warnings warnings. filterwarnings (' ignore ') #perform some calculation print (1/(1+np. exp (1140))) 0.0
โปรดทราบว่า NumPy ทำการคำนวณและไม่แสดง RuntimeWarning
หมายเหตุ : โดยทั่วไป คำเตือนจะมีประโยชน์ในการระบุส่วนของโค้ดที่ใช้เวลานานในการดำเนินการ ดังนั้นควรเลือกอย่างมากเมื่อตัดสินใจลบคำเตือน
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:
วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้