Numpy 是否无法在使用@njit并行化的自定义python函数中调用内置函数(例如svd)?

Numpy 是否无法在使用@njit并行化的自定义python函数中调用内置函数(例如svd)?,numpy,parallel-processing,matrix-multiplication,svd,numba-pro,Numpy,Parallel Processing,Matrix Multiplication,Svd,Numba Pro,尝试运行涉及svd函数的for循环时出现以下错误 TypingError: Failed in nopython mode pipeline (step: nopython frontend) Untyped global name 'svd': cannot determine Numba type of <class 'function'> 在撰写本文时,Scipy不在Numba中官方支持的模块列表中(请参阅文档和说明) 但是,支持numpy.linalg.svd(这可能与sc

尝试运行涉及svd函数的for循环时出现以下错误

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Untyped global name 'svd': cannot determine Numba type of <class 'function'>

在撰写本文时,Scipy不在Numba中官方支持的模块列表中(请参阅文档和说明)


但是,支持
numpy.linalg.svd
(这可能与
scipy.linalg.svd
不同)。这种支持是局部的,因为“仅支持前两个参数”。这对你来说应该没问题。

谢谢。我使用以下命令使用numba成功运行它
s,v,d=np.linalg.svd(a,完整矩阵=False)
from scipy.linalg import svd
import numpy as np
from numba import jit

PatchSize = 5
@jit(nopython=True)
def svd_solver(image):
  Hight = image.shape[0]
  Width = image.shape[1]
  for i in range(PatchSize):
    for j in range(PatchSize):
       Count    =  Count+1
       Patch  =  ImgInput[i:Hight-PatchSize+i+1,j:Width-PatchSize+j+1]
       SG_S, SG_V, SG_D  =  svd(Patch)
  return SG_V