[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