caffe-yolo
caffe-yolo copied to clipboard
Can I run caffe-yolo on non-GPU machine?
Hello, I'm trying to test YOLO model on Caffe on my local machine which I don't have GPU, Can I run YOLO using CPU-machine? Thank you
Sure you can. If you use my python script to test, just set "caffe.set_mode_cpu()" in the script when testing on a CPU-machine.
When I try to run: make -j8 it gives me the following error:
In file included from ./include/caffe/common.hpp:19:0, from ./include/caffe/blob.hpp:8, from ./include/caffe/layers/detection_loss_layer.hpp:6, from src/caffe/layers/detection_loss_layer.cpp:6: ./include/caffe/util/device_alternate.hpp:15:36: error: no ‘void caffe::DetectionLossLayer<Dtype>::Forward_gpu(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&)’ member function declared in class ‘caffe::DetectionLossLayer<Dtype>’ const vector<Blob<Dtype>*>& top) { NO_GPU; } \ ^ src/caffe/layers/detection_loss_layer.cpp:222:1: note: in expansion of macro ‘STUB_GPU’ STUB_GPU(DetectionLossLayer); ^ ./include/caffe/util/device_alternate.hpp:19:39: error: no ‘void caffe::DetectionLossLayer<Dtype>::Backward_gpu(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<bool>&, const std::vector<caffe::Blob<Dtype>*>&)’ member function declared in class ‘caffe::DetectionLossLayer<Dtype>’ const vector<Blob<Dtype>*>& bottom) { NO_GPU; } \ ^ src/caffe/layers/detection_loss_layer.cpp:222:1: note: in expansion of macro ‘STUB_GPU’ STUB_GPU(DetectionLossLayer); ^ Makefile:572: recipe for target '.build_release/src/caffe/layers/detection_loss_layer.o' failed make: *** [.build_release/src/caffe/layers/detection_loss_layer.o] Error 1 make: *** Waiting for unfinished jobs....
Have you set CPU_ONLY := 1 in the Makefile.config?
Yes, I did
# CPU-only switch (uncomment to build without GPU support).
CPU_ONLY := 1
Do I need to set anything else?
You can try removing the following lines in the detection_loss_layer.cpp
#ifdef CPU_ONLY STUB_GPU(DetectionLossLayer); #endif
Great, it worked, Thank you, appreciate it