gpt4 book ai didi

python - numba 中的@jit 和@vectorize 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 21:45:13 25 4
gpt4 key购买 nike

什么时候应该使用@vectorize?

我尝试了@jit 并显示了下面的那部分代码,

from numba import jit

@jit
def kma(g,temp):
k=np.exp(-(g+np.abs(g))/(2*temp))
return k

但我的代码没有加速算法。为什么?

最佳答案

@vectorize 用于编写可以一次将一个元素(标量)应用于数组的表达式。 @jit 装饰器更通用,可以处理任何类型的计算。

文档中有对其他好处的详细讨论:

http://numba.pydata.org/numba-doc/latest/user/vectorize.html

You might ask yourself, “why would I go through this instead of compiling a simple iteration loop using the @jit decorator?”. The answer is that NumPy ufuncs automatically get other features such as reduction, accumulation or broadcasting.

你的代码没有被加速的原因(我看到 jitted 和非 jitted 代码之间几乎相同的性能),是你正在执行的操作已经完全由低级编译代码处理在 numpy 向量化操作的背后。

如果您展开隐式循环以避免创建中间数组,您可能会节省一些钱,但通常 numba 确实擅长于在 numpy 中不容易向量化的操作。

关于python - numba 中的@jit 和@vectorize 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47560627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com