我正在尝试在某些用Numba装饰器(例如nopython=True, parallel=True
)注释的函数中使用OpenCV。我在Jetson Xavier上运行了该程序,该文件以Nvidia SDK Manager闪烁。
代码是这样的:
@jit(nopython=True, cache=True, parallel=True)
def decompress(data):
result = list()
for d in data:
cv2_image = cv2.imdecode(d, cv2.IMREAD_COLOR)
image = np.array(cv2_image)
result.append(image)
return result
但是我得到一个错误:
TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Unknown attribute 'resize' of type Module(<module 'cv2' from '/usr/lib/python2.7/dist-packages/cv2.so'>)
File "./my-script.py", line 297:
def decompress(data):
<source elided>
cv2_image = cv2.imdecode(d, cv2.IMREAD_COLOR)
^
[1] During: typing of get attribute at /ssd/catkin_workspace/src/semantics-ros-wrapper/src/semseg.py (297)
File "./my-script.py", line 297:
def decompress(data):
<source elided>
cv2_image = cv2.imdecode(d, cv2.IMREAD_COLOR)
^
This is not usually a problem with Numba itself but instead often caused by
the use of unsupported features or an issue in resolving types.
To see Python/NumPy features supported by the latest release of Numba visit:
http://numba.pydata.org/numba-doc/dev/reference/pysupported.html
and
http://numba.pydata.org/numba-doc/dev/reference/numpysupported.html
For more information about typing errors and how to debug them visit:
http://numba.pydata.org/numba-doc/latest/user/troubleshoot.html#my-code-doesn-t-compile
If you think your code should work with Numba, please report the error message
and traceback, along with a minimal reproducer at:
https://github.com/numba/numba/issues/new
甚至可以在Numba上使用OpenCV吗?
我正在使用:python2.7和numba-0.44.0。
答案 0 :(得分:4)
Numba尚不支持OpenCV。
如果仍然希望它在函数中的numpy数组上运行,则可以设置nopython=False
这意味着您也将无法设置parallel=True
Numba有两种编译模式:nopython模式和对象模式。前者产生的代码要快得多,但是有一些局限性,可能迫使Numba退回到后者。 为防止Numba退回并引发错误,请传递nopython = True。