Kompilacja ze źródła

Zbuduj pakiet pip TensorFlow ze źródła i zainstaluj go na Ubuntu Linux i macOS. Chociaż instrukcje mogą działać w przypadku innych systemów, są testowane i obsługiwane tylko w systemach Ubuntu i macOS.

Konfiguracja dla systemu Linux i macOS

Zainstaluj następujące narzędzia do kompilacji, aby skonfigurować środowisko programistyczne.

Zainstaluj zależności Pythona i pakietu TensorFlow

Ubuntu

sudo apt install python3-dev python3-pip

macOS

Wymaga Xcode 9.2 lub nowszego.

Zainstaluj za pomocą menedżera pakietów Homebrew :

brew install python

Zainstaluj zależności pakietu pip TensorFlow (jeśli używasz środowiska wirtualnego, pomiń argument --user ):

pip install -U --user pip

Zainstaluj Bazela

Aby zbudować TensorFlow, musisz zainstalować Bazel. Bazelisk to łatwy sposób na zainstalowanie Bazela i automatyczne pobieranie prawidłowej wersji Bazela dla TensorFlow. Dla łatwości użycia dodaj Bazelisk jako plik wykonywalny bazel w PATH .

Jeśli Bazelisk nie jest dostępny, możesz ręcznie zainstalować Bazel . Upewnij się, że zainstalowałeś poprawną wersję Bazela z pliku .bazelversion TensorFlow.

Clang to kompilator C/C++/Objective-C skompilowany w C++ w oparciu o LLVM. Jest to domyślny kompilator do budowania TensorFlow począwszy od TensorFlow 2.13. Aktualnie obsługiwana wersja to LLVM/Clang 17.

Pakiety nocne LLVM Debian/Ubuntu zapewniają skrypt automatycznej instalacji i pakiety do ręcznej instalacji w systemie Linux. Upewnij się, że uruchomiłeś następującą komendę, jeśli ręcznie dodajesz repozytorium llvm apt do źródeł pakietów:

sudo apt-get update && sudo apt-get install -y llvm-17 clang-17

Teraz, gdy /usr/lib/llvm-17/bin/clang jest rzeczywistą ścieżką do clang w tym przypadku.

Alternatywnie możesz pobrać i rozpakować wstępnie skompilowany Clang + LLVM 17 .

Poniżej znajduje się przykład kroków, które możesz wykonać, aby skonfigurować pobrane pliki binarne Clang + LLVM 17 w systemach operacyjnych Debian/Ubuntu:

  1. Przejdź do żądanego katalogu docelowego: cd <desired directory>

  2. Załaduj i rozpakuj plik archiwum... (odpowiedni dla Twojej architektury):

    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
    
    tar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
    

  3. Skopiuj wyodrębnioną zawartość (katalogi i pliki) do /usr (możesz potrzebować uprawnień sudo, a właściwy katalog może się różnić w zależności od dystrybucji). To skutecznie instaluje Clang i LLVM i dodaje je do ścieżki. Nie powinieneś niczego wymieniać, chyba że masz wcześniejszą instalację i w takim przypadku powinieneś zastąpić pliki:

    cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usr

  4. Sprawdź uzyskaną wersję binarną Clang + LLVM 17:

    clang --version

  5. Teraz, gdy /usr/bin/clang jest rzeczywistą ścieżką do twojego nowego clangu. Możesz uruchomić skrypt ./configure lub ręcznie ustawić zmienne środowiskowe CC i BAZEL_COMPILER na tę ścieżkę.

Zainstaluj obsługę GPU (opcjonalnie, tylko Linux)

W systemie macOS nie ma obsługi procesora graficznego.

Przeczytaj przewodnik obsługi GPU , aby zainstalować sterowniki i dodatkowe oprogramowanie wymagane do uruchomienia TensorFlow na GPU.

Pobierz kod źródłowy TensorFlow

Użyj Git , aby sklonować repozytorium TensorFlow :

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

Domyślnie repozytorium znajduje się w master gałęzi rozwojowej. Możesz także sprawdzić gałąź wydania do zbudowania:

git checkout branch_name  # r2.2, r2.3, etc.

Skonfiguruj kompilację

Kompilacje TensorFlow są konfigurowane przez plik .bazelrc w katalogu głównym repozytorium. Do dostosowania typowych ustawień można użyć skryptów ./configure lub ./configure.py .

Proszę uruchomić skrypt ./configure z katalogu głównego repozytorium. Ten skrypt wyświetli monit o lokalizację zależności TensorFlow i poprosi o dodatkowe opcje konfiguracji kompilacji (na przykład flagi kompilatora). Aby uzyskać szczegółowe informacje, zobacz sekcję Przykładowa sesja .

./configure

Istnieje również wersja tego skryptu w języku Python, ./configure.py . Jeśli używasz środowiska wirtualnego, python configure.py nadaje priorytet ścieżkom w środowisku, podczas gdy ./configure nadaje priorytet ścieżkom poza środowiskiem. W obu przypadkach możesz zmienić ustawienie domyślne.

