1. 程式人生 > >CAFFE 成功MAKE成功後,make runtest 出現了大量的錯誤

CAFFE 成功MAKE成功後,make runtest 出現了大量的錯誤

CAFFE深度學習交流群:532629018

CXX src/caffe/test/test_data_transformer.cpp

CXX src/caffe/test/test_filler.cpp
CXX src/caffe/test/test_syncedmem.cpp
CXX src/caffe/test/test_mvn_layer.cpp
CXX src/caffe/test/test_solver.cpp
CXX src/caffe/test/test_inner_product_layer.cpp
CXX src/caffe/test/test_hdf5data_layer.cpp
CXX src/caffe/test/test_data_layer.cpp
CXX src/caffe/test/test_platform.cpp
CXX src/caffe/test/test_image_data_layer.cpp
CXX src/caffe/test/test_threshold_layer.cpp
CXX src/caffe/test/test_tanh_layer.cpp
CXX src/caffe/test/test_random_number_generator.cpp
CXX src/caffe/test/test_concat_layer.cpp
CXX src/caffe/test/test_lrn_layer.cpp
CXX src/caffe/test/test_argmax_layer.cpp
CXX src/caffe/test/test_euclidean_loss_layer.cpp
CXX src/caffe/test/test_benchmark.cpp
CXX src/caffe/test/test_accuracy_layer.cpp
CXX src/caffe/test/test_stochastic_pooling.cpp
CXX src/caffe/test/test_eltwise_layer.cpp
CXX src/caffe/test/test_sigmoid_cross_entropy_loss_layer.cpp
CXX src/caffe/test/test_power_layer.cpp
CXX src/caffe/test/test_net.cpp
CXX src/caffe/test/test_im2col_layer.cpp
CXX src/caffe/test/test_protobuf.cpp
CXX src/caffe/test/test_contrastive_loss_layer.cpp
CXX src/caffe/test/test_hdf5_output_layer.cpp
CXX src/caffe/test/test_hinge_loss_layer.cpp
CXX src/caffe/test/test_maxpool_dropout_layers.cpp
CXX src/caffe/test/test_split_layer.cpp
CXX src/caffe/test/test_util_blas.cpp
CXX src/caffe/test/test_math_functions.cpp
CXX src/caffe/test/test_infogain_loss_layer.cpp
CXX src/caffe/test/test_softmax_with_loss_layer.cpp
CXX src/caffe/test/test_memory_data_layer.cpp
CXX src/caffe/test/test_internal_thread.cpp
CXX src/caffe/test/test_dummy_data_layer.cpp
CXX src/caffe/test/test_roi_pooling_layer.cpp
src/caffe/test/test_roi_pooling_layer.cpp:28:26: error: ‘FloatGPU’ was not declared in this scope
 typedef ::testing::Types<FloatGPU, DoubleGPU> TestDtypesGPU;
                          ^
src/caffe/test/test_roi_pooling_layer.cpp:28:36: error: ‘DoubleGPU’ was not declared in this scope
 typedef ::testing::Types<FloatGPU, DoubleGPU> TestDtypesGPU;
                                    ^
src/caffe/test/test_roi_pooling_layer.cpp:28:45: error: template argument 1 is invalid
 typedef ::testing::Types<FloatGPU, DoubleGPU> TestDtypesGPU;
                                             ^
src/caffe/test/test_roi_pooling_layer.cpp:28:45: error: template argument 2 is invalid
In file included from src/caffe/test/test_roi_pooling_layer.cpp:21:0:
./include/caffe/test/test_caffe_main.hpp: In instantiation of ‘class caffe::MultiDeviceTest<int>’:
src/caffe/test/test_roi_pooling_layer.cpp:31:7:   required from ‘class caffe::ROIPoolingLayerTest<int>’
src/caffe/test/test_roi_pooling_layer.cpp:90:1:   required from ‘class caffe::ROIPoolingLayerTest_TestGradient_Test<int>’
./src/gtest/gtest.h:7334:28:   required from ‘static bool testing::internal::TypeParameterizedTest<Fixture, TestSel, Types>::Register(const char*, const char*, const char*, int) [with Fixture = caffe::ROIPoolingLayerTest; TestSel = testing::internal::TemplateSel<caffe::ROIPoolingLayerTest_TestGradient_Test>; Types = testing::internal::Types1<int>]’
src/caffe/test/test_roi_pooling_layer.cpp:90:1:   required from here
./include/caffe/test/test_caffe_main.hpp:33:37: error: ‘int’ is not a class, struct, or union type
   typedef typename TypeParam::Dtype Dtype;
                                     ^
src/caffe/test/test_roi_pooling_layer.cpp: In instantiation of ‘class caffe::ROIPoolingLayerTest<int>’:
src/caffe/test/test_roi_pooling_layer.cpp:90:1:   required from ‘class caffe::ROIPoolingLayerTest_TestGradient_Test<int>’
./src/gtest/gtest.h:7334:28:   required from ‘static bool testing::internal::TypeParameterizedTest<Fixture, TestSel, Types>::Register(const char*, const char*, const char*, int) [with Fixture = caffe::ROIPoolingLayerTest; TestSel = testing::internal::TemplateSel<caffe::ROIPoolingLayerTest_TestGradient_Test>; Types = testing::internal::Types1<int>]’
src/caffe/test/test_roi_pooling_layer.cpp:90:1:   required from here
src/caffe/test/test_roi_pooling_layer.cpp:32:37: error: ‘int’ is not a class, struct, or union type
   typedef typename TypeParam::Dtype Dtype;
                                     ^
