caffe-segnet icon indicating copy to clipboard operation
caffe-segnet copied to clipboard

contrastive_loss_layer.cpp has a very little bug (I think)

Open SuaiChen opened this issue 7 years ago • 2 comments

I met an error just like below:

src/caffe/layers/contrastive_loss_layer.cpp:56:22: error: no matching function for call to 'max'
        Dtype dist = std::max(margin - sqrt(dist_sq_.cpu_data()[i]), 0.0);
                     ^~~~~~~~
src/caffe/layers/contrastive_loss_layer.cpp:118:19: note: in instantiation of member function 'caffe::ContrastiveLossLayer<float>::Forward_cpu' requested here
INSTANTIATE_CLASS(ContrastiveLossLayer);
                  ^
/Library/Developer/CommandLineTools/usr/include/c++/v1/algorithm:2611:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('float' vs. 'double')
max(const _Tp& __a, const _Tp& __b)
^
/Library/Developer/CommandLineTools/usr/include/c++/v1/algorithm:2603:1: note: candidate function template not viable: requires 3 arguments, but 2 were provided
max(const _Tp& __a, const _Tp& __b, _Compare __comp)

I revised the 56th row.

Dtype dist = std::max(margin - sqrt(dist_sq_.cpu_data()[i]), Dtype(0.0));

And it can work. My computer is Macpro and my system version is 10.13.1.

SuaiChen avatar Jan 05 '18 10:01 SuaiChen

Met the same problem. Just followed your solution. Maybe the Dtype() is forgotten, as is shown in line 54 in the same file.

qxandy avatar Mar 06 '18 21:03 qxandy

Yes, previously referenced here: https://github.com/alexgkendall/caffe-segnet/issues/124#issuecomment-340714512

qu1j0t3 avatar Mar 11 '18 23:03 qu1j0t3