[caffe-contrib] 07/15: patch: import fix-more-float-comparison-precision-issue

Zhou Mo cdluminate-guest at moszumanska.debian.org
Sun Oct 2 14:47:55 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-contrib.

commit 90b8b22053fbfbadae4935c52e2d050cc002dfe9
Author: Zhou Mo <cdluminate at gmail.com>
Date:   Sun Oct 2 14:33:32 2016 +0000

    patch: import fix-more-float-comparison-precision-issue
---
 debian/changelog                                   |  1 +
 .../fix-more-float-comparison-precision-issue      | 79 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 81 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index cd662f0..d4f32de 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,7 @@ caffe-contrib (1.0.0~rc3+20160930-ga7f950b-1) UNRELEASED; urgency=medium
   * Import several patches from source package "caffe" :
     + cmake-avoid-argument-missing
     + cmake-fix-python-module-installdir
+    + fix-more-float-comparison-precision-issue
 
  -- Zhou Mo <cdluminate at gmail.com>  Wed, 10 Aug 2016 14:08:06 +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 2091e6a..bf2df15 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,6 +3,7 @@ cmake-using-gnuinstalldirs
 fix-spelling-error
 cmake-fix-python-module-installdir
 cmake-avoid-argument-missing
+fix-more-float-comparison-precision-issue
 
 # the following 3 patches are upstream fix for 32bit LMDB issue.
 # see https://github.com/bvlc/caffe/issues/3731

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/caffe-contrib.git



More information about the debian-science-commits mailing list