Przykładowa sesja

Poniżej przedstawiono przykładowe uruchomienie skryptu ./configure (Twoja sesja może się różnić):

Opcje konfiguracji

Wsparcie GPU

od wersji 2.18.0

Aby uzyskać obsługę GPU , ustaw cuda=Y podczas konfiguracji i w razie potrzeby określ wersje CUDA i cuDNN. Bazel automatycznie pobierze pakiety CUDA i CUDNN lub w razie potrzeby wskaże redystrybucje CUDA/CUDNN/NCCL w lokalnym systemie plików.

przed wersją 2.18.0

Aby uzyskać obsługę GPU , podczas konfiguracji ustaw cuda=Y i określ wersje CUDA i cuDNN. Jeśli w Twoim systemie zainstalowanych jest wiele wersji CUDA lub cuDNN, ustaw jawnie wersję, zamiast polegać na wartości domyślnej. ./configure tworzy dowiązania symboliczne do bibliotek CUDA w systemie — więc jeśli zaktualizujesz ścieżki bibliotek CUDA, ten krok konfiguracji musi zostać wykonany ponownie przed budowaniem.

Optymalizacje

W przypadku flag optymalizacji kompilacji opcja domyślna ( -march=native ) optymalizuje wygenerowany kod pod kątem typu procesora komputera. Jeśli jednak kompilujesz TensorFlow dla innego typu procesora, rozważ bardziej szczegółową flagę optymalizacji. Sprawdź przykłady w podręczniku GCC .

Wstępnie skonfigurowane konfiguracje

Dostępnych jest kilka wstępnie skonfigurowanych konfiguracji kompilacji, które można dodać do polecenia bazel build , na przykład:

  • --config=dbg — Kompiluj z informacjami debugowania. Szczegóły znajdziesz na CONTRIBUTING.md .
  • --config=mkl —Obsługa Intel® MKL-DNN .
  • --config=monolithic — Konfiguracja dla przeważnie statycznej, monolitycznej kompilacji.

Zbuduj i zainstaluj pakiet pip

Opcje kompilacji Bazela

Informacje na temat opcji kompilacji można znaleźć w dokumentacji wiersza poleceń Bazel.

Budowanie TensorFlow ze źródła może wymagać dużej ilości pamięci RAM. Jeśli twój system ma ograniczoną pamięć, ogranicz użycie RAMu Bazela za pomocą: --local_ram_resources=2048 .

Oficjalne pakiety TensorFlow są zbudowane z zestawu narzędzi Clang, który jest zgodny ze standardem pakietu ManyLinux2014.

Zbuduj pakiet

Aby zbudować pakiet pip, musisz podać flagę --repo_env=WHEEL_NAME . w zależności od podanej nazwy zostanie utworzony pakiet np.:

Aby zbudować pakiet procesora tensorflow:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu

Aby zbudować pakiet GPU tensorflow:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel

Aby zbudować pakiet TPU tensorflow:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu

Aby zbudować pakiet nocny, ustaw tf_nightly zamiast tensorflow , np. aby zbudować pakiet nocny procesora:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu

W rezultacie wygenerowane koło będzie zlokalizowane w

bazel-bin/tensorflow/tools/pip_package/wheel_house/

Zainstaluj pakiet

Nazwa wygenerowanego pliku .whl zależy od wersji TensorFlow i Twojej platformy. Użyj pip install , aby zainstalować pakiet, na przykład:

pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl

Kompilacje Docker Linux

Obrazy programistyczne platformy Docker TensorFlow to łatwy sposób na skonfigurowanie środowiska do tworzenia pakietów systemu Linux ze źródła. Te obrazy zawierają już kod źródłowy i zależności wymagane do zbudowania TensorFlow. Przejdź do przewodnika Dockera TensorFlow, aby uzyskać instrukcje instalacji i listę dostępnych tagów obrazu .

Tylko procesor

W poniższym przykładzie zastosowano obraz :devel do zbudowania pakietu przeznaczonego wyłącznie dla procesora na podstawie najnowszego kodu źródłowego TensorFlow. Sprawdź przewodnik Dockera pod kątem dostępnych tagów TensorFlow -devel .

Pobierz najnowszy obraz programistyczny i uruchom kontener Docker, którego użyjesz do zbudowania pakietu pip :

docker pull tensorflow/tensorflow:devel
docker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel bash

git pull  # within the container, download the latest source code

Powyższe polecenie docker run uruchamia powłokę w katalogu /tensorflow_src — katalogu głównym drzewa źródłowego. Montuje bieżący katalog hosta w katalogu /mnt kontenera i przekazuje informacje o użytkowniku hosta do kontenera poprzez zmienną środowiskową (używaną do ustawiania uprawnień — Docker może to utrudnić).

Alternatywnie, aby zbudować kopię hosta TensorFlow w kontenerze, zamontuj drzewo źródeł hosta w katalogu /tensorflow kontenera:

docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \
    -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash

