You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ImageAI检测器触发exp溢出RuntimeWarning 可否修复或直接忽略?

imageai-detector RuntimeWarning: overflow encountered in exp 警告问题解答

警告原因

该警告由sigmoid函数实现逻辑触发:当输入的x绝对值过大时,np.exp(-x)会超出浮点数的取值范围,触发运算溢出提示。但溢出场景下sigmoid返回值会自动趋近于0或1,本身不会对检测结果的正确性产生影响。

关于官方修复的说明

你当前使用的是适配TensorFlow 1.x的legacy版本imageai,该分支已经停止维护,官方不会再针对这个版本发布问题修复。如果你升级到适配TensorFlow 2.x/PyTorch的新版本imageai,该问题已经在新版本中得到修复。

自行修复方案

你可以直接修改本地安装包的代码解决该警告,操作如下:

  1. 找到路径/usr/local/lib/python3.6/site-packages/imageai/Detection/Custom/__init__.py文件,定位到第1234行的_sigmoid静态方法
  2. 替换原有实现为带数值裁剪的版本即可彻底消除警告:
@staticmethod 
def _sigmoid(x):
    # 裁剪数值范围避免exp运算溢出,不影响sigmoid计算精度
    x = np.clip(x, -500, 500)
    return 1./(1. + np.exp(-x))

能否直接忽略警告

如果你不想修改源码,可以直接忽略该警告,它不会影响检测结果的正确性。如果需要屏蔽掉该警告的打印,可以在你自己的项目代码入口处添加如下代码:

import warnings
warnings.filterwarnings("ignore", category=RuntimeWarning, message="overflow encountered in exp")

内容的提问来源于stack exchange,提问作者TkrA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:15:01