Python setUpNet DNN模块未使用CUDA后端构建;切换到CPU
我想用GPU运行我的脚本python,就像你看到的,我使用命令行:Python setUpNet DNN模块未使用CUDA后端构建;切换到CPU,python,opencv,gpu,Python,Opencv,Gpu,我想用GPU运行我的脚本python,就像你看到的,我使用命令行:watch nvidia smi,来显示GPU的进程,不幸的是,脚本python只使用了41Mib的GPU容量: 这是我代码的一部分: import time import math import cv2 import numpy as np labelsPath = "./coco.names" LABELS = open(labelsPath).read().strip().split("\n") np.random.see
watch nvidia smi
,来显示GPU的进程,不幸的是,脚本python只使用了41Mib的GPU容量:
这是我代码的一部分:
import time
import math
import cv2
import numpy as np
labelsPath = "./coco.names"
LABELS = open(labelsPath).read().strip().split("\n")
np.random.seed(42)
weightsPath = "./yolov3.weights"
configPath = "./yolov3.cfg"
net = cv2.dnn.readNetFromDarknet(configPath, weightsPath)
ln = net.getLayerNames()
ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
FR=0
vs = cv2.VideoCapture(vid_path)
# vs = cv2.VideoCapture(0) ## USe this if you want to use webcam feed
writer = None
(W, H) = (None, None)
fl = 0
q = 0
while True:
(grabbed, frame) = vs.read()
if not grabbed:
break
if W is None or H is None:
(H, W) = frame.shape[:2]
FW=W
if(W<1075):
FW = 1075
FR = np.zeros((H+210,FW,3), np.uint8)
col = (255,255,255)
FH = H + 210
FR[:] = col
blob = cv2.dnn.blobFromImage(frame, 1 / 255.0, (416, 416),
swapRB=True, crop=False)
net.setInput(blob)
start = time.time()
layerOutputs = net.forward(ln)
end = time.time()
然后,再次运行脚本后,将显示以下消息,并继续使用CPU运行脚本:
[ WARN:0] global /io/opencv/modules/dnn/src/dnn.cpp (1363) setUpNet DNN module was not built with CUDA backend; switching to CPU
您需要手动构建OpenCV才能使用GPU
这是一个很好的教程,介绍了如何使用GPU。您需要手动构建OpenCV才能使用GPU
这是一个很好的教程,介绍了如何做到这一点。cuda和cudnn的兼容性图表: 从以下位置检查计算能力版本: 这是7.5 在支持GPU的情况下,对于7.5计算能力,CUDA SDK 11.0–11.2支持3.5–8.6计算能力(开普勒(部分)、麦克斯韦、帕斯卡、沃尔塔、图灵、安培): 检查您支持的NVIDIA硬件。 在我的例子中,我使用的是带有图灵的特斯拉T4,它与cuDNN兼容 所以在编译报告中,您可以看到Cmake将cuDNN可用性返回为“否”: 使用以下方法获取docker映像: sudo docker nvidia/cuda:11.1-cudnn8-runtime-ubuntu18.04 编译的Opencv Cuda来自:
cuda和cudnn的兼容性图表: 从以下位置检查计算能力版本: 这是7.5 在支持GPU的情况下,对于7.5计算能力,CUDA SDK 11.0–11.2支持3.5–8.6计算能力(开普勒(部分)、麦克斯韦、帕斯卡、沃尔塔、图灵、安培): 检查您支持的NVIDIA硬件。 在我的例子中,我使用的是带有图灵的特斯拉T4,它与cuDNN兼容 所以在编译报告中,您可以看到Cmake将cuDNN可用性返回为“否”: 使用以下方法获取docker映像: sudo docker nvidia/cuda:11.1-cudnn8-runtime-ubuntu18.04 编译的Opencv Cuda来自:
[ WARN:0] global /io/opencv/modules/dnn/src/dnn.cpp (1363) setUpNet DNN module was not built with CUDA backend; switching to CPU