Po skonfigurowaniu drzewa źródłowego zbuduj pakiet TensorFlow w wirtualnym środowisku kontenera:

  1. Opcjonalnie: Skonfiguruj kompilację — powoduje to monit użytkownika o udzielenie odpowiedzi na pytania dotyczące konfiguracji kompilacji.
  2. Zbuduj pakiet pip .
  3. Dostosuj uprawnienia własności pliku poza kontenerem.
./configure  # if necessary

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt
`
chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl

Zainstaluj i zweryfikuj pakiet w kontenerze:

pip uninstall tensorflow  # remove current version

pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"

Na komputerze hosta pakiet pip TensorFlow znajduje się w bieżącym katalogu (z uprawnieniami użytkownika hosta): ./tensorflow- version - tags .whl

Wsparcie GPU

Docker to najłatwiejszy sposób na zbudowanie obsługi GPU dla TensorFlow, ponieważ maszyna hosta wymaga jedynie sterownika NVIDIA® (zestaw narzędzi NVIDIA® CUDA® Toolkit nie musi być instalowany). Zapoznaj się z przewodnikiem obsługi GPU i przewodnikiem TensorFlow Docker, aby skonfigurować nvidia-docker (tylko Linux).

Poniższy przykład pobiera obraz TensorFlow :devel-gpu i używa nvidia-docker do uruchomienia kontenera obsługującego procesor graficzny. Ten obraz programistyczny jest skonfigurowany do tworzenia pakietu pip z obsługą GPU:

docker pull tensorflow/tensorflow:devel-gpu
docker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel-gpu bash
git pull  # within the container, download the latest source code

Następnie w środowisku wirtualnym kontenera zbuduj pakiet TensorFlow z obsługą GPU:

./configure  # if necessary

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel --config=opt

chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl

Zainstaluj i zweryfikuj pakiet w kontenerze oraz sprawdź obecność procesora graficznego:

pip uninstall tensorflow  # remove current version

pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"

Przetestowane konfiguracje kompilacji

Linuksa

Procesor

Wersja Wersja Pythona Kompilator Buduj narzędzia
tensorflow-2.18.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0
tensorflow-2.17.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0
tensorflow-2.16.1 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0
tensorflow-2.15.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0
tensorflow-2.14.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0
tensorflow-2.13.0 3.8-3.11 Dzwonek 16.0.0 Bazel 5.3.0
tensorflow-2.12.0 3.8-3.11 OWU 9.3.1 Bazel 5.3.0
tensorflow-2.11.0 3,7-3,10 OWU 9.3.1 Bazel 5.3.0
tensorflow-2.10.0 3,7-3,10 OWU 9.3.1 Bazela 5.1.1
tensorflow-2.9.0 3,7-3,10 OWU 9.3.1 Bazel 5.0.0
tensorflow-2.8.0 3,7-3,10 GCC 7.3.1 Bazela 4.2.1
tensorflow-2.7.0 3,7-3,9 GCC 7.3.1 Bazela 3.7.2
tensorflow-2.6.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2
tensorflow-2.5.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2
tensorflow-2.4.0 3,6-3,8 GCC 7.3.1 Bazel 3.1.0
tensorflow-2.3.0 3,5-3,8 GCC 7.3.1 Bazel 3.1.0
tensorflow-2.2.0 3,5-3,8 GCC 7.3.1 Bazel 2.0.0
tensorflow-2.1.0 2,7, 3,5-3,7 GCC 7.3.1 Bazel 0.27.1
tensorflow-2.0.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1
tensorflow-1.15.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1
tensorflow-1.14.0 2,7, 3,3-3,7 GCC 4.8 Bazel 0.24.1
tensorflow-1.13.1 2,7, 3,3-3,7 GCC 4.8 Bazel 0.19.2
tensorflow-1.12.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0
tensorflow-1.11.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0
tensorflow-1.10.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0
tensorflow-1.9.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.11.0
tensorflow-1.8.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.10.0
tensorflow-1.7.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.10.0
tensorflow-1.6.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.9.0
tensorflow-1.5.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.8.0
tensorflow-1.4.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.5.4
tensorflow-1.3.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5
tensorflow-1.2.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5
tensorflow-1.1.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2
tensorflow-1.0.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2

GPU

Wersja Wersja Pythona Kompilator Buduj narzędzia cuDNN CUDA
tensorflow-2.18.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0 9.3 12,5
tensorflow-2.17.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0 8.9 12.3
tensorflow-2.16.1 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0 8.9 12.3
tensorflow-2.15.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0 8.9 12.2
tensorflow-2.14.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0 8.7 11.8
tensorflow-2.13.0 3.8-3.11 Dzwonek 16.0.0 Bazel 5.3.0 8.6 11.8
tensorflow-2.12.0 3.8-3.11 OWU 9.3.1 Bazel 5.3.0 8.6 11.8
tensorflow-2.11.0 3,7-3,10 OWU 9.3.1 Bazel 5.3.0 8.1 11.2
tensorflow-2.10.0 3,7-3,10 OWU 9.3.1 Bazela 5.1.1 8.1 11.2
tensorflow-2.9.0 3,7-3,10 OWU 9.3.1 Bazel 5.0.0 8.1 11.2
tensorflow-2.8.0 3,7-3,10 GCC 7.3.1 Bazela 4.2.1 8.1 11.2
tensorflow-2.7.0 3,7-3,9 GCC 7.3.1 Bazela 3.7.2 8.1 11.2
tensorflow-2.6.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2 8.1 11.2
tensorflow-2.5.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2 8.1 11.2
tensorflow-2.4.0 3,6-3,8 GCC 7.3.1 Bazel 3.1.0 8,0 11,0
tensorflow-2.3.0 3,5-3,8 GCC 7.3.1 Bazel 3.1.0 7.6 10.1
tensorflow-2.2.0 3,5-3,8 GCC 7.3.1 Bazel 2.0.0 7.6 10.1
tensorflow-2.1.0 2,7, 3,5-3,7 GCC 7.3.1 Bazel 0.27.1 7.6 10.1
tensorflow-2.0.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1 7.4 10,0
tensorflow_gpu-1.15.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1 7.4 10,0
tensorflow_gpu-1.14.0 2,7, 3,3-3,7 GCC 4.8 Bazel 0.24.1 7.4 10,0
tensorflow_gpu-1.13.1 2,7, 3,3-3,7 GCC 4.8 Bazel 0.19.2 7.4 10,0
tensorflow_gpu-1.12.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.11.0 7 9
tensorflow_gpu-1.8.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.10.0 7 9
tensorflow_gpu-1.7.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.6.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.5.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.8.0 7 9
tensorflow_gpu-1.4.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.5.4 6 8
tensorflow_gpu-1.3.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5 6 8
tensorflow_gpu-1.2.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2 5.1 8

macOS

Procesor

Wersja Wersja Pythona Kompilator Buduj narzędzia
tensorflow-2.16.1 3,9-3,12 Clang z Xcode 13.6 Bazela 6.5.0
tensorflow-2.15.0 3,9-3,11 Brzęk z xcode 10.15 Bazela 6.1.0
tensorflow-2.14.0 3,9-3,11 Brzęk z xcode 10.15 Bazela 6.1.0
tensorflow-2.13.0 3.8-3.11 Brzęk z xcode 10.15 Bazel 5.3.0
tensorflow-2.12.0 3.8-3.11 Brzęk z xcode 10.15 Bazel 5.3.0
tensorflow-2.11.0 3,7-3,10 Brzęk z xcode 10.14 Bazel 5.3.0
tensorflow-2.10.0 3,7-3,10 Brzęk z xcode 10.14 Bazela 5.1.1
tensorflow-2.9.0 3,7-3,10 Brzęk z xcode 10.14 Bazel 5.0.0
tensorflow-2.8.0 3,7-3,10 Brzęk z xcode 10.14 Bazela 4.2.1
tensorflow-2.7.0 3,7-3,9 Brzęk z xcode 10.11 Bazela 3.7.2
tensorflow-2.6.0 3,6-3,9 Brzęk z xcode 10.11 Bazela 3.7.2
tensorflow-2.5.0 3,6-3,9 Brzęk z xcode 10.11 Bazela 3.7.2
tensorflow-2.4.0 3,6-3,8 Brzęk z xcode 10.3 Bazel 3.1.0
tensorflow-2.3.0 3,5-3,8 Brzęk z xcode 10.1 Bazel 3.1.0
tensorflow-2.2.0 3,5-3,8 Brzęk z xcode 10.1 Bazel 2.0.0
tensorflow-2.1.0 2,7, 3,5-3,7 Brzęk z xcode 10.1 Bazel 0.27.1
tensorflow-2.0.0 2,7, 3,5-3,7 Brzęk z xcode 10.1 Bazel 0.27.1
tensorflow-2.0.0 2,7, 3,3-3,7 Brzęk z xcode 10.1 Bazel 0.26.1
tensorflow-1.15.0 2,7, 3,3-3,7 Brzęk z xcode 10.1 Bazel 0.26.1
tensorflow-1.14.0 2,7, 3,3-3,7 Brzęk z xcode Bazel 0.24.1
tensorflow-1.13.1 2,7, 3,3-3,7 Brzęk z xcode Bazel 0.19.2
tensorflow-1.12.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.15.0
tensorflow-1.11.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.15.0
tensorflow-1.10.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.15.0
tensorflow-1.9.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.11.0
tensorflow-1.8.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.10.1
tensorflow-1.7.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.10.1
tensorflow-1.6.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.8.1
tensorflow-1.5.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.8.1
tensorflow-1.4.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.5.4
tensorflow-1.3.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.5
tensorflow-1.2.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.5
tensorflow-1.1.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2
tensorflow-1.0.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2

GPU

Wersja Wersja Pythona Kompilator Buduj narzędzia cuDNN CUDA
tensorflow_gpu-1.1.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2 5.1 8
,

Zbuduj pakiet pip TensorFlow ze źródła i zainstaluj go na Ubuntu Linux i macOS. Chociaż instrukcje mogą działać w przypadku innych systemów, są testowane i obsługiwane tylko w systemach Ubuntu i macOS.

Konfiguracja dla systemu Linux i macOS

Zainstaluj następujące narzędzia do kompilacji, aby skonfigurować środowisko programistyczne.

Zainstaluj zależności Pythona i pakietu TensorFlow

Ubuntu

sudo apt install python3-dev python3-pip

macOS

Wymaga Xcode 9.2 lub nowszego.

Zainstaluj za pomocą menedżera pakietów Homebrew :

brew install python

Zainstaluj zależności pakietu pip TensorFlow (jeśli używasz środowiska wirtualnego, pomiń argument --user ):

pip install -U --user pip

Zainstaluj Bazela

Aby zbudować TensorFlow, musisz zainstalować Bazel. Bazelisk to łatwy sposób na zainstalowanie Bazela i automatyczne pobieranie prawidłowej wersji Bazela dla TensorFlow. Dla łatwości użycia dodaj Bazelisk jako plik wykonywalny bazel w PATH .

Jeśli Bazelisk nie jest dostępny, możesz ręcznie zainstalować Bazel . Upewnij się, że zainstalowałeś poprawną wersję Bazela z pliku .bazelversion TensorFlow.

Clang to kompilator C/C++/Objective-C skompilowany w C++ w oparciu o LLVM. Jest to domyślny kompilator do budowania TensorFlow począwszy od TensorFlow 2.13. Aktualnie obsługiwana wersja to LLVM/Clang 17.

Pakiety nocne LLVM Debian/Ubuntu zapewniają skrypt automatycznej instalacji i pakiety do ręcznej instalacji w systemie Linux. Upewnij się, że uruchomiłeś następującą komendę, jeśli ręcznie dodajesz repozytorium llvm apt do źródeł pakietów:

sudo apt-get update && sudo apt-get install -y llvm-17 clang-17

Teraz, gdy /usr/lib/llvm-17/bin/clang jest rzeczywistą ścieżką do clang w tym przypadku.

Alternatywnie możesz pobrać i rozpakować wstępnie skompilowany Clang + LLVM 17 .

Poniżej znajduje się przykład kroków, które możesz wykonać, aby skonfigurować pobrane pliki binarne Clang + LLVM 17 w systemach operacyjnych Debian/Ubuntu:

  1. Przejdź do żądanego katalogu docelowego: cd <desired directory>

  2. Załaduj i rozpakuj plik archiwum... (odpowiedni dla Twojej architektury):

    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
    
    tar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
    

  3. Skopiuj wyodrębnioną zawartość (katalogi i pliki) do /usr (możesz potrzebować uprawnień sudo, a właściwy katalog może się różnić w zależności od dystrybucji). To skutecznie instaluje Clang i LLVM i dodaje je do ścieżki. Nie powinieneś niczego wymieniać, chyba że masz wcześniejszą instalację i w takim przypadku powinieneś zastąpić pliki:

    cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usr

  4. Sprawdź uzyskaną wersję binarną Clang + LLVM 17:

    clang --version

  5. Teraz, gdy /usr/bin/clang jest rzeczywistą ścieżką do twojego nowego clangu. Możesz uruchomić skrypt ./configure lub ręcznie ustawić zmienne środowiskowe CC i BAZEL_COMPILER na tę ścieżkę.

Zainstaluj obsługę GPU (opcjonalnie, tylko Linux)

W systemie macOS nie ma obsługi procesora graficznego.

Przeczytaj przewodnik obsługi GPU , aby zainstalować sterowniki i dodatkowe oprogramowanie wymagane do uruchomienia TensorFlow na GPU.

Pobierz kod źródłowy TensorFlow

Użyj Git , aby sklonować repozytorium TensorFlow :

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

Domyślnie repozytorium znajduje się w master gałęzi rozwojowej. Możesz także sprawdzić gałąź wydania do zbudowania:

git checkout branch_name  # r2.2, r2.3, etc.

Skonfiguruj kompilację

Kompilacje TensorFlow są konfigurowane przez plik .bazelrc w katalogu głównym repozytorium. Do dostosowania typowych ustawień można użyć skryptów ./configure lub ./configure.py .

Proszę uruchomić skrypt ./configure z katalogu głównego repozytorium. Ten skrypt wyświetli monit o lokalizację zależności TensorFlow i poprosi o dodatkowe opcje konfiguracji kompilacji (na przykład flagi kompilatora). Aby uzyskać szczegółowe informacje, zobacz sekcję Przykładowa sesja .

./configure

Istnieje również wersja tego skryptu w języku Python, ./configure.py . Jeśli używasz środowiska wirtualnego, python configure.py nadaje priorytet ścieżkom w środowisku, podczas gdy ./configure nadaje priorytet ścieżkom poza środowiskiem. W obu przypadkach możesz zmienić ustawienie domyślne.

Przykładowa sesja

Poniżej przedstawiono przykładowe uruchomienie skryptu ./configure (Twoja sesja może się różnić):

Opcje konfiguracji

Wsparcie GPU

od wersji 2.18.0

Aby uzyskać obsługę GPU , ustaw cuda=Y podczas konfiguracji i w razie potrzeby określ wersje CUDA i cuDNN. Bazel automatycznie pobierze pakiety CUDA i CUDNN lub w razie potrzeby wskaże redystrybucje CUDA/CUDNN/NCCL w lokalnym systemie plików.

przed wersją 2.18.0

Aby uzyskać obsługę GPU , podczas konfiguracji ustaw cuda=Y i określ wersje CUDA i cuDNN. Jeśli w Twoim systemie zainstalowanych jest wiele wersji CUDA lub cuDNN, ustaw jawnie wersję, zamiast polegać na wartości domyślnej. ./configure tworzy dowiązania symboliczne do bibliotek CUDA w systemie — więc jeśli zaktualizujesz ścieżki bibliotek CUDA, ten krok konfiguracji musi zostać wykonany ponownie przed budowaniem.

Optymalizacje

W przypadku flag optymalizacji kompilacji opcja domyślna ( -march=native ) optymalizuje wygenerowany kod pod kątem typu procesora komputera. Jeśli jednak kompilujesz TensorFlow dla innego typu procesora, rozważ bardziej szczegółową flagę optymalizacji. Sprawdź przykłady w podręczniku GCC .

Wstępnie skonfigurowane konfiguracje

Dostępnych jest kilka wstępnie skonfigurowanych konfiguracji kompilacji, które można dodać do polecenia bazel build , na przykład:

  • --config=dbg — Kompiluj z informacjami debugowania. Szczegóły znajdziesz na CONTRIBUTING.md .
  • --config=mkl —Obsługa Intel® MKL-DNN .
  • --config=monolithic — Konfiguracja dla przeważnie statycznej, monolitycznej kompilacji.

Zbuduj i zainstaluj pakiet pip

Opcje kompilacji Bazela

Informacje na temat opcji kompilacji można znaleźć w dokumentacji wiersza poleceń Bazel.

Budowanie TensorFlow ze źródła może wymagać dużej ilości pamięci RAM. Jeśli twój system ma ograniczoną pamięć, ogranicz użycie RAMu Bazela za pomocą: --local_ram_resources=2048 .

Oficjalne pakiety TensorFlow są zbudowane z zestawu narzędzi Clang, który jest zgodny ze standardem pakietu ManyLinux2014.

Zbuduj pakiet

Aby zbudować pakiet pip, musisz podać flagę --repo_env=WHEEL_NAME . w zależności od podanej nazwy zostanie utworzony pakiet np.:

Aby zbudować pakiet procesora tensorflow:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu

Aby zbudować pakiet GPU tensorflow:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel

Aby zbudować pakiet TPU tensorflow:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu

Aby zbudować pakiet nocny, ustaw tf_nightly zamiast tensorflow , np. aby zbudować pakiet nocny procesora:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu

W rezultacie wygenerowane koło będzie zlokalizowane w

bazel-bin/tensorflow/tools/pip_package/wheel_house/

Zainstaluj pakiet

Nazwa wygenerowanego pliku .whl zależy od wersji TensorFlow i Twojej platformy. Użyj pip install , aby zainstalować pakiet, na przykład:

pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl

Kompilacje Docker Linux

Obrazy programistyczne platformy Docker TensorFlow to łatwy sposób na skonfigurowanie środowiska do tworzenia pakietów systemu Linux ze źródła. Te obrazy zawierają już kod źródłowy i zależności wymagane do zbudowania TensorFlow. Przejdź do przewodnika Dockera TensorFlow, aby uzyskać instrukcje instalacji i listę dostępnych tagów obrazu .

Tylko procesor

W poniższym przykładzie zastosowano obraz :devel do zbudowania pakietu przeznaczonego wyłącznie dla procesora na podstawie najnowszego kodu źródłowego TensorFlow. Sprawdź przewodnik Dockera pod kątem dostępnych tagów TensorFlow -devel .

Pobierz najnowszy obraz programistyczny i uruchom kontener Docker, którego użyjesz do zbudowania pakietu pip :

docker pull tensorflow/tensorflow:devel
docker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel bash

git pull  # within the container, download the latest source code

Powyższe polecenie docker run uruchamia powłokę w katalogu /tensorflow_src — katalogu głównym drzewa źródłowego. Montuje bieżący katalog hosta w katalogu /mnt kontenera i przekazuje informacje o użytkowniku hosta do kontenera poprzez zmienną środowiskową (używaną do ustawiania uprawnień — Docker może to utrudnić).

Alternatywnie, aby zbudować kopię hosta TensorFlow w kontenerze, zamontuj drzewo źródeł hosta w katalogu /tensorflow kontenera:

docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \
    -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash

Po skonfigurowaniu drzewa źródłowego zbuduj pakiet TensorFlow w wirtualnym środowisku kontenera:

  1. Opcjonalnie: Skonfiguruj kompilację — powoduje to monit użytkownika o udzielenie odpowiedzi na pytania dotyczące konfiguracji kompilacji.
  2. Zbuduj pakiet pip .
  3. Dostosuj uprawnienia własności pliku poza kontenerem.
./configure  # if necessary

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt
`
chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl

