TensorFlow.NET pack all required libraries in architecture-specific assemblies folders per NuGet standard. ```powershell PM> Install-Package TensorFlow.NET PM> Install-Package SciSharp.TensorFlow.Redist ``` Add `win-x64` to a `PropertyGroup` in your `.csproj` when targeting `.NET 472`. ### Run in Linux Download Linux pre-built library and unzip `libtensorflow.so` and `libtensorflow_framework.so` into current running directory. To run image recognition in Linux, please ensure some prerequisite libraries is install. ```shell sudo apt install libc6-dev sudo apt install libgdiplus ``` More information about [System.Drawing on Linux](). ### Run TensorFlow with GPU Before running verify you installed CUDA and cuDNN (TensorFlow v1.15 is compatible with CUDA v10.0 and cuDNN v7.4 , TensorFlow v2.x is compatible with CUDA v10.2 and cuDNN v7.65), and make sure the corresponding cuda version is compatible. #### Mac OS There is no GPU support for macOS, in the future TensorFlow will support [Apple M1 chip](https://github.com/apple/tensorflow_macos). #### GPU for Windows ```powershell PM> Install-Package SciSharp.TensorFlow.Redist-Windows-GPU ``` #### GPU for Linux ```powershell PM> Install-Package SciSharp.TensorFlow.Redist-Linux-GPU ``` Since NuGet limits file size for 250M, we can't ship Linux GPU version as NuGet, you can download the library from [Google TensorFlow Storage](https://storage.googleapis.com/tensorflow). ### Download prebuild binary manually TensorFlow packages are built nightly and uploaded to GCS for all supported platforms. They are uploaded to the [libtensorflow-nightly](https://www.tensorflow.org/install/lang_c) GCS bucket and are indexed by operating system and date built. ### Build from source for Windows https://www.tensorflow.org/install/source_windows Download [Bazel 2.0.0](https://github.com/bazelbuild/bazel/releases/tag/2.0.0) to build tensorflow2.x. We build customized binary to export c_api from this [fork](https://github.com/SciSharp/tensorflow). Set ENV `BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC`. `pacman -S git patch unzip` 1. Build static library `bazel build --output_base=C:/tmp/tfcompilation --config=opt //tensorflow:tensorflow` 2. Build pip package `bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package` 3. Generate pip installation file `bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg` 4. Install from local wheel file. `pip install C:/tmp/tensorflow_pkg/tensorflow-1.15.0-cp36-cp36m-win_amd64.whl` ### Build from source for MacOS ```shell $ cd /usr/local/lib/bazel/bin $ curl -LO https://release.bazel.build/3.7.2/release/bazel-3.7.2-darwin-x86_64 $ chmod +x bazel-3.7.2-darwin-x86_64 $ cd ~/Projects/tensorflow $ bazel build --config=opt //tensorflow:tensorflow ``` ### Build specific version for tf.net https://github.com/SciSharp/tensorflow For Linux version, these APIs symbols should also be put into `tensorflow/c/version_script.lds` to be exported. Please refer to commit `https://github.com/SciSharp/tensorflow/commit/58122da06be3e7707500ad889dfd5c760a3e0424`