summaryrefslogtreecommitdiff
path: root/gnu/packages/machine-learning.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/machine-learning.scm')
-rw-r--r--gnu/packages/machine-learning.scm314
1 files changed, 296 insertions, 18 deletions
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 53d428bd4f..b19af8a1d5 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -73,6 +73,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages jupyter)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
@@ -752,7 +753,7 @@ in terms of new algorithms.")
(define-public onnx
(package
(name "onnx")
- (version "1.9.0")
+ (version "1.12.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -760,7 +761,7 @@ in terms of new algorithms.")
(commit (string-append "v" version))))
(sha256
(base32
- "1xnii361f68x0masxgfc4ai7hh3wlxxk56aznwf4m4yr6wqx47ml"))
+ "1g9f1hviksbn7gi6fnd0dsm7nf0w3yia0mjj33d9mggklrl0db6x"))
(file-name (git-file-name name version))
(patches (search-patches "onnx-use-system-googletest.patch"
"onnx-shared-libraries.patch"
@@ -2821,8 +2822,8 @@ and Darknet.")
(define-public xnnpack
;; There's currently no tag on this repo.
(let ((version "0.0")
- (commit "bbe88243aba847f6a3dd86defec0fea4a0e415a1")
- (revision "1"))
+ (commit "ae108ef49aa5623b896fc93d4298c49d1750d9ba")
+ (revision "2"))
(package
(name "xnnpack")
(version (git-version version revision commit))
@@ -2833,7 +2834,7 @@ and Darknet.")
(file-name (git-file-name name version))
(sha256
(base32
- "19j605x1l2h95mjhcj90zwjh1153pdgmqggl35ya5w0wll628iiz"))
+ "0q68q2jxiiiblx45q4337k13ppgh5vqjwrwznchcnpb8hawjj3zl"))
(patches (search-patches "xnnpack-system-libraries.patch"))))
(build-system cmake-build-system)
(arguments
@@ -2866,10 +2867,11 @@ high-level machine learning frameworks, such as TensorFlow Lite,
TensorFlow.js, PyTorch, and MediaPipe.")
(license license:bsd-3))))
+;; Please also update python-torchvision when updating this package.
(define-public python-pytorch
(package
(name "python-pytorch")
- (version "1.10.2")
+ (version "1.12.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2879,7 +2881,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
(file-name (git-file-name name version))
(sha256
(base32
- "15fi3nr7fx2zc9j2xf0jq627zfmnvs8hijyifg9769arm8kfijs1"))
+ "0pdqi91qzgyx947zv4pw2fdj9vpqvdhfzw1ydjd4mpqm8g5njgnz"))
(patches (search-patches "python-pytorch-system-libraries.patch"
"python-pytorch-runpath.patch"))
(modules '((guix build utils)))
@@ -2899,12 +2901,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
"gloo" "googletest" "ios-cmake" "NNPACK"
"onnx" "protobuf" "pthreadpool"
"pybind11" "python-enum" "python-peachpy"
- "python-six" "tbb" "XNNPACK" "zstd"))
-
- ;; Adjust references to the onnx-optimizer headers.
- (substitute* "caffe2/onnx/backend.cc"
- (("onnx/optimizer/")
- "onnxoptimizer/"))))))
+ "python-six" "tbb" "XNNPACK" "zstd"))))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -2915,6 +2912,10 @@ TensorFlow.js, PyTorch, and MediaPipe.")
;; ones.
(setenv "USE_SYSTEM_LIBS" "1")
+ (substitute* "cmake/Dependencies.cmake"
+ (("if\\(USE_SYSTEM_BIND11\\)")
+ "if(TRUE)"))
+
;; XXX: Disable that for simplicity for now.
(setenv "USE_FBGEMM" "0")))
(add-before 'build 'make-things-writable
@@ -2942,7 +2943,23 @@ TensorFlow.js, PyTorch, and MediaPipe.")
(let ((python-site (site-packages inputs outputs)))
(for-each delete-file
(find-files python-site
- "(^test_cpp_rpc|_test)$"))))))
+ "(^test_cpp_rpc|_test)$")))))
+ (add-after 'install 'remove-caffe2-onnx-scripts
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ ;; Remove 'convert-caffe2-to-onnx' and
+ ;; 'convert-onnx-to-caffe2': they seem to be
+ ;; deprecated and they cause a failure of the
+ ;; 'sanity-check' phase:
+ ;;
+ ;; ImportError: cannot import name 'metanet_pb2' from partially initialized module 'caffe2.proto' (most likely due to a circular import)
+ (for-each delete-file
+ (find-files bin "^convert-.*caffe2"))
+
+ (substitute* (find-files out "^entry_points\\.txt$")
+ (("^convert-.*" all)
+ (string-append "# " all "\n")))))))
;; XXX: Tests attempt to download data such as
;; <https://raw.githubusercontent.com/pytorch/test-infra/master/stats/slow-tests.json>.
@@ -2977,7 +2994,7 @@ TensorFlow.js, PyTorch, and MediaPipe.")
python-future
python-six
python-requests
- onnx ;propagated for its Python modules
+ onnx ;propagated for its Python modules
onnx-optimizer
cpuinfo))
(home-page "https://pytorch.org/")
@@ -2996,7 +3013,105 @@ PyTorch when needed.
Note: currently this package does not provide GPU support.")
(license license:bsd-3)))
-(define-public python-pytorch-for-r-torch python-pytorch)
+(define-public python-pytorch-for-r-torch
+ (package
+ (inherit python-pytorch)
+ (name "python-pytorch")
+ (version "1.11.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pytorch/pytorch")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1zbk7y74r0ycsfa7x59jnhwhs1gj5rs3n89p15y0212iszgbljq8"))
+ (patches (search-patches "python-pytorch-system-libraries.patch"
+ "python-pytorch-runpath.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; XXX: Let's be clear: this package is a bundling fest. We
+ ;; delete as much as we can, but there's still a lot left.
+ (for-each (lambda (directory)
+ (delete-file-recursively
+ (string-append "third_party/" directory)))
+ '("benchmark" "cpuinfo" "eigen"
+
+ ;; FIXME: QNNPACK (of which XNNPACK is a fork)
+ ;; needs these.
+ ;; "FP16" "FXdiv" "gemmlowp" "psimd"
+
+ "gloo" "googletest" "ios-cmake" "NNPACK"
+ "onnx" "protobuf" "pthreadpool"
+ "pybind11" "python-enum" "python-peachpy"
+ "python-six" "tbb" "XNNPACK" "zstd"))))))))
+
+;; Keep this in sync with python-pytorch
+(define-public python-torchvision
+ (package
+ (name "python-torchvision")
+ (version "0.13.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pytorch/vision")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "19f6s3ffwkdvjjbvib18c8n7vhysg58smxzq3rvii1c0z4g3b0cw"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #false ;the test suite is expensive and there is no easy way
+ ;to subset it.
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
+ (inputs
+ (list libpng
+ libjpeg-turbo))
+ (propagated-inputs
+ (list python-numpy
+ python-typing-extensions
+ python-requests
+ python-pillow
+ python-pillow-simd
+ python-pytorch))
+ (native-inputs
+ (list which python-pytest))
+ (home-page "https://pytorch.org/vision/stable/index.html")
+ (synopsis " Datasets, transforms and models specific to computer vision")
+ (description
+ "The torchvision package consists of popular datasets, model architectures,
+and common image transformations for computer vision.")
+ (license license:bsd-3)))
+
+(define-public python-torchfile
+ (package
+ (name "python-torchfile")
+ (version "0.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "torchfile" version))
+ (sha256
+ (base32
+ "0vhklj6krl9r0kdynb4kcpwp8y1ihl2zw96byallay3k9c9zwgd5"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #false)) ;there are no tests
+ (propagated-inputs
+ (list python-numpy))
+ (home-page "https://github.com/bshillingford/python-torchfile")
+ (synopsis "Torch7 binary serialized file parser")
+ (description "This package enables you to deserialize Lua torch-serialized objects from
+Python.")
+ (license license:bsd-3)))
(define-public python-hmmlearn
(package
@@ -3039,7 +3154,7 @@ of Hidden Markov Models.")
(define-public liblantern
(package
(name "liblantern")
- (version "0.7.2")
+ (version "0.8.0")
(source
(origin
(method git-fetch)
@@ -3048,7 +3163,7 @@ of Hidden Markov Models.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1nam375ych4nr7gk2dpbnzlanr2jc7akqjhmfs0ar9l34zmzz9m9"))))
+ (base32 "1xkqyj1clj1r70yrp5qpbpyf0xmh9c128005idshi7vk883wfp77"))))
(build-system cmake-build-system)
(arguments
(list
@@ -3096,3 +3211,166 @@ of Hidden Markov Models.")
(description
"Lantern provides a C API to the libtorch machine learning library.")
(license license:expat)))
+
+(define-public python-lap
+ (package
+ (name "python-lap")
+ (version "0.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "lap" version))
+ (sha256
+ (base32
+ "0fqfxpq4jg9h4wxjw540gjmvfg1ccc1nssk7i9njg7qfdybxknn4"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (invoke "python" "setup.py" "build"
+ "--cpu-baseline=sse2")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; The tests must be run from elsewhere.
+ (mkdir-p "/tmp/test")
+ (copy-recursively "lap/tests" "/tmp/test")
+ (with-directory-excursion "/tmp/test"
+ (invoke "pytest" "-vv"))))))))
+ (propagated-inputs
+ (list python-numpy
+ python-scipy))
+ (native-inputs
+ (list python-cython python-pytest))
+ (home-page "https://github.com/gatagat/lap")
+ (synopsis "Linear Assignment Problem solver (LAPJV/LAPMOD).")
+ (description "Lap is a linear assignment problem solver using Jonker-Volgenant
+algorithm for dense (LAPJV) or sparse (LAPMOD) matrices.")
+ (license license:bsd-2)))
+
+(define-public python-visdom
+ (package
+ (name "python-visdom")
+ (version "0.1.8.9")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "visdom" version))
+ (sha256
+ (base32
+ "09kiczx2i5asqsv214fz7sx8wlyldgbqvxwrd0alhjn24cvx4fn7"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-jsonpatch
+ python-numpy
+ python-pillow
+ python-pyzmq
+ python-requests
+ python-scipy
+ python-six
+ python-torchfile
+ python-tornado
+ python-websocket-client))
+ (home-page "https://github.com/fossasia/visdom")
+ (synopsis "Visualizations of live, rich data for Torch and Numpy")
+ (description
+ "This package provides a tool for visualizing live, rich data for Torch
+and Numpy.")
+ (license license:asl2.0)))
+
+(define-public python-pyro-api
+ (package
+ (name "python-pyro-api")
+ (version "0.1.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyro-api" version))
+ (sha256
+ (base32
+ "086r2h6x9i5d9ayl1x65lx6p84rlydzsn8xingxc588ab3ch1fd1"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #false)) ;requires pyro
+ (native-inputs
+ (list python-flake8
+ python-ipython
+ python-pytest
+ python-sphinx
+ python-sphinx-rtd-theme))
+ (home-page "https://github.com/pyro-ppl/pyro-api")
+ (synopsis "Generic API for dispatch to Pyro backends.")
+ (description "This package provides a generic API for dispatch to Pyro backends.")
+ (license license:asl2.0)))
+
+(define-public python-pyro-ppl
+ (package
+ (name "python-pyro-ppl")
+ (version "1.8.1")
+ ;; The sources on pypi don't include tests.
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pyro-ppl/pyro")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ns20mr8qgjshzbplrfzaz1xhb9ldbgvrj2rzlsxvns2bi1ddyl5"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ ;; This tests features that are only implemented when non-free
+ ;; software is available (Intel MKL or CUDA).
+ (for-each delete-file
+ (list "tests/distributions/test_spanning_tree.py"
+ "tests/infer/mcmc/test_mcmc_api.py"))
+
+ ;; Four test_gamma_elbo tests fail with bad values for unknown
+ ;; reasons.
+ (delete-file "tests/distributions/test_rejector.py")
+ ;; This test fails sometimes.
+ (delete-file "tests/optim/test_optim.py")
+ (invoke "pytest" "-vv" "--stage=unit"))))))
+ (propagated-inputs
+ (list python-numpy
+ python-opt-einsum
+ python-pyro-api
+ python-pytorch
+ python-tqdm))
+ (native-inputs
+ (list ninja
+ jupyter
+ python-black
+ python-flake8
+ python-graphviz
+ python-isort
+ python-lap
+ python-matplotlib
+ python-mypy
+ python-nbformat
+ python-nbsphinx
+ python-nbstripout
+ python-nbval
+ python-pandas
+ python-pillow
+ python-pypandoc
+ python-pytest
+ python-pytest-cov
+ python-pytest-xdist
+ python-scikit-learn
+ python-scipy
+ python-seaborn
+ python-sphinx
+ python-sphinx-rtd-theme
+ python-torchvision
+ python-visdom
+ python-wget
+ python-yapf))
+ (home-page "https://pyro.ai")
+ (synopsis "Python library for probabilistic modeling and inference")
+ (description
+ "This package provides a Python library for probabilistic modeling and
+inference.")
+ (license license:asl2.0)))