Zainstaluj i zweryfikuj pakiet w kontenerze:

pip uninstall tensorflow  # remove current version

pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"

Na komputerze hosta pakiet pip TensorFlow znajduje się w bieżącym katalogu (z uprawnieniami użytkownika hosta): ./tensorflow- version - tags .whl

Wsparcie GPU

Docker to najłatwiejszy sposób na zbudowanie obsługi GPU dla TensorFlow, ponieważ maszyna hosta wymaga jedynie sterownika NVIDIA® (zestaw narzędzi NVIDIA® CUDA® Toolkit nie musi być instalowany). Zapoznaj się z przewodnikiem obsługi GPU i przewodnikiem TensorFlow Docker, aby skonfigurować nvidia-docker (tylko Linux).

Poniższy przykład pobiera obraz TensorFlow :devel-gpu i używa nvidia-docker do uruchomienia kontenera obsługującego procesor graficzny. Ten obraz programistyczny jest skonfigurowany do tworzenia pakietu pip z obsługą GPU:

docker pull tensorflow/tensorflow:devel-gpu
docker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel-gpu bash
git pull  # within the container, download the latest source code

Następnie w środowisku wirtualnym kontenera zbuduj pakiet TensorFlow z obsługą GPU:

./configure  # if necessary

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel --config=opt

chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl

Zainstaluj i zweryfikuj pakiet w kontenerze oraz sprawdź obecność procesora graficznego:

pip uninstall tensorflow  # remove current version

pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"

Przetestowane konfiguracje kompilacji

Linuksa

Procesor

Wersja Wersja Pythona Kompilator Buduj narzędzia
tensorflow-2.18.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0
tensorflow-2.17.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0
tensorflow-2.16.1 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0
tensorflow-2.15.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0
tensorflow-2.14.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0
tensorflow-2.13.0 3.8-3.11 Dzwonek 16.0.0 Bazel 5.3.0
tensorflow-2.12.0 3.8-3.11 OWU 9.3.1 Bazel 5.3.0
tensorflow-2.11.0 3,7-3,10 OWU 9.3.1 Bazel 5.3.0
tensorflow-2.10.0 3,7-3,10 OWU 9.3.1 Bazela 5.1.1
tensorflow-2.9.0 3,7-3,10 OWU 9.3.1 Bazel 5.0.0
tensorflow-2.8.0 3,7-3,10 GCC 7.3.1 Bazela 4.2.1
tensorflow-2.7.0 3,7-3,9 GCC 7.3.1 Bazela 3.7.2
tensorflow-2.6.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2
tensorflow-2.5.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2
tensorflow-2.4.0 3,6-3,8 GCC 7.3.1 Bazel 3.1.0
tensorflow-2.3.0 3,5-3,8 GCC 7.3.1 Bazel 3.1.0
tensorflow-2.2.0 3,5-3,8 GCC 7.3.1 Bazel 2.0.0
tensorflow-2.1.0 2,7, 3,5-3,7 GCC 7.3.1 Bazel 0.27.1
tensorflow-2.0.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1
tensorflow-1.15.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1
tensorflow-1.14.0 2,7, 3,3-3,7 GCC 4.8 Bazel 0.24.1
tensorflow-1.13.1 2,7, 3,3-3,7 GCC 4.8 Bazel 0.19.2
tensorflow-1.12.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0
tensorflow-1.11.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0
tensorflow-1.10.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0
tensorflow-1.9.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.11.0
tensorflow-1.8.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.10.0
tensorflow-1.7.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.10.0
tensorflow-1.6.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.9.0
tensorflow-1.5.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.8.0
tensorflow-1.4.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.5.4
tensorflow-1.3.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5
tensorflow-1.2.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5
tensorflow-1.1.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2
tensorflow-1.0.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2

