首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在nopython模式下不解析类型

在nopython模式下不解析类型
EN

Stack Overflow用户
提问于 2021-09-12 18:56:07
回答 1查看 258关注 0票数 9

我正在挣扎于一个numba错误Untyped global name 'is_a_subset': Cannot determine Numba type of <class 'numba.np.ufunc.gufunc.GUFunc'>,这通常意味着我已经摸索并使用了一种不受numba支持的方法。以下代码失败。

代码语言:javascript
运行
复制
@guvectorize("(n),(n)->(n)",nopython=True)
def is_a_subset(x,y,out):
    out[:]=np.array([item in x for item in y])

@njit()
def test(x,y,z):
    is_a_subset(x,y,z)
    return z.mean()

x=np.array([[1,2,3],[3,2,1]])
y=np.array([[3,6,1],[1,2,3]])
z = np.empty_like(x)
test(x,y,z)

但是,删除测试函数上的njit会使一切正常工作。

代码语言:javascript
运行
复制
def test(x,y,z):
    is_a_subset(x,y,z)
    return z.mean()

为什么numba在非python模式下难以解析类型?

我也尝试过,没有得到不同的结果。

代码语言:javascript
运行
复制
@guvectorize(["f8[:],f8[:],f8[:]"],"(n),(n)->(n)",nopython=True)
def is_a_subset(x,y,out):
    out[:]=np.array([item in x for item in y])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-21 19:56:20

我正在使用Numba0.53.1并可以复制此错误。在Numba0.53中,关于向guvectorize的动态分派更新的这个guvectorize在结尾提到了这一点(重点是添加的):

在未来,我们希望使@guvectorize功能更接近于@vectorize功能。例如,目前不可能从(@jit)函数中调用guvectorize函数。

有一个与vectorize类似的@vectorize函数,但它演示了@vectorize函数可以在@jit函数中调用,只是它仅限于默认的target = "cpu"

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69154359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档