abe*_*abe 9 python opencv machine-learning tensorflow yolo
收到 IndexError 错误:yolo_layers 行上标量变量的索引无效。
network = cv2.dnn.readNetFromDarknet('yolov3.cfg', 'yolov3.weights')
layers = network.getLayerNames()
yolo_layers = [layers[i[0] - 1] for i in network.getUnconnectedOutLayers()]
Run Code Online (Sandbox Code Playgroud)
该代码无法在我的 Jupyter 笔记本上运行,但可以在 google collab 上正常运行。不知道为什么。可能是我的python版本?
小智 14
可能是cv2版本不同造成的。支持 CUDA 的 cv2 模块版本将在调用时为您提供一个二维数组network.getUnconnectedOutLayers()。但是,不支持 CUDA 的版本将给出一维数组。
您可以尝试将索引 0 结束的括号去掉。
对于 CPU 版本:
network = cv2.dnn.readNetFromDarknet('yolov3.cfg', 'yolov3.weights')
layers = network.getLayerNames()
yolo_layers = [layers[i - 1] for i in network.getUnconnectedOutLayers()]
Run Code Online (Sandbox Code Playgroud)
返回:['yolo_82', 'yolo_94', 'yolo_106']
在 OpenCV 版本上测试4.5.5。