Numba:返回到对象模式时将错误抑制到

2024-10-06 12:33:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个函数,它可以作为jitted函数运行,也可以作为普通python或对象模式numba运行,这取决于numba是否能够进行类型推断。实际上,我更喜欢普通的python,但除了编写自己的装饰器之外,似乎没有其他方法可以做到这一点

我为什么要这样做?因为我有一个函数f,它接受另一个函数g作为参数。因此,如果g是一个jitted,那么我希望f被jitted,这样整个过程可以快速运行,但是如果g是普通python,那么我希望f仍然运行,尽管运行速度较慢

它只需用@jit注释f就可以很好地工作,除了第一次在对象模式下运行该函数时,我会收到一条关于类型推断失败的编译警告。我想不提这个警告

This answer表示使用@autojit(warn=False),但不再有任何autojit。它还说@jit(warn=False)会起作用,但那也不起作用,我得到:

KeyError: "<class 'numba.core.cpu.CPUTargetOptions'> does not support option: 'warn'"

一定有办法做到这一点而不被警告,但我似乎无法谷歌它。谢谢你的帮助


Tags: 对象方法函数false警告类型参数过程