在进行segnet 编译与测试时出现的错误

在进行segnet 编译与测试时出现的错误

1.在执行sudo make all -j4的时候,出现了以下错误,报错提示说在caffe-segnet/src/caffe/layers的路径下的contrastive_loss_layer.cpp出错

CXX src/caffe/layers/multinomial_logistic_loss_layer.cpp
src/caffe/layers/contrastive_loss_layer.cpp: In instantiation of ‘void caffe::ContrastiveLossLayer<Dtype>::Forward_cpu(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&) [with Dtype = float]’:
src/caffe/layers/contrastive_loss_layer.cpp:118:1:   required from here
src/caffe/layers/contrastive_loss_layer.cpp:56:30: error: no matching function for call to ‘max(double, float)’
         Dtype dist = std::max(margin - sqrt(dist_sq_.cpu_data()[i]), Dtype(0.0));
                              ^
In file included from /usr/include/c++/5/algorithm:61:0,
                 from src/caffe/layers/contrastive_loss_layer.cpp:1:
/usr/include/c++/5/bits/stl_algobase.h:219:5: note: candidate: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)
     max(const _Tp& __a, const _Tp& __b)
     ^
/usr/include/c++/5/bits/stl_algobase.h:219:5: note:   template argument deduction/substitution failed:
src/caffe/layers/contrastive_loss_layer.cpp:56:30: note:   deduced conflicting types for parameter ‘const _Tp’ (‘double’ and ‘float’)
         Dtype dist = std::max(margin - sqrt(dist_sq_.cpu_data()[i]), Dtype(0.0));
                              ^
In file included from /usr/include/c++/5/algorithm:61:0,
                 from src/caffe/layers/contrastive_loss_layer.cpp:1:
/usr/include/c++/5/bits/stl_algobase.h:265:5: note: candidate: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
     ^
/usr/include/c++/5/bits/stl_algobase.h:265:5: note:   template argument deduction/substitution failed:
src/caffe/layers/contrastive_loss_layer.cpp:56:30: note:   deduced conflicting types for parameter ‘const _Tp’ (‘double’ and ‘float’)
         Dtype dist = std::max(margin - sqrt(dist_sq_.cpu_data()[i]), Dtype(0.0));
                              ^
Makefile:526: recipe for target '.build_release/src/caffe/layers/contrastive_loss_layer.o' failed
make: *** [.build_release/src/caffe/layers/contrastive_loss_layer.o] Error 1
make: *** 正在等待未完成的任务....

2.

在执行sudo python ./Scripts/test_segmentation_camvid.py --model Models/segnet_basic_inference.prototxt --weights ./Example_Models/segnet_weights_driving_webdemo.caffemodel --iter 1的时候出现的错误:

解决方案:

安装需要用到的库:

sudo apt-get install python-matplotlib
sudo apt-get install python-scipy
sudo apt-get install python-opencv
sudo apt-get install python-protobuf
wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificate
sudo python get-pip.py
sudo pip install -U scikit-image

3.后面又出现了这个错误:


Traceback (most recent call last):
  File "./Scripts/test_segmentation_camvid.py", line 14, in <module>
    import caffe
ImportError: No module named caffe

解决方案:

发现这里在配置caffe_root路径时少打了个/,正确的应该是'xxx/cafe-segnet/'

原文地址:https://www.cnblogs.com/bxtfdxg/p/14029659.html