0

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

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

代码如下所示。

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
4

1 回答 1

0

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

但是,根据文档numpy.linalg.svd支持(并不是说它可能与 不同)。这种支持是部分的,因为“仅支持 2 个第一个参数”。在您的情况下,这应该没问题。scipy.linalg.svd

于 2021-04-16T16:46:20.030 回答