我应该如何将定义的函数应用于 cupy.array 而不是 np.vectorize?有没有在cupy中实现类似的功能?
我正在用 Python 3.6.9 编写模拟程序。
我想用 CuPy(CUDA10.1 的 6.0.0)在 GPU(GTX1060,NVIDIA)中进行模拟。
在原始代码中,函数 numpy.vectorize 用于将定义的函数应用于 np.array。但是,相同的功能尚未在 CuPy 中实现。
原始代码(使用numpy)如下:
#For define function
def rate(tmean,x,y,z):
rate = 1/z/(1 + math.exp(-x*(tmean-y)))
#DVR<0
if rate < 0:
rate = 0
return rate
#tmean is temperature data(365,100,100) and loaded as np.array
#paras is parameter(3,100,100)
#vectorized
f = np.vectorize(rate)
#roop
for i in range(365):
#calc developing rate(by function "rate") and accumulate
dvi[i,:,:] = dvi[i-1,:,:] + f(tmean[i,:,:],paras[0],paras[1],paras[2])
我知道几乎 numpy 的功能已经在 CuPy 中实现了。所以我改变了
f = np.vectorized(rate)
至
f= cp.vectorized(rate)
但是发生了AttributeError。