GPU

Wersja Wersja Pythona Kompilator Buduj narzędzia cuDNN CUDA
tensorflow-2.18.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0 9.3 12,5
tensorflow-2.17.0 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0 8.9 12.3
tensorflow-2.16.1 3,9-3,12 Brzęk 17.0.6 Bazela 6.5.0 8.9 12.3
tensorflow-2.15.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0 8.9 12.2
tensorflow-2.14.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0 8.7 11.8
tensorflow-2.13.0 3.8-3.11 Dzwonek 16.0.0 Bazel 5.3.0 8.6 11.8
tensorflow-2.12.0 3.8-3.11 OWU 9.3.1 Bazel 5.3.0 8.6 11.8
tensorflow-2.11.0 3,7-3,10 OWU 9.3.1 Bazel 5.3.0 8.1 11.2
tensorflow-2.10.0 3,7-3,10 OWU 9.3.1 Bazela 5.1.1 8.1 11.2
tensorflow-2.9.0 3,7-3,10 OWU 9.3.1 Bazel 5.0.0 8.1 11.2
tensorflow-2.8.0 3,7-3,10 GCC 7.3.1 Bazela 4.2.1 8.1 11.2
tensorflow-2.7.0 3,7-3,9 GCC 7.3.1 Bazela 3.7.2 8.1 11.2
tensorflow-2.6.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2 8.1 11.2
tensorflow-2.5.0 3,6-3,9 GCC 7.3.1 Bazela 3.7.2 8.1 11.2
tensorflow-2.4.0 3,6-3,8 GCC 7.3.1 Bazel 3.1.0 8,0 11,0
tensorflow-2.3.0 3,5-3,8 GCC 7.3.1 Bazel 3.1.0 7.6 10.1
tensorflow-2.2.0 3,5-3,8 GCC 7.3.1 Bazel 2.0.0 7.6 10.1
tensorflow-2.1.0 2,7, 3,5-3,7 GCC 7.3.1 Bazel 0.27.1 7.6 10.1
tensorflow-2.0.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1 7.4 10,0
tensorflow_gpu-1.15.0 2,7, 3,3-3,7 GCC 7.3.1 Bazel 0.26.1 7.4 10,0
tensorflow_gpu-1.14.0 2,7, 3,3-3,7 GCC 4.8 Bazel 0.24.1 7.4 10,0
tensorflow_gpu-1.13.1 2,7, 3,3-3,7 GCC 4.8 Bazel 0.19.2 7.4 10,0
tensorflow_gpu-1.12.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.11.0 7 9
tensorflow_gpu-1.8.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.10.0 7 9
tensorflow_gpu-1.7.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.6.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.5.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.8.0 7 9
tensorflow_gpu-1.4.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.5.4 6 8
tensorflow_gpu-1.3.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5 6 8
tensorflow_gpu-1.2.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2,7, 3,3-3,6 GCC 4.8 Bazel 0.4.2 5.1 8

