diff options
author | Franz Geffke <franz@pantherx.org> | 2023-06-25 16:07:34 +0100 |
---|---|---|
committer | Franz Geffke <franz@pantherx.org> | 2023-06-25 16:07:34 +0100 |
commit | 54b4056ac571611892c743b65f4c47dc298c49da (patch) | |
tree | 36e4a84137d2b9bc9a241cf82563da6114bf6189 /px/packages/machine-learning.scm |
initial commit
Diffstat (limited to 'px/packages/machine-learning.scm')
-rw-r--r-- | px/packages/machine-learning.scm | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/px/packages/machine-learning.scm b/px/packages/machine-learning.scm new file mode 100644 index 0000000..0d104a6 --- /dev/null +++ b/px/packages/machine-learning.scm @@ -0,0 +1,133 @@ +(define-module (px packages machine-learning) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix svn-download) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix build-system ocaml) + #:use-module (guix build-system python) + #:use-module (guix build-system r) + #:use-module (guix git-download) + #:use-module (gnu packages) + #:use-module (gnu packages adns) + #:use-module (gnu packages algebra) + #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages boost) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages cran) + #:use-module (gnu packages databases) + #:use-module (gnu packages dejagnu) + #:use-module (gnu packages gcc) + #:use-module (gnu packages glib) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages gstreamer) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages ocaml) + #:use-module (gnu packages onc-rpc) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) + #:use-module (gnu packages python) + #:use-module (gnu packages python-science) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages rpc) + #:use-module (gnu packages serialization) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages statistics) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages swig) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (ice-9 match)) + +(define-public dlib + (package + (name "dlib") + (version "19.21") + (source (origin + (method url-fetch) + (uri (string-append + "http://dlib.net/files/dlib-" version ".tar.bz2")) + (sha256 + (base32 + "0g7mgm6l6nw9hlw2zckf59jcd2y2lf907n88hjschkccmq1qlwmy")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete ~13MB of bundled dependencies. + (delete-file-recursively "dlib/external") + (delete-file-recursively "docs/dlib/external") + #t)))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-asserts + (lambda _ + ;; config.h recommends explicitly enabling or disabling asserts + ;; when building as a shared library. By default neither is set. + (substitute* "dlib/config.h" + (("^//#define DLIB_DISABLE_ASSERTS") "#define DLIB_DISABLE_ASSERTS")) + #t)) + (add-after 'disable-asserts 'disable-failing-tests + (lambda _ + ;; One test times out on MIPS, so we need to disable it. + ;; Others are flaky on some platforms. + (let* ((system ,(or (%current-target-system) + (%current-system))) + (disabled-tests (cond + ((string-prefix? "mips64" system) + '("object_detector" ; timeout + "data_io")) + ((string-prefix? "armhf" system) + '("learning_to_track")) + ((string-prefix? "i686" system) + '("optimization")) + (else '())))) + (for-each + (lambda (test) + (substitute* "dlib/test/makefile" + (((string-append "SRC \\+= " test "\\.cpp")) ""))) + disabled-tests) + #t))) + (replace 'check + (lambda _ + ;; No test target, so we build and run the unit tests here. + (let ((test-dir (string-append "../dlib-" ,version "/dlib/test"))) + (with-directory-excursion test-dir + (invoke "make" "-j" (number->string (parallel-job-count))) + (invoke "./dtest" "--runall")) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ;; For tests. + ("libnsl" ,libnsl))) + (inputs + `(("giflib" ,giflib) + ("lapack" ,lapack) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("openblas" ,openblas) + ("zlib" ,zlib))) + (synopsis + "Toolkit for making machine learning and data analysis applications in C++") + (description + "Dlib is a modern C++ toolkit containing machine learning algorithms and +tools. It is used in both industry and academia in a wide range of domains +including robotics, embedded devices, mobile phones, and large high performance +computing environments.") + (home-page "http://dlib.net") + (license license:boost1.0))) |