【问题标题】:Numba: suppress error to when falling back to object modeNumba:回退到对象模式时抑制错误
【发布时间】:2020-12-10 00:36:08
【问题描述】:

我想编写一个函数,它可以作为 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'"

必须有一种方法可以在不收到警告的情况下完成此操作,但我似乎无法用谷歌搜索它。感谢您的帮助。

【问题讨论】:

    标签: python numba


    【解决方案1】:

    为此有一个环境变量。您可以在运行时尝试设置 NUMBA_DEBUG_TYPEINFER=0。

    参考:https://numba.pydata.org/numba-doc/dev/reference/envvars.html?highlight=warn#envvar-NUMBA_DEBUG_TYPEINFER

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-08
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      相关资源
      最近更新 更多