The package provides bindings to TensorFlow.
The build prerequisites can be found on the corresponding page of TensorFlow’s documentation. In particular, Bazel, NumPy, and SWIG are assumed to be installed.
To enable GPU support, use the tensorflow_gpu
feature in your Cargo.toml:
[dependencies]
tensorflow-sys = { version = "0.23.0", features = ["tensorflow_gpu"] }
If you want to work against unreleased/unsupported TensorFlow versions or use a build optimized for your machine, manual compilation is the way to go.
See TensorFlow from source first.
The Python/pip steps are not necessary, but building tensorflow:libtensorflow.so
is.
In short:
-
Install SWIG and NumPy. The version from your distro's package manager should be fine for these two.
-
Install Bazel, which you may need to do from source. You will likely need an up-to-date version.
-
git clone https://github.com/tensorflow/tensorflow
-
cd tensorflow
-
./configure
-
bazel build --compilation_mode=opt --copt=-march=native --jobs=1 tensorflow:libtensorflow.so
Using
--jobs=1
is recommended unless you have a lot of RAM, because TensorFlow's build is very memory intensive.
Copy $TENSORFLOW_SRC/bazel-bin/tensorflow/libtensorflow.so
and libtensorflow_framework.so
to
/usr/local/lib
. You may need to run ldconfig
to reset ld
's cache after copying
libtensorflow.so
.
Generate tensorflow.pc by running the following (where $TENSORFLOW_VERSION is the version number of TensorFlow that you compiled, not the version number of the Rust crate):
$TENSORFLOW_SRC/tensorflow/c/generate-pc.sh --prefix=/usr/local --version=$TENSORFLOW_VERSION
This generates tensorflow.pc in the current folder. Copy this to your PKG_CONFIG_PATH (may be
/usr/lib/pkgconfig
). To verify that the library is installed correctly, run
pkg-config --libs tensorflow
.
If you previously compiled this crate, you may need to run cargo clean
before the manually
compiled library will be picked up.
macOS Note: Via Homebrew, you can just run
brew install libtensorflow
.