[caffe] 01/01: patch: fix-more-float-comparison-precision-issue
Zhou Mo
cdluminate-guest at moszumanska.debian.org
Tue Aug 9 15:33:28 UTC 2016
This is an automated email from the git hooks/post-receive script.
cdluminate-guest pushed a commit to branch master
in repository caffe.
commit 960415627d3584d7d000c393e0d61bcb6c573469
Author: Zhou Mo <cdluminate at gmail.com>
Date: Tue Aug 9 15:33:14 2016 +0000
patch: fix-more-float-comparison-precision-issue
---
debian/changelog | 2 +
.../fix-more-float-comparison-precision-issue | 79 ++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 82 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 6389186..f3b5756 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ caffe (1.0.0~rc3+20160715-g42cd785-2) UNRELEASED; urgency=medium
* Fix changelog of the previous revision:
- Fix typo: comtrol -> control .
- Explain why git and libboost-dev are added as B-D.
+ * Add patch fix-more-float-comparison-precision-issue, which fixes
+ the float comparison precision problem in some of the unit tests.
-- Zhou Mo <cdluminate at gmail.com> Tue, 09 Aug 2016 14:52:30 +0000
diff --git a/debian/patches/fix-more-float-comparison-precision-issue b/debian/patches/fix-more-float-comparison-precision-issue
new file mode 100644
index 0000000..56ebcc6
--- /dev/null
+++ b/debian/patches/fix-more-float-comparison-precision-issue
@@ -0,0 +1,79 @@
+Forward: [yes] https://github.com/BVLC/caffe/pull/4566
+
+commit d607858b90b645d8177c3970d782f0ab5c529558
+Author: Zhou Mo <cdluminate at gmail.com>
+Date: Tue Aug 9 15:13:47 2016 +0000
+
+ Fix more float comparison precision issue
+
+ With reference to this commit:
+ f1a8470aa21e35a5b2bb83007f8fb7680a354815
+
+ This fix changes some EXPECT_EQ into EXPECT_FLOAT_EQ .
+
+diff --git a/src/caffe/test/test_convolution_layer.cpp b/src/caffe/test/test_convolution_layer.cpp
+index 9bb19d1..85c10a2 100644
+--- a/src/caffe/test/test_convolution_layer.cpp
++++ b/src/caffe/test/test_convolution_layer.cpp
+@@ -695,7 +695,7 @@ TYPED_TEST(ConvolutionLayerTest, TestNDAgainst2D) {
+ }
+ ASSERT_EQ(backward_result_nd.count(), backward_result_2d.count());
+ for (int i = 0; i < backward_result_2d.count(); ++i) {
+- EXPECT_EQ(backward_result_2d.cpu_diff()[i],
++ EXPECT_FLOAT_EQ(backward_result_2d.cpu_diff()[i],
+ backward_result_nd.cpu_diff()[i]);
+ }
+ ASSERT_EQ(backward_weight_result_nd.count(),
+diff --git a/src/caffe/test/test_gradient_based_solver.cpp b/src/caffe/test/test_gradient_based_solver.cpp
+index 975a8f0..9395f4e 100644
+--- a/src/caffe/test/test_gradient_based_solver.cpp
++++ b/src/caffe/test/test_gradient_based_solver.cpp
+@@ -538,9 +538,9 @@ class GradientBasedSolverTest : public MultiDeviceTest<TypeParam> {
+ const vector<Blob<Dtype>*>& params = solver_->net()->learnable_params();
+ for (int i = 0; i < params.size(); ++i) {
+ for (int j = 0; j < params[i]->count(); ++j) {
+- EXPECT_EQ(param_copies[i]->cpu_data()[j], params[i]->cpu_data()[j])
++ EXPECT_FLOAT_EQ(param_copies[i]->cpu_data()[j], params[i]->cpu_data()[j])
+ << "param " << i << " data differed at dim " << j;
+- EXPECT_EQ(param_copies[i]->cpu_diff()[j], params[i]->cpu_diff()[j])
++ EXPECT_FLOAT_EQ(param_copies[i]->cpu_diff()[j], params[i]->cpu_diff()[j])
+ << "param " << i << " diff differed at dim " << j;
+ }
+ }
+@@ -549,9 +549,9 @@ class GradientBasedSolverTest : public MultiDeviceTest<TypeParam> {
+ const vector<shared_ptr<Blob<Dtype> > >& history = solver_->history();
+ for (int i = 0; i < history.size(); ++i) {
+ for (int j = 0; j < history[i]->count(); ++j) {
+- EXPECT_EQ(history_copies[i]->cpu_data()[j], history[i]->cpu_data()[j])
++ EXPECT_FLOAT_EQ(history_copies[i]->cpu_data()[j], history[i]->cpu_data()[j])
+ << "history blob " << i << " data differed at dim " << j;
+- EXPECT_EQ(history_copies[i]->cpu_diff()[j], history[i]->cpu_diff()[j])
++ EXPECT_FLOAT_EQ(history_copies[i]->cpu_diff()[j], history[i]->cpu_diff()[j])
+ << "history blob " << i << " diff differed at dim " << j;
+ }
+ }
+diff --git a/src/caffe/test/test_neuron_layer.cpp b/src/caffe/test/test_neuron_layer.cpp
+index 342f825..57bd47b 100644
+--- a/src/caffe/test/test_neuron_layer.cpp
++++ b/src/caffe/test/test_neuron_layer.cpp
+@@ -791,16 +791,16 @@ TYPED_TEST(NeuronLayerTest, TestPReLUInPlace) {
+ ip2.Backward(blob_middle_vec_2, propagate_down, blob_bottom_vec_2);
+ // Check numbers
+ for (int s = 0; s < blob_bottom_2->count(); ++s) {
+- EXPECT_EQ(this->blob_bottom_->cpu_diff()[s], blob_bottom_2->cpu_diff()[s]);
++ EXPECT_FLOAT_EQ(this->blob_bottom_->cpu_diff()[s], blob_bottom_2->cpu_diff()[s]);
+ }
+ for (int s = 0; s < ip.blobs()[0]->count(); ++s) {
+- EXPECT_EQ(ip.blobs()[0]->cpu_diff()[s], ip2.blobs()[0]->cpu_diff()[s]);
++ EXPECT_FLOAT_EQ(ip.blobs()[0]->cpu_diff()[s], ip2.blobs()[0]->cpu_diff()[s]);
+ }
+ for (int s = 0; s < ip.blobs()[1]->count(); ++s) {
+- EXPECT_EQ(ip.blobs()[1]->cpu_diff()[s], ip2.blobs()[1]->cpu_diff()[s]);
++ EXPECT_FLOAT_EQ(ip.blobs()[1]->cpu_diff()[s], ip2.blobs()[1]->cpu_diff()[s]);
+ }
+ for (int s = 0; s < prelu.blobs()[0]->count(); ++s) {
+- EXPECT_EQ(prelu.blobs()[0]->cpu_diff()[s],
++ EXPECT_FLOAT_EQ(prelu.blobs()[0]->cpu_diff()[s],
+ prelu2.blobs()[0]->cpu_diff()[s]);
+ }
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 677b8da..4805bd0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ cmake-using-basic-blas
cmake-using-gnuinstalldirs
cmake-fix-python-module-installdir
cmake-avoid-argument-missing
+fix-more-float-comparison-precision-issue
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/caffe.git
More information about the debian-science-commits
mailing list