python - Numpy 不会为点积抛出 FloatingPointError
问题描述
我正在使用两个 numpy 数组(两者float32
)的点积。我故意设置 numpy 来提高 aFloatingPointError
以防溢出。然而,dot
它的行为并不像预期的那样:而不是FloatingPointError
像使用普通乘法时那样提高 a ,而是dot
返回inf
.
这是预期的行为吗?有没有办法强制dot
引发异常?
最小的工作示例:
import numpy as np
np.seterr(over="raise")
x = np.array([2e+38], dtype=np.float32)
y = np.array([10], dtype=np.float32)
x * y
>>> FloatingPointError: overflow encountered in multiply
np.dot(x,y)
>>> inf
解决方案
接受@hpaulj 的评论作为答案——matmul
确实会根据需要抛出 a FloatingPointError
,而dot
不会(不知道为什么)。出于我的目的matmul
,给出与dot
.
推荐阅读
- .net - 总是从 IWebHostEnvironment 和 IHttpContextAccessor 获取空值
- java - IntelliJ 不提示变量上的可用函数/对象
- flutter - 任务“:audioplayers:compileDebugKotlin”执行失败
- docker - 更新具有虚拟卷的 docker-compose 容器,该虚拟卷也在其他容器中使用,而无需停止其他容器
- python-3.x - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是实现 ABC 中的“NoneType”
- c++ - 如何防止用户在 C 和 C++ 项目的通用头文件中编写 C++ 代码?
- android - 在底片内形成表单时如何制作验证步进器?
- python - 请帮助它适用于数字 1 可被 2 整除
- go - 如何让我最近使用的命令出现在 vscode 自动完成的顶部
- express - 如何使用node js设计一个模拟实时数据模拟器?