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
System operacyjny Mac
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 numpy wheel packaging requests opt_einsum
pip install -U --user keras_preprocessing --no-deps
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.
Zainstaluj Clang (zalecane, tylko Linux)
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 16.
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-16 clang-16
Alternatywnie możesz pobrać i rozpakować wstępnie skompilowany Clang + LLVM 16 .
Poniżej znajduje się przykład kroków, które możesz wykonać, aby skonfigurować pobrane pliki binarne Clang + LLVM 16:
Przejdź do żądanego katalogu docelowego:
```cd <desired directory>```
Załaduj i rozpakuj plik archiwum... (odpowiedni dla Twojej architektury):
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
tar -xvf clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
Sprawdź uzyskaną wersję binarną Clang + LLVM 16:
./clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang-16 --version
Katalog
/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clang-16
to rzeczywista ścieżka do twojego nowego klangu. Możesz uruchomić skrypt./configure
lub ręcznie ustawić zmienne środowiskoweCC
iBAZEL_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
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
Pakiet pip jest budowany w dwóch etapach. Komendy
bazel build
tworzą program „konstruktora pakietów”. Następnie uruchamiasz kreatora pakietów, aby utworzyć pakiet.Zbuduj narzędzie do tworzenia pakietów
Użyj
bazel build
, aby utworzyć narzędzie do tworzenia pakietów TensorFlow 2.x:bazel build [--config=option] //tensorflow/tools/pip_package:build_pip_package
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
Polecenie
bazel build
tworzy plik wykonywalny o nazwiebuild_pip_package
— jest to program, który buduje pakietpip
. Uruchom plik wykonywalny, jak pokazano poniżej, aby zbudować pakiet.whl
w katalogu/tmp/tensorflow_pkg
.Aby skompilować z gałęzi wydania:
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
Aby zbudować z wzorca, użyj
--nightly_flag
, aby uzyskać odpowiednie zależności:./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg
Chociaż możliwe jest budowanie konfiguracji CUDA i innych niż CUDA w tym samym drzewie źródłowym, zaleca się uruchamianie
bazel clean
podczas przełączania między tymi dwiema konfiguracjami w tym samym drzewie źródłowym.Zainstaluj pakiet
Nazwa wygenerowanego pliku
.whl
zależy od wersji TensorFlow i Twojej platformy. Użyjpip install
aby zainstalować pakiet, na przykład:pip install /tmp/tensorflow_pkg/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:
- Opcjonalnie: Skonfiguruj kompilację — powoduje to monit użytkownika o udzielenie odpowiedzi na pytania dotyczące konfiguracji kompilacji.
- Zbuduj narzędzie używane do tworzenia pakietu pip .
- Uruchom narzędzie, aby utworzyć pakiet pip .
- Dostosuj uprawnienia własności pliku poza kontenerem.
./configure # if necessary
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt # create package
chown $HOST_PERMS /mnt/tensorflow-version-tags.whl
Zainstaluj i zweryfikuj pakiet w kontenerze:
pip uninstall tensorflow # remove current version
pip install /mnt/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żywanvidia-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 --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt # create package
chown $HOST_PERMS /mnt/tensorflow-version-tags.whl
Zainstaluj i zweryfikuj pakiet w kontenerze oraz sprawdź obecność procesora graficznego:
pip uninstall tensorflow # remove current version
pip install /mnt/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.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.15.0 3,9-3,11 Dzwonek 16.0.0 Bazela 6.1.0 8.8 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 System operacyjny Mac
procesor
Wersja Wersja Pythona Kompilator Buduj narzędzia 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