Fix OSX compilation for nvcc with opencv
authorSergio <sguada@gmail.com>
Fri, 26 Sep 2014 02:53:33 +0000 (19:53 -0700)
committerSergio <sguada@gmail.com>
Fri, 3 Oct 2014 23:42:28 +0000 (16:42 -0700)
Makefile
include/caffe/data_transformer.hpp
include/caffe/util/io.hpp
models/bvlc_reference_caffenet/train_val.prototxt
src/caffe/data_transformer.cpp

index b0b2515..7dea267 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -252,6 +252,7 @@ ifeq ($(OSX), 1)
        endif
        # boost::thread is called boost_thread-mt to mark multithreading on OS X
        LIBRARIES += boost_thread-mt
+        NVCCFLAGS += -DOSX
 endif
 
 # Custom compiler
index 735f1d5..7e48df3 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef CAFFE_DATA_TRANSFORMER_HPP
 #define CAFFE_DATA_TRANSFORMER_HPP
 
+#ifndef OSX
 #include <opencv2/core/core.hpp>
+#endif
 
 #include <vector>
 
@@ -49,7 +51,9 @@ class DataTransformer {
   void Transform(const vector<Datum> & datum_vector,
                 Blob<Dtype>* transformed_blob);
 
+#ifndef OSX
   void Transform(const cv::Mat& cv_img, Blob<Dtype>* transformed_blob);
+#endif
 
   void Transform(Blob<Dtype>* input_blob, Blob<Dtype>* transformed_blob);
 
index 2032b1f..e518979 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef CAFFE_UTIL_IO_H_
 #define CAFFE_UTIL_IO_H_
 
+#ifndef OSX
 #include <opencv2/core/core.hpp>
+#endif
 
 #include <unistd.h>
 #include <string>
@@ -109,6 +111,7 @@ inline bool ReadImageToDatum(const string& filename, const int label,
   return ReadImageToDatum(filename, label, 0, 0, true, datum);
 }
 
+#ifndef OSX
 cv::Mat ReadImageToCVMat(const string& filename,
     const int height, const int width, const bool is_color);
 
@@ -127,6 +130,7 @@ inline cv::Mat ReadImageToCVMat(const string& filename) {
 }
 
 void CVMatToDatum(const cv::Mat& cv_img, Datum* datum);
+#endif
 
 leveldb::Options GetLevelDBOptions();
 
index 073d8ae..6cfeab1 100644 (file)
@@ -330,11 +330,20 @@ layers {
   }
 }
 layers {
-  name: "accuracy"
+  name: "top-1"
   type: ACCURACY
   bottom: "fc8"
   bottom: "label"
-  top: "accuracy"
+  top: "top-1"
+  include: { phase: TEST }
+}
+layers {
+  name: "top-5"
+  type: ACCURACY
+  bottom: "fc8"
+  bottom: "label"
+  top: "top-5"
+  accuracy_param: { top_k: 5 }
   include: { phase: TEST }
 }
 layers {
index abc6ec2..a195c5d 100644 (file)
@@ -1,4 +1,6 @@
+#ifndef OSX
 #include <opencv2/core/core.hpp>
+#endif
 
 #include <string>
 #include <vector>
@@ -172,6 +174,7 @@ void DataTransformer<Dtype>::Transform(const vector<Datum> & datum_vector,
   }
 }
 
+#ifndef OSX
 template<typename Dtype>
 void DataTransformer<Dtype>::Transform(const cv::Mat& cv_img,
                                        Blob<Dtype>* transformed_blob) {
@@ -179,6 +182,7 @@ void DataTransformer<Dtype>::Transform(const cv::Mat& cv_img,
   CVMatToDatum(cv_img, &datum);
   Transform(datum, transformed_blob);
 }
+#endif
 
 template<typename Dtype>
 void DataTransformer<Dtype>::Transform(Blob<Dtype>* input_blob,