deep-machine-learning / restful-yolo

RESTful Web Service and C++ compilable version of YOLO written in C and CUDA for object detection.
19 stars 8 forks source link

Cannot compile with CudNN and yolo.weights file issue #1

Open oreilc16 opened 6 years ago

oreilc16 commented 6 years ago

Hi,

I tried compiling darknet-cpp with GPU=1, CUDNN=1, OPENCV=1, DEBUG=1. I get the following error:

g++ -Wno-unused-result -std=c++11  -DOPENCV `pkg-config --cflags opencv`  -DGPU -I/usr/local/cuda/include/ -I"/usr/local/lib/restbed/distribution/include/" -DCUDNN  -Wno-write-strings -Wall  -O0 -g -DOPENCV -DGPU -DCUDNN -c ./src/convolutional_layer.c -o obj-cpp/convolutional_layer.o
./src/convolutional_layer.c: In function 'void cudnn_convolutional_setup(layer*)':
./src/convolutional_layer.c:145:117: error: too few arguments to function 'cudnnStatus_t cudnnSetConvolution2dDescriptor(cudnnConvolutionDescriptor_t, int, int, int, int, int, int, cudnnConvolutionMode_t, cudnnDataType_t)'
 lution2dDescriptor(l->convDesc, l->pad, l->pad, l->stride, l->stride, 1, 1, CUDNN_CROSS_CORRELATION);
                                                                                                    ^
In file included from ./src/cuda.h:15:0,
                 from ./src/convolutional_layer.h:4,
                 from ./src/convolutional_layer.c:1:
/usr/local/cuda/include/cudnn.h:500:27: note: declared here
 cudnnStatus_t CUDNNWINAPI cudnnSetConvolution2dDescriptor( cudnnConvolutionDescriptor_t convDesc,
                           ^
Makefile:114: recipe for target 'obj-cpp/convolutional_layer.o' failed
make: *** [obj-cpp/convolutional_layer.o] Error 1

I successfully compile with CUDNN=0. I then ran the following:

wget https://pjreddie.com/media/files/yolo.weights
./darknet-cpp detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg 

I get no detections in the image (as in no bounding box) have I the wrong weights downloaded?

usage: ./darknet-cpp <function>
usage: ./darknet-cpp <function>
Cannot load image "data/labels/32_0.png"
Cannot load image "data/labels/33_0.png"
Cannot load image "data/labels/34_0.png"
Cannot load image "data/labels/35_0.png"
Cannot load image "data/labels/36_0.png"
....
....
   26 reorg              / 2    26 x  26 x 512   ->    13 x  13 x2048
   27 route  26 24
   28 conv   1024  3 x 3 / 1    13 x  13 x3072   ->    13 x  13 x1024
   29 conv    425  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 425
   30 detection
Setup: net.n = 31
net.layers[0].batch = 1
Loading weights from yolo.weights...mj = 0, mn = 1, *(net->seen) = 32013312
load_convolutional_weights: l.n*l.c*l.size*l.size = 864
load_convolutional_weights: l.n*l.c*l.size*l.size = 18432
load_convolutional_weights: l.n*l.c*l.size*l.size = 73728
load_convolutional_weights: l.n*l.c*l.size*l.size = 8192
load_convolutional_weights: l.n*l.c*l.size*l.size = 73728
load_convolutional_weights: l.n*l.c*l.size*l.size = 294912
load_convolutional_weights: l.n*l.c*l.size*l.size = 32768
load_convolutional_weights: l.n*l.c*l.size*l.size = 294912
load_convolutional_weights: l.n*l.c*l.size*l.size = 1179648
load_convolutional_weights: l.n*l.c*l.size*l.size = 131072
load_convolutional_weights: l.n*l.c*l.size*l.size = 1179648
load_convolutional_weights: l.n*l.c*l.size*l.size = 131072
load_convolutional_weights: l.n*l.c*l.size*l.size = 1179648
load_convolutional_weights: l.n*l.c*l.size*l.size = 4718592
load_convolutional_weights: l.n*l.c*l.size*l.size = 524288
load_convolutional_weights: l.n*l.c*l.size*l.size = 4718592
load_convolutional_weights: l.n*l.c*l.size*l.size = 524288
load_convolutional_weights: l.n*l.c*l.size*l.size = 4718592
load_convolutional_weights: l.n*l.c*l.size*l.size = 9437184
load_convolutional_weights: l.n*l.c*l.size*l.size = 9437184
load_convolutional_weights: l.n*l.c*l.size*l.size = 28311552
load_convolutional_weights: l.n*l.c*l.size*l.size = 435200
Done!
test_detector: layers = 13, 13, 5
data/dog.jpg: Predicted in 0.236138 seconds.

When using yolo-tiny I get the following:

wget https://pjreddie.com/media/files/tiny-yolo-voc.weights
./darknet-cpp detector test cfg/voc.data cfg/tiny-yolo-voc.cfg tiny-yolo-voc.weights data/dog.jpg
usage: ./darknet-cpp <function>
usage: ./darknet-cpp <function>
Cannot load image "data/labels/32_0.png"
Cannot load image "data/labels/33_0.png"
Cannot load image "data/labels/34_0.png"
Cannot load image "data/labels/35_0.png"
Cannot load image "data/labels/36_0.png"
....
....
   12 conv   1024  3 x 3 / 1    13 x  13 x 512   ->    13 x  13 x1024
   13 conv   1024  3 x 3 / 1    13 x  13 x1024   ->    13 x  13 x1024
   14 conv    125  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 125
   15 detection
Setup: net.n = 16
net.layers[0].batch = 8
Loading weights from tiny-yolo-voc.weights...mj = 0, mn = 1, *(net->seen) = 2566400
load_convolutional_weights: l.n*l.c*l.size*l.size = 432
load_convolutional_weights: l.n*l.c*l.size*l.size = 4608
load_convolutional_weights: l.n*l.c*l.size*l.size = 18432
load_convolutional_weights: l.n*l.c*l.size*l.size = 73728
load_convolutional_weights: l.n*l.c*l.size*l.size = 294912
load_convolutional_weights: l.n*l.c*l.size*l.size = 1179648
load_convolutional_weights: l.n*l.c*l.size*l.size = 4718592
load_convolutional_weights: l.n*l.c*l.size*l.size = 9437184
load_convolutional_weights: l.n*l.c*l.size*l.size = 128000
Done!
test_detector: layers = 13, 13, 5
data/dog.jpg: Predicted in 0.189172 seconds.
cat: 76%
bird: 25%
horse: 79%
violivei commented 6 years ago

@oreilc16 Thank you for opening this issue. Could you please tell me which CUDA/CUDNN version you are using?

oreilc16 commented 6 years ago

@violivei

Sure: Driver Version: 384.111

CUDA Version 8.0.61

cuDNN 6.0