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.scm111
1 files changed, 108 insertions, 3 deletions
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 14fc2a0a72..1616738399 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2020-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -21,6 +21,7 @@
;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2023 Navid Afkhami <navid.afkhami@mdc-berlin.de>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -812,6 +813,94 @@ SentencePiece allows us to make a purely end-to-end system that does not
depend on language-specific pre- or post-processing.")
(license license:asl2.0)))
+(define-public python-hopcroftkarp
+ ;; This commit fixes a broken import, but has not been released to PyPI.
+ (let ((commit "2846e1dd3265d95d2bddb0cf4190b830cbb4efe6")
+ (revision "1"))
+ (package
+ (name "python-hopcroftkarp")
+ (version (git-version "1.2.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sofiatolaosebikan/hopcroftkarp")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "018ilrp41fcclmb5lsml3aijwbmhbq3m7wy65hr1fryj0avic8fr"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/sofiatolaosebikan/hopcroftkarp")
+ (synopsis "Implementation of the Hopcroft-Karp algorithm")
+ (description
+ "This package implements the Hopcroft-Karp algorithm, producing a maximum
+cardinality matching from a bipartite graph.")
+ (license license:gpl3))))
+
+(define-public python-persim
+ (package
+ (name "python-persim")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "persim" version))
+ (sha256
+ (base32 "0q8wfakx8q4h3ryvw8cba0v6z7xn9139qkrzs3mi1ggyzacnx9d7"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-deprecated
+ python-hopcroftkarp
+ python-joblib
+ python-matplotlib
+ python-numpy
+ python-scikit-learn
+ python-scipy))
+ (native-inputs (list python-pytest python-pytest-cov))
+ (home-page "https://persim.scikit-tda.org")
+ (synopsis "Tools for analyzing persistence diagrams in Python")
+ (description
+ "This package includes a variety of tools used to analyze persistence diagrams.
+It currently houses implementations of
+@itemize
+@item Persistence images
+@item Persistence landscapes
+@item Bottleneck distance
+@item Modified Gromov–Hausdorff distance
+@item Sliced Wasserstein kernel
+@item Heat kernel
+@item Diagram plotting
+@end itemize
+")
+ (license license:expat))) ; MIT License
+
+(define-public python-ripser
+ (package
+ (name "python-ripser")
+ (version "0.6.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ripser" version))
+ (sha256
+ (base32 "1575nwsn6b29z7w1mjk23ri83bxq2b4ld979hpgm174642a3x6vs"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-numpy python-persim python-scikit-learn
+ python-scipy))
+ (native-inputs (list python-cython python-pytest))
+ (home-page "https://ripser.scikit-tda.org")
+ (synopsis "Persistent homology library for Python")
+ (description
+ "This package implements a variety of persistent homology algorithms. It
+provides an interface for
+@itemize
+@item computing persistence cohomology of sparse and dense data sets
+@item visualizing persistence diagrams
+@item computing lowerstar filtrations on images
+@item computing representative cochains
+@end itemize
+")
+ (license license:expat))) ; MIT License
+
(define-public python-sacrebleu
(package
(name "python-sacrebleu")
@@ -1151,6 +1240,11 @@ in terms of new algorithms.")
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ ;; Does this difference really matter?
+ (substitute* "requirements.txt"
+ (("3.20.1") "3.20.2"))))
(add-before 'build 'pass-cmake-arguments
(lambda* (#:key outputs #:allow-other-keys)
;; Pass options to the CMake-based build process.
@@ -1235,7 +1329,13 @@ operators and standard data types.")
'(begin
(delete-file-recursively "third_party")
(substitute* "onnx/backend/test/runner/__init__.py"
- (("urlretrieve\\(.*") "raise unittest.SkipTest('Skipping download')\n"))))))))
+ (("urlretrieve\\(.*") "raise unittest.SkipTest('Skipping download')\n"))))))
+ (arguments
+ ;; reuse build system tweaks
+ (substitute-keyword-arguments (package-arguments onnx)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (delete 'relax-requirements)))))))
(define-public python-onnx
;; This used to be called "python-onnx" because it provided nothing but
@@ -1262,7 +1362,12 @@ operators and standard data types.")
(modules '((guix build utils)))
(snippet '(delete-file-recursively "third_party"))))
(build-system python-build-system)
- (arguments (package-arguments onnx)) ;reuse build system tweaks
+ (arguments
+ ;; reuse build system tweaks
+ (substitute-keyword-arguments (package-arguments onnx)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (delete 'relax-requirements)))))
(native-inputs
(list cmake python-pytest python-pytest-runner python-nbval
python-coverage))