@@ 3169,568 3169,6 @@ based on the Kaldi toolkit and the GStreamer framework and implemented in
Python.")
(license license:bsd-2))))
-;; Note that Tensorflow includes a "third_party" directory, which seems to not
-;; only contain modified subsets of upstream library source code, but also
-;; adapter headers provided by Google (such as the fft.h header, which is not
-;; part of the upstream project code). The Tensorflow code includes headers
-;; from the "third_party" directory. It does not look like we can replace
-;; these headers with unmodified upstream files, so we keep them.
-(define-public tensorflow
- (package
- (name "tensorflow")
- (version "1.9.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/tensorflow/tensorflow")
- (commit (string-append "v" version))))
- (file-name (string-append "tensorflow-" version "-checkout"))
- (sha256
- (base32
- "0a9kwha395g3wgxfwln5j8vn9nkspmd75xldrlqdq540w996g8xa"))
- (patches
- (search-patches "tensorflow-c-api-fix.patch"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; no "check" target
- #:build-type "Release"
- #:configure-flags
- (let ((protobuf (assoc-ref %build-inputs "protobuf"))
- (protobuf:native (assoc-ref %build-inputs "protobuf:native"))
- (jsoncpp (assoc-ref %build-inputs "jsoncpp"))
- (snappy (assoc-ref %build-inputs "snappy"))
- (sqlite (assoc-ref %build-inputs "sqlite")))
- (list
- ;; Use protobuf from Guix
- (string-append "-Dprotobuf_STATIC_LIBRARIES="
- protobuf "/lib/libprotobuf.so")
- (string-append "-DPROTOBUF_PROTOC_EXECUTABLE="
- protobuf:native "/bin/protoc")
-
- ;; Use snappy from Guix
- (string-append "-Dsnappy_STATIC_LIBRARIES="
- snappy "/lib/libsnappy.so")
- ;; Yes, this is not actually the include directory but a prefix...
- (string-append "-Dsnappy_INCLUDE_DIR=" snappy)
-
- ;; Use jsoncpp from Guix
- (string-append "-Djsoncpp_STATIC_LIBRARIES="
- jsoncpp "/lib/libjsoncpp.so")
- ;; Yes, this is not actually the include directory but a prefix...
- (string-append "-Djsoncpp_INCLUDE_DIR=" jsoncpp)
-
- ;; Use sqlite from Guix
- (string-append "-Dsqlite_STATIC_LIBRARIES="
- sqlite "/lib/libsqlite.a")
-
- ;; Use system libraries wherever possible. Currently, this
- ;; only affects zlib.
- "-Dsystemlib_ALL=ON"
- "-Dtensorflow_ENABLE_POSITION_INDEPENDENT_CODE=ON"
- "-Dtensorflow_BUILD_SHARED_LIB=ON"
- "-Dtensorflow_OPTIMIZE_FOR_NATIVE_ARCH=OFF"
- "-Dtensorflow_ENABLE_SSL_SUPPORT=OFF"
- "-Dtensorflow_BUILD_CONTRIB_KERNELS=OFF"))
- #:make-flags
- (list "CC=gcc")
- #:modules ((ice-9 ftw)
- (guix build utils)
- (guix build cmake-build-system)
- ((guix build python-build-system)
- #:select (python-version)))
- #:imported-modules (,@%cmake-build-system-modules
- (guix build python-build-system))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'set-source-file-times-to-1980
- ;; At the end of the tf_python_build_pip_package target, a ZIP
- ;; archive should be generated via bdist_wheel, but it fails with
- ;; "ZIP does not support timestamps before 1980". Luckily,
- ;; SOURCE_DATE_EPOCH is respected, which we set to some time in
- ;; 1980.
- (lambda _ (setenv "SOURCE_DATE_EPOCH" "315532800")))
- (add-after 'unpack 'python3.11-compatibility
- (lambda _
- ;; Py_TYPE was changed to an inline static function in Python
- ;; 3.11, so it cannot be used on the left-hand side.
- (substitute* "tensorflow/python/lib/core/bfloat16.cc"
- (("Py_TYPE\\(&NPyBfloat16_Descr\\) = &PyArrayDescr_Type;")
- "Py_SET_TYPE(&NPyBfloat16_Descr, &PyArrayDescr_Type);"))
-
- ;; See https://github.com/tensorflow/tensorflow/issues/20517#issuecomment-406373913
- (substitute* '("tensorflow/python/eager/pywrap_tfe_src.cc"
- "tensorflow/python/lib/core/ndarray_tensor.cc"
- "tensorflow/python/lib/core/py_func.cc")
- (("PyUnicode_AsUTF8") "(char *)PyUnicode_AsUTF8"))
- (substitute* "tensorflow/c/eager/c_api.h"
- (("unsigned char async")
- "unsigned char is_async"))
-
- ;; Remove dependency on tensorboard, a complicated but probably
- ;; optional package.
- (substitute* "tensorflow/tools/pip_package/setup.py"
- ((".*'tensorboard >.*") ""))
-
- ;; Fix the build with python-3.8, taken from rejected upstream patch:
- ;; https://github.com/tensorflow/tensorflow/issues/34197
- (substitute* (find-files "tensorflow/python" ".*\\.cc$")
- (("(nullptr,)(\\ +/. tp_print)" _ _ tp_print)
- (string-append "NULL, " tp_print)))
-
- ;; Many collections classes have been moved to collections.abc
- (substitute* '("tensorflow/python/framework/ops.py"
- "tensorflow/python/ops/clip_ops.py"
- "tensorflow/python/ops/data_flow_ops.py"
- "tensorflow/python/ops/gradients_impl.py"
- "tensorflow/python/training/input.py"
- "tensorflow/python/training/checkpointable/data_structures.py"
- "tensorflow/python/util/nest.py"
- "tensorflow/python/util/protobuf/compare.py")
- (("collections.Mapping") "collections.abc.Mapping")
- (("collections.Sequence") "collections.abc.Sequence"))
- (substitute* "tensorflow/python/feature_column/feature_column.py"
- (("collections.Iterator") "collections.abc.Iterator"))
- (substitute* "tensorflow/python/ops/sparse_ops.py"
- (("collections.Iterable") "collections.abc.Iterable"))
- (substitute* "tensorflow/python/keras/callbacks.py"
- (("from collections import Iterable")
- "from collections.abc import Iterable"))
- (substitute* "tensorflow/python/ops/variable_scope.py"
- (("collections_lib.Sequence") "collections_lib.abc.Sequence"))
-
- ;; XXX: it is not clear if this is a good idea, but the build
- ;; system tries to overwrite the __or__ and __ror__ methods of
- ;; the Tensor class.
- (substitute* "tensorflow/python/framework/ops.py"
- (("if not isinstance\\(existing, type\\(object.__lt__\\)\\)" m)
- (string-append m
- " and not isinstance(existing, type(object.__or__))")))
-
- ;; ArgSpec has been replaced with FullArgSpec.
- (substitute* "tensorflow/python/util/tf_inspect.py"
- (("ArgSpec = _inspect.ArgSpec") "\
-ArgSpec = namedtuple('ArgSpec', [ 'args', 'varargs', 'keywords', 'defaults' ])
-def makeargspec(s):
- return ArgSpec(args=s.args, varargs=s.varargs, keywords=s.varkw, defaults=s.defaults)
-")
- (("_inspect.getargspec\\((.*)\\)" m target)
- (string-append "makeargspec(_inspect.getfullargspec(" target "))")))
-
- ;; Fix the build with numpy >= 1.19.
- ;; Suggested in https://github.com/tensorflow/tensorflow/issues/41086#issuecomment-656833081
- (substitute* "tensorflow/python/lib/core/bfloat16.cc"
- (("void BinaryUFunc\\(char\\*\\* args, npy_intp\\* dimensions, npy_intp\\* steps,")
- "void BinaryUFunc(char** args, npy_intp const* dimensions, npy_intp const* steps,")
- (("void CompareUFunc\\(char\\*\\* args, npy_intp\\* dimensions, npy_intp\\* steps,")
- "void CompareUFunc(char** args, npy_intp const* dimensions, npy_intp const* steps,"))
-
- ;; ...and for numpy >= 1.23
- (substitute* "tensorflow/python/framework/tensor_util.py"
- (("np.asscalar\\(x\\[0\\]\\)") "x[0].item()")
- (("np.asscalar\\(x\\)") "x.item()")
- (("np.asscalar\\(v\\)") "np.ndarray.item(v)")
- (("return np.asscalar") "return np.ndarray.item"))
- (substitute* "tensorflow/python/kernel_tests/cwise_ops_test.py"
- (("np.asscalar\\(np.random.rand\\(1\\) \\* 100.\\)")
- "(np.random.rand(1) * 100.).item()"))
- (substitute* '("tensorflow/python/framework/fast_tensor_util.pyx"
- "tensorflow/python/estimator/canned/linear_testing_utils.py")
- (("np.asscalar") "np.ndarray.item"))))
- (add-after 'python3.11-compatibility 'numpy-compatibility
- (lambda _
- (substitute* (cons* "tensorflow/compiler/xla/python/xla_client.py"
- "tensorflow/contrib/layers/python/ops/sparse_ops_test.py"
- (find-files "tensorflow/python/" "\\.py$"))
- (("np.object") "object"))
- (substitute* (append
- '("tensorflow/compiler/tests/unary_ops_test.py"
- "tensorflow/compiler/xla/python/xla_client.py"
- "tensorflow/compiler/xla/python/xla_client_test.py")
- (find-files "tensorflow/python/" "\\.py$")
- (find-files "tensorflow/contrib/" "\\.py$"))
- (("np.bool,") "bool,")
- (("np.bool\\)") "bool)")
- (("np.bool:") "bool:"))))
- (add-after 'numpy-compatibility 'chdir
- (lambda _ (chdir "tensorflow/contrib/cmake")))
- (add-after 'chdir 'disable-downloads
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* (find-files "external" "\\.cmake$")
- (("GIT_REPOSITORY.*") "")
- (("GIT_TAG.*") "")
- (("PREFIX ")
- "DOWNLOAD_COMMAND \"\"\nPREFIX "))
-
- ;; Use packages from Guix
- (let ((grpc (assoc-ref inputs "grpc")))
- (substitute* "CMakeLists.txt"
- ;; Sqlite
- (("include\\(sqlite\\)") "")
- (("\\$\\{sqlite_STATIC_LIBRARIES\\}")
- (search-input-file inputs "/lib/libsqlite3.so"))
- (("sqlite_copy_headers_to_destination") "")
-
- ;; PNG
- (("include\\(png\\)") "")
- (("\\$\\{png_STATIC_LIBRARIES\\}")
- (search-input-file inputs "/lib/libpng16.so"))
- (("png_copy_headers_to_destination") "")
-
- ;; JPEG
- (("include\\(jpeg\\)") "")
- (("\\$\\{jpeg_STATIC_LIBRARIES\\}")
- (search-input-file inputs "/lib/libjpeg.so"))
- (("jpeg_copy_headers_to_destination") "")
-
- ;; GIF
- (("include\\(gif\\)") "")
- (("\\$\\{gif_STATIC_LIBRARIES\\}")
- (search-input-file inputs "/lib/libgif.so"))
- (("gif_copy_headers_to_destination") "")
-
- ;; lmdb
- (("include\\(lmdb\\)") "")
- (("\\$\\{lmdb_STATIC_LIBRARIES\\}")
- (search-input-file inputs "/lib/liblmdb.so"))
- (("lmdb_copy_headers_to_destination") "")
-
- ;; Protobuf
- (("include\\(protobuf\\)") "")
- (("protobuf_copy_headers_to_destination") "")
- (("^ +protobuf") "")
-
- ;; gRPC
- (("include\\(grpc\\)")
- "find_package(grpc REQUIRED NAMES gRPC)")
- (("list\\(APPEND tensorflow_EXTERNAL_DEPENDENCIES grpc\\)") "")
-
- ;; Eigen
- (("include\\(eigen\\)")
- (string-append "find_package(eigen REQUIRED NAMES Eigen3)
-set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive "
- (assoc-ref inputs "eigen") "/include/eigen3)"))
- (("^ +eigen") "")
-
- ;; snappy
- (("include\\(snappy\\)")
- "add_definitions(-DTF_USE_SNAPPY)")
- (("list\\(APPEND tensorflow_EXTERNAL_DEPENDENCIES snappy\\)") "")
-
- ;; jsoncpp
- (("include\\(jsoncpp\\)") "")
- (("^ +jsoncpp") ""))
-
- (substitute* "tf_core_framework.cmake"
- ((" grpc") "")
- (("\\$\\{GRPC_BUILD\\}/grpc_cpp_plugin")
- (which "grpc_cpp_plugin"))
- ;; Link with gRPC libraries
- (("add_library\\(tf_protos_cc.*" m)
- (string-append m
- (format #f "\ntarget_link_libraries(tf_protos_cc PRIVATE \
-~a/lib/libgrpc++_unsecure.a \
-~a/lib/libgrpc_unsecure.a \
-~a/lib/libaddress_sorting.a \
-~a/lib/libgpr.a \
-~a//lib/libcares.so
-)\n"
- grpc grpc grpc grpc
- (assoc-ref inputs "c-ares"))))))
- (substitute* "tf_tools.cmake"
- (("add_dependencies\\(\\$\\{proto_text.*") ""))
- ;; Remove dependency on bundled grpc
- (substitute* "tf_core_distributed_runtime.cmake"
- (("tf_core_cpu grpc") "tf_core_cpu"))
-
- ;; This directory is a dependency of many targets.
- (mkdir-p "protobuf")))
- (add-after 'configure 'unpack-third-party-sources
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; This is needed to configure bundled packages properly.
- (setenv "CONFIG_SHELL" (which "bash"))
- (for-each
- (lambda (name)
- (let* ((what (assoc-ref inputs (string-append name "-src")))
- (name* (string-map (lambda (c)
- (if (char=? c #\-)
- #\_ c)) name))
- (where (string-append "../build/" name* "/src/" name*)))
- (cond
- ((string-suffix? ".zip" what)
- (mkdir-p where)
- (with-directory-excursion where
- (invoke "unzip" what)))
- ((string-suffix? ".tar.gz" what)
- (mkdir-p where)
- (invoke "tar" "xf" what
- "-C" where "--strip-components=1"))
- (else
- (let ((parent (dirname where)))
- (mkdir-p parent)
- (with-directory-excursion parent
- (when (file-exists? name*)
- (delete-file-recursively name*))
- (copy-recursively what name*)
- (map make-file-writable
- (find-files name* ".*"))))))))
- (list "boringssl"
- "cub"
- "double-conversion"
- "farmhash"
- "fft2d"
- "highwayhash"
- "nsync"
- "re2"))
-
- ;; https://github.com/google/farmhash/issues/24
- (substitute* "../build/farmhash/src/farmhash/src/farmhash.cc"
- (("using namespace std;") "")
- (("make_pair") "std::make_pair")
- (("pair<") "std::pair<"))
-
- (rename-file "../build/cub/src/cub/cub-1.8.0/"
- "../build/cub/src/cub/cub/")
-
- (setenv "LDFLAGS"
- (string-append "-Wl,-rpath="
- (assoc-ref outputs "out") "/lib"))))
- (add-after 'unpack 'fix-python-build
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (mkdir-p "protobuf-src")
- (invoke "tar" "xf" (assoc-ref inputs "protobuf:src")
- "-C" "protobuf-src" "--strip-components=1")
- (mkdir-p "eigen-src")
- (copy-recursively (assoc-ref inputs "eigen:src") "eigen-src")
-
- ;; distutils.sysconfig is deprecated and prints a deprecation
- ;; warning that breaks the generated CXX_INCLUDES line.
- (substitute* "tensorflow/contrib/cmake/tf_python.cmake"
- (("import distutils.sysconfig; print\\(distutils.sysconfig.get_python_inc\\(\\)\\)")
- "import sysconfig; print(sysconfig.get_path('include'))"))
-
- (substitute* "tensorflow/contrib/cmake/tf_python.cmake"
- ;; Take protobuf source files from our source package.
- (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/protobuf/src/protobuf/src/google")
- (string-append (getcwd) "/protobuf-src/src/google")))
-
- (substitute* '("tensorflow/contrib/cmake/tf_shared_lib.cmake"
- "tensorflow/contrib/cmake/tf_python.cmake")
- ;; Take Eigen source files from our source package.
- (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/eigen/src/eigen/")
- (string-append (getcwd) "/eigen-src/"))
- ;; Take Eigen headers from our own package.
- (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/external/eigen_archive")
- (search-input-directory inputs "/include/eigen3")))
-
- ;; Correct the RUNPATH of ops libraries generated for Python.
- ;; TODO: this doesn't work :(
- ;; /gnu/store/...-tensorflow-1.9.0/lib/python3.7/site-packages/tensorflow/contrib/seq2seq/python/ops/lib_beam_search_ops.so:
- ;; warning: RUNPATH contains bogus entries: ("/tmp/guix-build-tensorflow-1.9.0.drv-0/source/tensorflow/contrib/build")
- ;; /gnu/store/...-tensorflow-1.9.0/lib/python3.7/site-packages/tensorflow/contrib/seq2seq/python/ops/lib_beam_search_ops.so:
- ;; error: depends on 'libpywrap_tensorflow_internal.so', which
- ;; cannot be found in RUNPATH ...
- (substitute* "tensorflow/contrib/cmake/tf_cc_ops.cmake"
- (("set_target_properties.*")
- (string-append "set_target_properties(${_AT_TARGET} PROPERTIES \
-COMPILE_FLAGS ${target_compile_flags} \
-INSTALL_RPATH_USE_LINK_PATH TRUE \
-INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n")))))
- (add-after 'unpack 'patch-cmake-file-to-install-c-headers
- (lambda _
- (substitute* "tensorflow/contrib/cmake/tf_c.cmake"
- (("if\\(tensorflow_BUILD_PYTHON_BINDINGS" m)
- (string-append
- "install(DIRECTORY ${tensorflow_source_dir}/tensorflow/c/ \
-DESTINATION include/tensorflow/c FILES_MATCHING PATTERN \"*.h\")\n" m)))))
- (add-after 'build 'build-c-bindings
- (lambda* (#:key outputs parallel-build? #:allow-other-keys)
- (invoke "make" "-j" (if parallel-build?
- (number->string (parallel-job-count))
- "1")
- "tf_c")))
- (add-after 'install 'build-pip-package
- (lambda* (#:key outputs parallel-build? #:allow-other-keys)
- (invoke "make" "-j" (if parallel-build?
- (number->string (parallel-job-count))
- "1")
- "tf_python_build_pip_package")))
- (add-after 'build-pip-package 'install-python
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (wheel (car (find-files "../build/tf_python/dist/" "\\.whl$")))
- (python-version (python-version
- (assoc-ref inputs "python"))))
- (invoke "python" "-m" "pip" "install" wheel
- (string-append "--prefix=" out))
-
- ;; XXX: broken RUNPATH, see fix-python-build phase.
- (delete-file
- (string-append
- out "/lib/python" python-version
- "/site-packages/tensorflow/contrib/"
- "seq2seq/python/ops/lib_beam_search_ops.so"))))))))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("protobuf:native" ,protobuf-3.6) ; protoc
- ("protobuf:src" ,(package-source protobuf-3.6))
- ("eigen:src" ,(package-source eigen-for-tensorflow))
- ;; install_pip_packages.sh wants setuptools 39.1.0 specifically.
- ("python-setuptools" ,python-setuptools-for-tensorflow)
-
- ;; The commit hashes and URLs for third-party source code are taken
- ;; from "tensorflow/workspace.bzl".
- ("boringssl-src"
- ,(let ((commit "ee7aa02")
- (revision "1"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://boringssl.googlesource.com/boringssl")
- (commit commit)))
- (file-name (string-append "boringssl-0-" revision
- (string-take commit 7)
- "-checkout"))
- (sha256
- (base32
- "1jf693q0nw0adsic6cgmbdx6g7wr4rj4vxa8j1hpn792fqhd8wgw")))))
- ("cub-src"
- ,(let ((version "1.8.0"))
- (origin
- (method url-fetch)
- (uri (string-append "https://mirror.bazel.build/github.com/NVlabs/"
- "cub/archive/" version ".zip"))
- (file-name (string-append "cub-" version ".zip"))
- (sha256
- (base32
- "1hsqikqridb90dkxkjr2918dcry6pfh46ccnwrzawl56aamhdykb")))))
- ("double-conversion-src"
- ,(let ((commit "5664746")
- (revision "1"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/google/double-conversion")
- (commit commit)))
- (file-name
- (git-file-name "double-conversion"
- (string-append "0-" revision "."
- (string-take commit 7))))
- (sha256
- (base32
- "1h5lppqqxcvdg5jq42i5msgwx20ryij3apvmndflngrgdpc04gn1")))))
- ("farmhash-src"
- ,(let ((commit "816a4ae622e964763ca0862d9dbd19324a1eaf45"))
- (origin
- (method url-fetch)
- (uri (string-append
- "https://mirror.bazel.build/github.com/google/farmhash/archive/"
- commit ".tar.gz"))
- (file-name (string-append "farmhash-0-" (string-take commit 7)
- ".tar.gz"))
- (sha256
- (base32
- "185b2xdxl4d4cnsnv6abg8s22gxvx8673jq2yaq85bz4cdy58q35")))))
- ;; The license notice on the home page at
- ;; http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html says:
- ;; Copyright Takuya OOURA, 1996-2001
- ;;
- ;; You may use, copy, modify and distribute this code for any purpose
- ;; (include commercial use) and without fee. Please refer to this
- ;; package when you modify this code.
- ;;
- ;; We take the identical tarball from the Bazel mirror, because the URL
- ;; at the home page is not versioned and might change.
- ("fft2d-src"
- ,(origin
- (method url-fetch)
- (uri "https://mirror.bazel.build/www.kurims.kyoto-u.ac.jp/~ooura/fft.tgz")
- (file-name "fft2d.tar.gz")
- (sha256
- (base32
- "15jjkfvhqvl2c0753d2di8hz0pyzn598g74wqy79awdrf1y67fsj"))))
- ("highwayhash-src"
- ,(let ((commit "be5edafc2e1a455768e260ccd68ae7317b6690ee")
- (revision "1"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/google/highwayhash")
- (commit commit)))
- (file-name (string-append "highwayhash-0-" revision
- (string-take commit 7)
- "-checkout"))
- (sha256
- (base32
- "154jwf98cyy54hldr94pgjn85zynly3abpnc1avmb8a18lzwjyb6")))))
- ("nsync-src"
- ,(let ((version "0559ce013feac8db639ee1bf776aca0325d28777")
- (revision "1"))
- (origin
- (method url-fetch)
- (uri (string-append "https://mirror.bazel.build/"
- "github.com/google/nsync/archive/"
- version ".tar.gz"))
- (file-name (string-append "nsync-0." revision
- "-" (string-take version 7)
- ".tar.gz"))
- (sha256
- (base32
- "0qdkyqym34x739mmzv97ah5r7ph462v5xkxqxvidmcfqbi64b132")))))
- ("re2-src"
- ,(let ((commit "e7efc48")
- (revision "1"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/google/re2")
- (commit commit)))
- (file-name (string-append "re2-0-" revision
- (string-take commit 7)
- "-checkout"))
- (sha256
- (base32
- "161g9841rjfsy5pn52fcis0s9hdr7rxvb06pad38j5rppfihvign")))))
- ("googletest" ,googletest)
- ("swig" ,swig)
- ("unzip" ,unzip)))
- (propagated-inputs
- (list python-absl-py
- python-astor
- python-gast
- python-grpcio
- python-numpy
- python-protobuf-3.6
- python-six
- python-termcolor
- python-wheel))
- (inputs
- `(("c-ares" ,c-ares)
- ("eigen" ,eigen-for-tensorflow)
- ("gemmlowp" ,gemmlowp-for-tensorflow)
- ("lmdb" ,lmdb)
- ("libjpeg" ,libjpeg-turbo)
- ("libpng" ,libpng)
- ("giflib" ,giflib)
- ("grpc" ,grpc-1.16.1 "static")
- ("grpc:bin" ,grpc-1.16.1)
- ("jsoncpp" ,jsoncpp-for-tensorflow)
- ("snappy" ,snappy)
- ("sqlite" ,sqlite)
- ("protobuf" ,protobuf-3.6)
- ("python" ,python-wrapper)
- ("zlib" ,zlib)))
- (home-page "https://tensorflow.org")
- (synopsis "Machine learning framework")
- (description
- "TensorFlow is a flexible platform for building and training machine
-learning models. It provides a library for high performance numerical
-computation and includes high level Python APIs, including both a sequential
-API for beginners that allows users to build models quickly by plugging
-together building blocks and a subclassing API with an imperative style for
-advanced research.")
- (license license:asl2.0)))
-
(define-public tensorflow-lite
(package
(name "tensorflow-lite")