diff mbox series

[bug#39880,PATCHv2] gnu: python-keras: Fix tests.

Message ID 20200303103809.18233-1-mail@ambrevar.xyz
State Accepted
Headers show
Series [bug#39880,PATCHv2] gnu: python-keras: Fix tests. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Pierre Neidhardt March 3, 2020, 10:38 a.m. UTC
* gnu/packages/machine-learning.scm (python-keras)[origin]: Add patch to
  remove unstable selu test.
* gnu/local.mk: Include patch.
* gnu/packages/patches/python-keras-selu-test.patch: New file.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/machine-learning.scm             |  4 ++-
 .../patches/python-keras-selu-test.patch      | 35 +++++++++++++++++++
 3 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/python-keras-selu-test.patch

Comments

Efraim Flashner March 3, 2020, 11:44 a.m. UTC | #1
I assume you've already gone for the more obvious and seen if you can
upgrade keras to 2.3.1?
Pierre Neidhardt March 3, 2020, 11:56 a.m. UTC | #2
Indeed :)

Starting from Keras 2.2.5, the other backends are unconditionally
required by the tests, so it won't do :(

Not sure what to do about it.  In all cases, it's a a lot of work, so I
figured we'd rather get 2.2.4 to build at least.
diff mbox series

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 857345cfad..e5922aae54 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1329,6 +1329,7 @@  dist_patch_DATA =						\
   %D%/packages/patches/python-configobj-setuptools.patch	\
   %D%/packages/patches/python-faker-fix-build-32bit.patch	\
   %D%/packages/patches/python-keras-integration-test.patch	\
+  %D%/packages/patches/python-keras-selu-test.patch		\
   %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
   %D%/packages/patches/python-flint-includes.patch		\
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 8262a418cc..7fbdef0163 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -1863,7 +1863,9 @@  with image data, text data, and sequence data.")
      (origin
        (method url-fetch)
        (uri (pypi-uri "Keras" version))
-       (patches (search-patches "python-keras-integration-test.patch"))
+       (patches
+        (search-patches "python-keras-selu-test.patch" ; Numerically unstable?
+                        "python-keras-integration-test.patch"))
        (sha256
         (base32
          "1j8bsqzh49vjdxy6l1k4iwax5vpjzniynyd041xjavdzvfii1dlh"))))
diff --git a/gnu/packages/patches/python-keras-selu-test.patch b/gnu/packages/patches/python-keras-selu-test.patch
new file mode 100644
index 0000000000..68092d2593
--- /dev/null
+++ b/gnu/packages/patches/python-keras-selu-test.patch
@@ -0,0 +1,35 @@ 
+Disable unstable SELU test.
+See https://github.com/keras-team/keras/issues/13856.
+
+diff --git a/tests/keras/activations_test.py b/tests/keras/activations_test.py
+index 4c0bb36..5808c0f 100644
+--- a/tests/keras/activations_test.py
++++ b/tests/keras/activations_test.py
+@@ -208,24 +208,6 @@ def test_elu():
+     assert_allclose(result, true_result)
+ 
+ 
+-def test_selu():
+-    x = K.placeholder(ndim=2)
+-    f = K.function([x], [activations.selu(x)])
+-    alpha = 1.6732632423543772848170429916717
+-    scale = 1.0507009873554804934193349852946
+-
+-    positive_values = get_standard_values()
+-    result = f([positive_values])[0]
+-    assert_allclose(result, positive_values * scale, rtol=1e-05)
+-
+-    negative_values = np.array([[-1, -2]], dtype=K.floatx())
+-
+-    result = f([negative_values])[0]
+-    true_result = (np.exp(negative_values) - 1) * scale * alpha
+-
+-    assert_allclose(result, true_result)
+-
+-
+ def test_tanh():
+     test_values = get_standard_values()
+ 
+-- 
+2.25.1
+