macOS

Procesor

Wersja Wersja Pythona Kompilator Buduj narzędzia
tensorflow-2.16.1 3,9-3,12 Clang z Xcode 13.6 Bazela 6.5.0
tensorflow-2.15.0 3,9-3,11 Brzęk z xcode 10.15 Bazela 6.1.0
tensorflow-2.14.0 3,9-3,11 Brzęk z xcode 10.15 Bazela 6.1.0
tensorflow-2.13.0 3.8-3.11 Brzęk z xcode 10.15 Bazel 5.3.0
tensorflow-2.12.0 3.8-3.11 Brzęk z xcode 10.15 Bazel 5.3.0
tensorflow-2.11.0 3,7-3,10 Brzęk z xcode 10.14 Bazel 5.3.0
tensorflow-2.10.0 3,7-3,10 Brzęk z xcode 10.14 Bazela 5.1.1
tensorflow-2.9.0 3,7-3,10 Brzęk z xcode 10.14 Bazel 5.0.0
tensorflow-2.8.0 3,7-3,10 Brzęk z xcode 10.14 Bazela 4.2.1
tensorflow-2.7.0 3,7-3,9 Brzęk z xcode 10.11 Bazela 3.7.2
tensorflow-2.6.0 3,6-3,9 Brzęk z xcode 10.11 Bazela 3.7.2
tensorflow-2.5.0 3,6-3,9 Brzęk z xcode 10.11 Bazela 3.7.2
tensorflow-2.4.0 3,6-3,8 Brzęk z xcode 10.3 Bazel 3.1.0
tensorflow-2.3.0 3,5-3,8 Brzęk z xcode 10.1 Bazel 3.1.0
tensorflow-2.2.0 3,5-3,8 Brzęk z xcode 10.1 Bazel 2.0.0
tensorflow-2.1.0 2,7, 3,5-3,7 Brzęk z xcode 10.1 Bazel 0.27.1
tensorflow-2.0.0 2,7, 3,5-3,7 Brzęk z xcode 10.1 Bazel 0.27.1
tensorflow-2.0.0 2,7, 3,3-3,7 Brzęk z xcode 10.1 Bazel 0.26.1
tensorflow-1.15.0 2,7, 3,3-3,7 Brzęk z xcode 10.1 Bazel 0.26.1
tensorflow-1.14.0 2,7, 3,3-3,7 Brzęk z xcode Bazel 0.24.1
tensorflow-1.13.1 2,7, 3,3-3,7 Brzęk z xcode Bazel 0.19.2
tensorflow-1.12.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.15.0
tensorflow-1.11.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.15.0
tensorflow-1.10.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.15.0
tensorflow-1.9.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.11.0
tensorflow-1.8.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.10.1
tensorflow-1.7.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.10.1
tensorflow-1.6.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.8.1
tensorflow-1.5.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.8.1
tensorflow-1.4.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.5.4
tensorflow-1.3.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.5
tensorflow-1.2.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.5
tensorflow-1.1.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2
tensorflow-1.0.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2

GPU

Wersja Wersja Pythona Kompilator Buduj narzędzia cuDNN CUDA
tensorflow_gpu-1.1.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2,7, 3,3-3,6 Brzęk z xcode Bazel 0.4.2 5.1 8