diff options
Diffstat (limited to 'gn/packages/machine-learning.scm')
| -rw-r--r-- | gn/packages/machine-learning.scm | 176 |
1 files changed, 173 insertions, 3 deletions
diff --git a/gn/packages/machine-learning.scm b/gn/packages/machine-learning.scm index 8f9f1f0..541b3b6 100644 --- a/gn/packages/machine-learning.scm +++ b/gn/packages/machine-learning.scm @@ -2,14 +2,24 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) - #:use-module (gnu packages machine-learning)) + #:use-module (gnu packages machine-learning) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages python-science) + #:use-module (gnu packages check) + #:use-module (gnu packages python-check) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages python-web) + #:use-module (past packages python27)) (define-public tensorflow-native (package - (inherit tensorflow) + (inherit tensorflow-lite) (name "tensorflow-native") (arguments - (substitute-keyword-arguments (package-arguments tensorflow) + (substitute-keyword-arguments (package-arguments tensorflow-lite) ((#:substitutable? _ #f) #f) ((#:configure-flags flags) `(cons @@ -19,3 +29,163 @@ (define-public tensowflow-native-instead-of-tensorflow (package-input-rewriting/spec `(("tensorflow" . ,(const tensorflow-native))))) + + +(define-public python-keras-applications + (package + (name "python-keras-applications") + (version "1.0.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Keras_Applications" version)) + (sha256 + (base32 + "1rcz31ca4axa6kzhjx4lwqxbg4wvlljkj8qj9a7p9sfd5fhzjyam")))) + (build-system python-build-system) + ;; The tests require Keras, but this package is needed to build Keras. + (arguments '(#:tests? #f)) + (propagated-inputs + (list python-h5py python-numpy)) + (native-inputs + (list python-pytest python-pytest-cov + python-pytest-xdist)) + (home-page "https://github.com/keras-team/keras-applications") + (synopsis "Reference implementations of popular deep learning models") + (description + "This package provides reference implementations of popular deep learning +models for use with the Keras deep learning framework.") + (license license:expat))) + + +(define-public python-keras-preprocessing + (package + (name "python-keras-preprocessing") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Keras_Preprocessing" version)) + (sha256 + (base32 + "1r98nm4k1svsqjyaqkfk23i31bl1kcfcyp7094yyj3c43phfp3as")))) + (build-system python-build-system) + (propagated-inputs + (list python-numpy python-six)) + (native-inputs + (list python-pandas + python-pillow + python-pytest + python-pytest-cov + python-pytest-xdist + tensorflow-lite)) + (home-page "https://github.com/keras-team/keras-preprocessing/") + (synopsis "Data preprocessing and augmentation for deep learning models") + (description + "Keras Preprocessing is the data preprocessing and data augmentation +module of the Keras deep learning library. It provides utilities for working +with image data, text data, and sequence data.") + (license license:expat))) + + +(define-public python-keras-no-tests + (package + (name "python-keras-no-tests") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Keras" version)) + (sha256 + (base32 + "1k68xd8n2y9ldijggjc8nn4d6d1axw0p98gfb0fmm8h641vl679j")) + (modules '((guix build utils))) + (snippet + '(substitute* '("keras/callbacks/callbacks.py" + "keras/engine/training_utils.py" + "keras/engine/training.py" + "keras/engine/training_generator.py" + "keras/utils/generic_utils.py") + (("from collections import Iterable") + "from collections.abc import Iterable") + (("collections.Container") + "collections.abc.Container") + (("collections.Mapping") + "collections.abc.Mapping") + (("collections.Sequence") + "collections.abc.Sequence"))))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'tf-compatibility + (lambda _ + (substitute* "keras/backend/tensorflow_backend.py" + (("^get_graph = .*") + "get_graph = tf.get_default_graph") + (("tf.compat.v1.nn.fused_batch_norm") + "tf.nn.fused_batch_norm") + ;; categorical_crossentropy does not support axis + (("from_logits=from_logits, axis=axis") + "from_logits=from_logits") + ;; dropout accepts a level number, not a named rate argument. + (("dropout\\(x, rate=level,") + "dropout(x, level,") + (("return x.shape.rank") + "return len(x.shape)")))) + (add-after 'unpack 'hdf5-compatibility + (lambda _ + ;; The truth value of an array with more than one element is ambiguous. + (substitute* "tests/keras/utils/io_utils_test.py" + ((" *assert .* == \\[b'(asd|efg).*") "")) + (substitute* "tests/test_model_saving.py" + (("h5py.File\\('does not matter',") + "h5py.File('does not matter', 'w',")) + (substitute* "keras/utils/io_utils.py" + (("h5py.File\\('in-memory-h5py', driver='core', backing_store=False\\)") + "h5py.File('in-memory-h5py', 'w', driver='core', backing_store=False)") + (("h5file.fid.get_file_image") + "h5file.id.get_file_image")) + (substitute* "keras/engine/saving.py" + (("\\.decode\\('utf-?8'\\)") "")))) + (add-after 'unpack 'delete-unavailable-backends + (lambda _ + (delete-file "keras/backend/theano_backend.py") + (delete-file "keras/backend/cntk_backend.py"))) + (delete 'check)))) + (propagated-inputs + (list python-h5py + python-keras-applications + python-keras-preprocessing + python-numpy + python-pydot + python-pyyaml + python-scipy + python-six + tensorflow-lite + graphviz)) + (native-inputs + (list python-flaky + python-markdown + python-pandas + python-pytest + python-pytest-cov + python-pytest-timeout + python-pytest-xdist + python-pyux + python-sphinx + python-requests)) + (home-page "https://keras.io/") + (synopsis "High-level deep learning framework") + (description "Keras is a high-level neural networks API, written in Python +and capable of running on top of TensorFlow. It was developed with a focus on +enabling fast experimentation. Use Keras if you need a deep learning library +that: +@itemize +@item Allows for easy and fast prototyping (through user friendliness, + modularity, and extensibility). +@item Supports both convolutional networks and recurrent networks, as well as + combinations of the two. +@item Runs seamlessly on CPU and GPU. +@end itemize\n") + (license license:expat))) |
