Makefile Caffe segnt编译错误

Makefile Caffe segnt编译错误,makefile,ubuntu-16.04,caffe,Makefile,Ubuntu 16.04,Caffe,我在编译caffe segnet时遇到了这个错误。 这是我使用的终端 ~/.local/install/caffe segnet$make all CXX src/caffe/layers/contrastive_loss_layer.cpp src/caffe/layers/contrastive_loss_layer.cpp: In instantiation of ‘void caffe::ContrastiveLossLayer<Dtype>::Forward_cpu(con

我在编译caffe segnet时遇到了这个错误。 这是我使用的终端 ~/.local/install/caffe segnet$make all

CXX src/caffe/layers/contrastive_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
CXX src/caffe/layers/contractive_loss_layer.cpp
src/caffe/layers/contractive_loss_layer.cpp:在“void caffe::contractive losslayer::Forward_cpu(const std::vector&,const std::vector&)[带Dtype=float]的实例中:
src/caffe/layers/contractive_loss_layer.cpp:118:1:此处需要
src/caffe/layers/contractive_loss_layer.cpp:56:30:错误:调用“max(double,float)”时没有匹配函数
Dtype dist=std::max(margin-sqrt(dist_sq_.cpu_data()[i]),Dtype(0.0));
^
在/usr/include/c++/5/algorithm:61:0中包含的文件中,
来自src/caffe/layers/contractive_loss_layer.cpp:1:
/usr/include/c++/5/bits/stl_-algobase.h:219:5:注:候选:模板常量和标准::max(常量和常量)
最大值(常数Tp和常数a、常数Tp和常数b)
^
/usr/include/c++/5/bits/stl_algobase.h:219:5:注意:模板参数推导/替换失败:
src/caffe/layers/contractive_loss_layer.cpp:56:30:注:参数'const_Tp'('double'和'float'的推导冲突类型)
Dtype dist=std::max(margin-sqrt(dist_sq_.cpu_data()[i]),Dtype(0.0));
^
在/usr/include/c++/5/algorithm:61:0中包含的文件中,
来自src/caffe/layers/contractive_loss_layer.cpp:1:
/usr/include/c++/5/bits/stl_-algobase.h:265:5:注:候选:模板常量Tp&std::max(常量Tp&,常量Tp&,常量比较)
最大值(常数Tp和a,常数Tp和b,比较comp)
^
/usr/include/c++/5/bits/stl_algobase.h:265:5:注意:模板参数推导/替换失败:
src/caffe/layers/contractive_loss_layer.cpp:56:30:注:参数'const_Tp'('double'和'float'的推导冲突类型)
Dtype dist=std::max(margin-sqrt(dist_sq_.cpu_data()[i]),Dtype(0.0));
^
Makefile:526:目标的配方“.build\u release/src/caffe/layers/contractive\u loss\u layer.o”失败
make:**[.build\u release/src/caffe/layers/contractive\u loss\u layer.o]错误1

通过使用此数据类型dist=std::max(margin-(float)sqrt(dist_sq_.cpu_data()[i]),Dtype(0.0))替换对比_loss_layer.cpp文件的第56行来解决此错误;并成功完成所有操作,但在生成runtest Makefile:526:recipe for target“.build\u release/src/caffe/test/test\u power\u layer.o”时出现新错误:**[.build\u release/src/caffe/test/test\u power\u layer.o]错误1