WARNING: The API defined in this package is not stable and can change without notice. The same goes for the awkward package path (
github.com/tensorflow/tensorflow/tensorflow/go
).
Download and extract the TensorFlow C library, preferably into /usr/local
. GPU-enabled versions require CUDA 8.0 and cuDNN 5.1. For other versions, the TensorFlow C library will have to be built from source (see below).
The following shell snippet downloads and extracts into /usr/local
:
TF_TYPE="cpu" # Set to "gpu" for GPU support curl -L \ "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-${TF_TYPE}-$(go env GOOS)-x86_64-1.1.0.tar.gz" | sudo tar -C /usr/local -xz
go get
this package (and run tests):
go get github.com/tensorflow/tensorflow/tensorflow/go go test github.com/tensorflow/tensorflow/tensorflow/go
Done!
/usr/local
Refer to Installing TensorFlow for Go
If the “Quickstart” instructions above do not work (perhaps the release archives are not available for your operating system or architecture, or you're using a different version of CUDA/cuDNN), then the TensorFlow C library must be built from source.
sh # Linux sudo apt-get install python swig python-numpy # OS X with homebrew brew install swig
Download the source code
go get -d github.com/tensorflow/tensorflow/tensorflow/go
Build the TensorFlow C library:
cd ${GOPATH}/src/github.com/tensorflow/tensorflow ./configure bazel build --config opt //tensorflow:libtensorflow.so
This can take a while (tens of minutes, more if also building for GPU).
Make libtensorflow.so
available to the linker. This can be done by either:
a. Copying it to a system location, e.g.,
sudo cp ${GOPATH}/src/github.com/tensorflow/tensorflow/bazel-bin/tensorflow/libtensorflow.so /usr/local/lib
OR
b. Setting environment variables:
export LIBRARY_PATH=${GOPATH}/src/github.com/tensorflow/tensorflow/bazel-bin/tensorflow # Linux export LD_LIBRARY_PATH=${GOPATH}/src/github.com/tensorflow/tensorflow/bazel-bin/tensorflow # OS X export DYLD_LIBRARY_PATH=${GOPATH}/src/github.com/tensorflow/tensorflow/bazel-bin/tensorflow
Build and test:
go test github.com/tensorflow/tensorflow/tensorflow/go
Go functions corresponding to TensorFlow operations are generated in op/wrappers.go
. To regenerate them:
Prerequisites:
go generate github.com/tensorflow/tensorflow/tensorflow/go/op
Use stackoverflow and/or Github issues.
Contributions are welcome. If making any signification changes, probably best to discuss on a Github issue before investing too much time. Github pull requests are used for contributions.