在做优化算法时,某些自适应参数会根据代价函数的大小确定。代价函数大的时候是一个很大的数,小的时候是一个无限接近零的数,此时代价函数值处于被除数的位置,当太小时,python报错ZeroDivisionError: float division by zero,请问怎么能够很好地解决,希望老师们能给出建议和解决措施。
5条回答 默认 最新
关注 测试了一下,Python解释器认为1/1e-308是最大的浮点数,1/1e-309就是无穷大了,1/1e-323还是无穷大,但是1/1e-324就溢出,1e-100/1e-324也照样溢出,因此可以认为1e-324被解释器视为0。建议将1e-323作为阈值,小于该阈值时,就避开除法操作。
>>> 1/1e-308 1e+308 >>> 1/1e-309 inf >>> 1/1e-323 inf >>> 1/1e-324 Traceback (most recent call last): File "<pyshell#76>", line 1, in <module> 1/1e-324 ZeroDivisionError: float division by zero >>> 1e-100/1e-324 Traceback (most recent call last): File "<pyshell#77>", line 1, in <module> 1e-100/1e-324 ZeroDivisionError: float division by zero
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 6无用
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器