src/caffe/test/test_roi_pooling_layer.cpp:81:22: error: ‘int’ is not a class, struct, or union type
   Blob<Dtype>* const blob_bottom_data_;
                      ^
src/caffe/test/test_roi_pooling_layer.cpp:82:22: error: ‘int’ is not a class, struct, or union type
   Blob<Dtype>* const blob_bottom_rois_;
                      ^
src/caffe/test/test_roi_pooling_layer.cpp:83:22: error: ‘int’ is not a class, struct, or union type
   Blob<Dtype>* const blob_top_data_;
                      ^
src/caffe/test/test_roi_pooling_layer.cpp:84:24: error: ‘int’ is not a class, struct, or union type
   vector<Blob<Dtype>*> blob_bottom_vec_;
                        ^
src/caffe/test/test_roi_pooling_layer.cpp:85:24: error: ‘int’ is not a class, struct, or union type
   vector<Blob<Dtype>*> blob_top_vec_;
                        ^
src/caffe/test/test_roi_pooling_layer.cpp: In instantiation of ‘caffe::ROIPoolingLayerTest<TypeParam>::ROIPoolingLayerTest() [with TypeParam = int]’:
src/caffe/test/test_roi_pooling_layer.cpp:90:1:   required from ‘testing::Test* testing::internal::TestFactoryImpl<TestClass>::CreateTest() [with TestClass = caffe::ROIPoolingLayerTest_TestGradient_Test<int>]’
src/caffe/test/test_roi_pooling_layer.cpp:103:1:   required from here
src/caffe/test/test_roi_pooling_layer.cpp:38:41: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_data_’
         blob_top_data_(new Blob<Dtype>()) {
                                         ^
src/caffe/test/test_roi_pooling_layer.cpp:38:41: error: ‘int’ is not a class, struct, or union type
src/caffe/test/test_roi_pooling_layer.cpp:38:41: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
src/caffe/test/test_roi_pooling_layer.cpp:38:41: error: ‘int’ is not a class, struct, or union type
src/caffe/test/test_roi_pooling_layer.cpp:38:41: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_top_data_’
src/caffe/test/test_roi_pooling_layer.cpp:38:41: error: ‘int’ is not a class, struct, or union type
src/caffe/test/test_roi_pooling_layer.cpp:42:27: error: ‘int’ is not a class, struct, or union type
     GaussianFiller<Dtype> filler(filler_param);
                           ^
src/caffe/test/test_roi_pooling_layer.cpp:42:27: error: ‘int’ is not a class, struct, or union type
src/caffe/test/test_roi_pooling_layer.cpp:43:5: error: ‘class caffe::ROIPoolingLayerTest<int>’ has no member named ‘blob_bottom_data_’
     filler.Fill(this->blob_bottom_data_);
     ^
src/caffe/test/test_roi_pooling_layer.cpp:47:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_vec_’
     blob_bottom_vec_.push_back(blob_bottom_data_);
     ^
src/caffe/test/test_roi_pooling_layer.cpp:47:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_data_’
src/caffe/test/test_roi_pooling_layer.cpp:49:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[0 + 5*i] = 0; //caffe_rng_rand() % 4;
     ^
src/caffe/test/test_roi_pooling_layer.cpp:50:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[1 + 5*i] = 1; // x1 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:51:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[2 + 5*i] = 1; // y1 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:52:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[3 + 5*i] = 6; // x2 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:53:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[4 + 5*i] = 6; // y2 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:55:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[0 + 5*i] = 2;
     ^
src/caffe/test/test_roi_pooling_layer.cpp:56:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[1 + 5*i] = 6; // x1 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:57:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[2 + 5*i] = 2; // y1 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:58:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[3 + 5*i] = 7; // x2 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:59:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[4 + 5*i] = 11; // y2 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:61:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[0 + 5*i] = 1;
     ^
src/caffe/test/test_roi_pooling_layer.cpp:62:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[1 + 5*i] = 3; // x1 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:63:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[2 + 5*i] = 1; // y1 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:64:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[3 + 5*i] = 5; // x2 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:65:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[4 + 5*i] = 10; // y2 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:67:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[0 + 5*i] = 0;
     ^
src/caffe/test/test_roi_pooling_layer.cpp:68:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[1 + 5*i] = 3; // x1 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:69:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[2 + 5*i] = 3; // y1 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:70:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[3 + 5*i] = 3; // x2 < 8
     ^
src/caffe/test/test_roi_pooling_layer.cpp:71:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     blob_bottom_rois_->mutable_cpu_data()[4 + 5*i] = 3; // y2 < 12
     ^
src/caffe/test/test_roi_pooling_layer.cpp:73:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_vec_’
     blob_bottom_vec_.push_back(blob_bottom_rois_);
     ^
src/caffe/test/test_roi_pooling_layer.cpp:73:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
src/caffe/test/test_roi_pooling_layer.cpp:74:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_top_vec_’
     blob_top_vec_.push_back(blob_top_data_);
     ^
src/caffe/test/test_roi_pooling_layer.cpp:74:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_top_data_’
src/caffe/test/test_roi_pooling_layer.cpp: In instantiation of ‘caffe::ROIPoolingLayerTest<TypeParam>::~ROIPoolingLayerTest() [with TypeParam = int]’:
src/caffe/test/test_roi_pooling_layer.cpp:90:1:   required from ‘testing::Test* testing::internal::TestFactoryImpl<TestClass>::CreateTest() [with TestClass = caffe::ROIPoolingLayerTest_TestGradient_Test<int>]’
src/caffe/test/test_roi_pooling_layer.cpp:103:1:   required from here
src/caffe/test/test_roi_pooling_layer.cpp:77:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_data_’
     delete blob_bottom_data_;
     ^
src/caffe/test/test_roi_pooling_layer.cpp:78:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_bottom_rois_’
     delete blob_bottom_rois_;
     ^
src/caffe/test/test_roi_pooling_layer.cpp:79:5: error: using invalid field ‘caffe::ROIPoolingLayerTest<TypeParam>::blob_top_data_’
     delete blob_top_data_;
     ^
src/caffe/test/test_roi_pooling_layer.cpp: In instantiation of ‘void caffe::ROIPoolingLayerTest_TestGradient_Test<gtest_TypeParam_>::TestBody() [with gtest_TypeParam_ = int]’:
src/caffe/test/test_roi_pooling_layer.cpp:103:1:   required from here
src/caffe/test/test_roi_pooling_layer.cpp:91:37: error: ‘caffe::ROIPoolingLayerTest_TestGradient_Test<int>::TypeParam {aka int}’ is not a class, struct, or union type
   typedef typename TypeParam::Dtype Dtype;
                                     ^
src/caffe/test/test_roi_pooling_layer.cpp:97:26: error: ‘int’ is not a class, struct, or union type
   ROIPoolingLayer<Dtype> layer(layer_param);
                          ^
src/caffe/test/test_roi_pooling_layer.cpp:98:26: error: ‘int’ is not a class, struct, or union type
   GradientChecker<Dtype> checker(1e-4, 1e-2);
                          ^
src/caffe/test/test_roi_pooling_layer.cpp:98:26: error: ‘int’ is not a class, struct, or union type
src/caffe/test/test_roi_pooling_layer.cpp:97:26: error: ‘int’ is not a class, struct, or union type
   ROIPoolingLayer<Dtype> layer(layer_param);
                          ^
src/caffe/test/test_roi_pooling_layer.cpp:99:3: error: ‘class caffe::ROIPoolingLayerTest_TestGradient_Test<int>’ has no member named ‘blob_bottom_vec_’
   checker.CheckGradientExhaustive(&layer, this->blob_bottom_vec_,
   ^
src/caffe/test/test_roi_pooling_layer.cpp:99:3: error: ‘class caffe::ROIPoolingLayerTest_TestGradient_Test<int>’ has no member named ‘blob_top_vec_’
Makefile:501: recipe for target '.build_release/src/caffe/test/test_roi_pooling_layer.o' failed

make: *** [.build_release/src/caffe/test/test_roi_pooling_layer.o] Error 1

*************************解決以上問題的方法*************************************

出現上面的問題,可能是按照下面的方法做的:

cd caffe
cp Makefile.config.example Makefile.config
make all
make test
make runtest

然後就出現了這樣的問題。我們應該按照以下的辦法再來編譯一下CAFFE 。也許不會出現上面的錯誤了。

Not sure about your problem, by the way, I build caffe by

cd caffe


cp Makefile.config.example Makefile.config


and change setting in Makefile.config


mkdir build


cd build


cmake ..

./configure (??not sure??)


make all

without using a build folder, for me there will be linking problem says libcaffe.o cant not find "xxx"

還有一種方法可以一試:

到CAFFE資料夾, 使用模板寫個Makefile.config. 具體就是先複製一下模板, 再改一些內容(我喜歡用EMACS).

cp Makefile.config.example Makefile.config

-因為CPU MODE, 所以在CPU_ONLY := 1前面的#要去掉.

-兩個路徑要改成這樣:(新增後面的兩個hdf5的路徑, 否則編譯時報hdf5錯誤)

# Whatever else you find you need goes here.

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

準備好了.

make pycaffe

make all

make test

make runtest

--結果顯示ALL TESTS PASSED就安裝好了, 只需要再加上一個PYTHONPATH; 

另外, 這個make預設是用CPU單任務運算,如果想要快一點, 比如我想使4個任務, 在make後面加上-j4標籤.

如果上面4行某一行報錯之後想要重試,建議先make clean再重新開始.

這是一種再次編譯的方法。主要是再次指定庫檔案 。或許可以解決問題。