python - 未键入的全局名称“sum_”:无法确定 Numba 类型
问题描述
我收到错误消息:
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Untyped global name 'sum_': cannot determine Numba type of <class 'function'>
对于以下代码:
import numba as nb
from numba.pycc import CC
cc = CC('yin')
@cc.export('sum_', nb.float32(nb.float32[:]))
def sum_(a):
s = 0
for i in a:
s += i
return s
@cc.export('average', nb.float32(nb.float32[:]))
def average(a):
return sum_(a)/len(a)
cc.compile()
我应该做什么?
解决方案
我以前遇到过这个问题。jit
由于某种原因,与njit
编译函数不同,提前编译模式对类型推断没有帮助。正如这里所建议的,一种解决方法是添加一个额外的njit
装饰器。
import numba as nb
from numba.pycc import CC
cc = CC('yin')
@nb.njit
@cc.export('sum_', nb.float32(nb.float32[:]))
def sum_(a):
s = 0
for i in a:
s += i
return s
@cc.export('average', nb.float32(nb.float32[:]))
def average(a):
return sum_(a)/len(a)
cc.compile()
推荐阅读
- java - java.io.InvalidClassException: cdfs.events.C; 本地类不兼容:流 classdesc serialVersionUID = -x,本地类 serialVersionUID = y
- nginx - NGINX 无法访问此站点
- clang - 宏预处理时ClangTool解析代码短路评估不起作用
- python - 我如何使用 python 用特定标签标记特定卖家
- ios - 如何在 iOS 中使用多个注释来增加 Apple Mapkit 的缩放
- windows - Visual Studio 2019:在哪里可以删除 Visual Studio 中已添加的 Nuget 凭据?
- azure - 尽管 S1 定价层,但 Azure 计算机视觉未运行
- javascript - Vue中用于小部件非导入组件的未知自定义元素元素
- javascript - 如何在某些坐标(Webdriver io)上进行 doubleClick()?
- flutter - 使用颤振的 Listview 上没有显示来自服务器 API 的数据