Crie um pacote pip do TensorFlow a partir do código-fonte e instale-o no Ubuntu Linux e no macOS. Embora as instruções possam funcionar em outros sistemas, elas foram testadas e são suportadas apenas para Ubuntu e macOS.
Configuração para Linux e macOS
Instale as seguintes ferramentas de compilação para configurar seu ambiente de desenvolvimento.
Instale o Python e as dependências do pacote TensorFlow.
Ubuntu
sudo apt install python3-dev python3-pipmacOS
Requer o Xcode 9.2 ou posterior.
Instale usando o gerenciador de pacotes Homebrew :
brew install python Instale as dependências do pacote pip do TensorFlow (se estiver usando um ambiente virtual, omita o argumento --user ):
pip install -U --user pipInstalar Bazel
Para compilar o TensorFlow, você precisará instalar o Bazel. O Bazelisk é uma maneira fácil de instalar o Bazel e baixa automaticamente a versão correta do Bazel para o TensorFlow. Para facilitar o uso, adicione o Bazelisk como o executável bazel no seu PATH .
Caso o Bazelisk não esteja disponível, você pode instalar o Bazel manualmente. Certifique-se de instalar a versão correta do Bazel a partir do arquivo .bazelversion do TensorFlow.
Instale o Clang (recomendado, somente para Linux)
O Clang é um compilador C/C++/Objective-C compilado em C++ baseado no LLVM. É o compilador padrão para compilar o TensorFlow a partir da versão 2.13. A versão atualmente suportada é LLVM/Clang 17.
Os pacotes nightly do LLVM para Debian/Ubuntu fornecem um script de instalação automática e pacotes para instalação manual no Linux. Certifique-se de executar o seguinte comando se você adicionar manualmente o repositório apt do LLVM às suas fontes de pacotes:
sudo apt-get update && sudo apt-get install -y llvm-17 clang-17 Agora que /usr/lib/llvm-17/bin/clang é o caminho real para o clang neste caso.
Alternativamente, você pode baixar e descompactar o Clang + LLVM 17 pré-compilado.
A seguir, um exemplo dos passos que você pode seguir para configurar os binários Clang + LLVM 17 baixados em sistemas operacionais Debian/Ubuntu:
Mude para o diretório de destino desejado:
cd <desired directory>Carregar e extrair um arquivo compactado...(adequado à sua arquitetura):
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.xztar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xzCopie o conteúdo extraído (diretórios e arquivos) para
/usr(você pode precisar de permissões de sudo e o diretório correto pode variar de acordo com a distribuição). Isso instala o Clang e o LLVM e os adiciona ao PATH. Você não deve precisar substituir nada, a menos que tenha uma instalação anterior, caso em que você deve substituir os arquivos:cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usrVerifique a versão dos binários Clang + LLVM 17 obtidos:
clang --versionAgora que
/usr/bin/clangé o caminho real para o seu novo clang, você pode executar o script./configureou definir manualmente as variáveis de ambienteCCeBAZEL_COMPILERpara este caminho.
Instalar suporte para GPU (opcional, apenas para Linux)
Não há suporte para GPU no macOS.
Leia o guia de suporte da GPU para instalar os drivers e o software adicional necessário para executar o TensorFlow em uma GPU.
Baixe o código-fonte do TensorFlow.
Utilize o Git para clonar o repositório do TensorFlow :
git clone https://github.com/tensorflow/tensorflow.gitcd tensorflow
O repositório usa por padrão a branch de desenvolvimento master . Você também pode selecionar uma branch de lançamento para compilar:
git checkout branch_name # r2.2, r2.3, etc.
Configure a compilação
As compilações do TensorFlow são configuradas pelo arquivo .bazelrc no diretório raiz do repositório. Os scripts ./configure ou ./configure.py podem ser usados para ajustar configurações comuns.
Execute o script ./configure a partir do diretório raiz do repositório. Este script solicitará a localização das dependências do TensorFlow e pedirá opções adicionais de configuração de compilação (como flags do compilador). Consulte a seção Sessão de exemplo para obter mais detalhes.
./configure
Existe também uma versão em Python deste script, ./configure.py . Se estiver usando um ambiente virtual, python configure.py prioriza os caminhos dentro do ambiente, enquanto ./configure prioriza os caminhos fora do ambiente. Em ambos os casos, você pode alterar o padrão.
Sessão de exemplo
A seguir, apresentamos um exemplo de execução do script ./configure (sua sessão pode ser diferente):
Opções de configuração
suporte a GPU
da versão 2.18.0
Para suporte a GPU , defina cuda=Y durante a configuração e especifique as versões do CUDA e do cuDNN, se necessário. O Bazel fará o download automático dos pacotes CUDA e cuDNN ou indicará as redistribuições do CUDA/cuDNN/NCCL no sistema de arquivos local, se necessário.
antes da versão 2.18.0
Para suporte a GPU , defina cuda=Y durante a configuração e especifique as versões do CUDA e do cuDNN. Se o seu sistema tiver várias versões do CUDA ou do cuDNN instaladas, defina explicitamente a versão em vez de usar a padrão. ./configure cria links simbólicos para as bibliotecas CUDA do seu sistema; portanto, se você atualizar os caminhos das bibliotecas CUDA, esta etapa de configuração deverá ser executada novamente antes da compilação.
Otimizações
Para as opções de otimização de compilação, o padrão ( -march=native ) otimiza o código gerado para o tipo de CPU da sua máquina. No entanto, se estiver compilando o TensorFlow para um tipo de CPU diferente, considere usar uma opção de otimização mais específica. Consulte o manual do GCC para obter exemplos.
Configurações pré-configuradas
Existem algumas configurações de compilação pré-configuradas disponíveis que podem ser adicionadas ao comando bazel build , por exemplo:
-
--config=dbg— Compilar com informações de depuração. Consulte CONTRIBUTING.md para obter detalhes. -
--config=mkl—Suporte para o Intel® MKL-DNN . -
--config=monolithic— Configuração para uma compilação monolítica, em sua maioria estática.
Compile e instale o pacote pip.
Opções de compilação do Bazel
Consulte a referência da linha de comando do Bazel para obter opções de compilação .
Compilar o TensorFlow a partir do código-fonte pode usar muita RAM. Se o seu sistema tiver memória limitada, limite o uso de RAM do Bazel com: --local_ram_resources=2048 .
Os pacotes oficiais do TensorFlow são construídos com uma cadeia de ferramentas Clang que está em conformidade com o padrão de pacote manylinux2014.
Construa o pacote
Para criar um pacote pip, você precisa especificar a flag --repo_env=WHEEL_NAME . Dependendo do nome fornecido, o pacote será criado, por exemplo:
Para compilar o pacote TensorFlow para CPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_cpu
Para criar o pacote TensorFlow para GPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel
Para criar o pacote TPU do TensorFlow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu
Para criar o pacote nightly, defina tf_nightly em vez de tensorflow , por exemplo, para criar o pacote nightly para CPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tf_nightly_cpu
Como resultado, a roda gerada estará localizada em
bazel-bin/tensorflow/tools/pip_package/wheel_house/
Instale o pacote
O nome do arquivo .whl gerado depende da versão do TensorFlow e da sua plataforma. Use pip install para instalar o pacote, por exemplo:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Compilações Docker Linux
As imagens de desenvolvimento Docker do TensorFlow são uma maneira fácil de configurar um ambiente para compilar pacotes Linux a partir do código-fonte. Essas imagens já contêm o código-fonte e as dependências necessárias para compilar o TensorFlow. Consulte o guia do TensorFlow para Docker para obter instruções de instalação e a lista de tags de imagem disponíveis .
somente CPU
O exemplo a seguir usa a imagem :devel para criar um pacote somente para CPU a partir do código-fonte mais recente do TensorFlow. Consulte o guia do Docker para obter informações sobre as tags -devel disponíveis para o TensorFlow.
Baixe a imagem de desenvolvimento mais recente e inicie um contêiner Docker que você usará para compilar o pacote pip :
docker pull tensorflow/tensorflow:develdocker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel bashgit pull # within the container, download the latest source code
O comando docker run acima inicia um shell no diretório /tensorflow_src — a raiz da árvore de código-fonte. Ele monta o diretório atual do host no diretório /mnt do contêiner e passa as informações do usuário do host para o contêiner por meio de uma variável de ambiente (usada para definir permissões — o Docker pode complicar isso).
Alternativamente, para criar uma cópia do TensorFlow no host dentro de um contêiner, monte a árvore de código-fonte do host no diretório /tensorflow do contêiner:
docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \ -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash
Com a árvore de origem configurada, compile o pacote TensorFlow dentro do ambiente virtual do contêiner:
- Opcional: Configurar a compilação — isso solicita ao usuário que responda a perguntas sobre a configuração da compilação.
- Crie o pacote pip .
- Ajuste as permissões de propriedade do arquivo para fora do contêiner.
./configure # if necessarybazel build //tensorflow/tools/pip_package:wheel \ --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt`chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Instale e verifique o pacote dentro do contêiner:
pip uninstall tensorflow # remove current versionpip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whlcd /tmp # don't import from source directorypython -c "import tensorflow as tf; print(tf.__version__)"
Na sua máquina host, o pacote pip do TensorFlow está no diretório atual (com permissões de usuário host) ./tensorflow- version - tags .whl
suporte a GPU
O Docker é a maneira mais fácil de implementar suporte a GPU no TensorFlow, já que a máquina host requer apenas o driver NVIDIA® (o NVIDIA® CUDA® Toolkit não precisa ser instalado). Consulte o guia de suporte a GPU e o guia do TensorFlow para Docker para configurar o nvidia-docker (somente para Linux).
O exemplo a seguir baixa a imagem TensorFlow :devel-gpu e usa nvidia-docker para executar o contêiner com suporte a GPU. Esta imagem de desenvolvimento está configurada para criar um pacote pip com suporte a GPU:
docker pull tensorflow/tensorflow:devel-gpudocker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel-gpu bashgit pull # within the container, download the latest source code
Em seguida, dentro do ambiente virtual do contêiner, compile o pacote TensorFlow com suporte a GPU:
./configure # if necessarybazel build //tensorflow/tools/pip_package:wheel \ --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow --config=cuda \ --config=cuda_wheel --config=optchown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Instale e verifique o pacote dentro do contêiner e verifique se há uma GPU:
pip uninstall tensorflow # remove current versionpip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whlcd /tmp # don't import from source directorypython -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"
Configurações de compilação testadas
Linux
CPU
| Versão | Versão em Python | Compilador | Ferramentas de construção |
|---|---|---|---|
| tensorflow-2.21.0 | 3.10-3.13 | Clang 18.1.8 | Bazel 7.4.1 |
| tensorflow-2.20.0 | 3,9-3,13 | Clang 18.1.8 | Bazel 7.4.1 |
| tensorflow-2.19.0 | 3,9-3,12 | Clang 18.1.8 | Bazel 6.5.0 |
| tensorflow-2.18.0 | 3,9-3,12 | Clang 17.0.6 | Bazel 6.5.0 |
| tensorflow-2.17.0 | 3,9-3,12 | Clang 17.0.6 | Bazel 6.5.0 |
| tensorflow-2.16.1 | 3,9-3,12 | Clang 17.0.6 | Bazel 6.5.0 |
| tensorflow-2.15.0 | 3,9-3,11 | Clang 16.0.0 | Bazel 6.1.0 |
| tensorflow-2.14.0 | 3,9-3,11 | Clang 16.0.0 | Bazel 6.1.0 |
| tensorflow-2.13.0 | 3,8-3,11 | Clang 16.0.0 | Bazel 5.3.0 |
| tensorflow-2.12.0 | 3,8-3,11 | GCC 9.3.1 | Bazel 5.3.0 |
| tensorflow-2.11.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.3.0 |
| tensorflow-2.10.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.1.1 |
| tensorflow-2.9.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.0.0 |
| tensorflow-2.8.0 | 3,7-3,10 | GCC 7.3.1 | Bazel 4.2.1 |
| tensorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
| tensorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
| tensorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 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
| Versão | Versão em Python | Compilador | Ferramentas de construção | cuDNN | CUDA |
|---|---|---|---|---|---|
| tensorflow-2.21.0 | 3.10-3.13 | Clang 18.1.8 | Bazel 7.4.1 | 9.3 | 12,5 |
| tensorflow-2.20.0 | 3,9-3,13 | Clang 18.1.8 | Bazel 7.4.1 | 9.3 | 12,5 |
| tensorflow-2.19.0 | 3,9-3,12 | Clang 18.1.8 | Bazel 6.5.0 | 9.3 | 12,5 |
| tensorflow-2.18.0 | 3,9-3,12 | Clang 17.0.6 | Bazel 6.5.0 | 9.3 | 12,5 |
| tensorflow-2.17.0 | 3,9-3,12 | Clang 17.0.6 | Bazel 6.5.0 | 8,9 | 12.3 |
| tensorflow-2.16.1 | 3,9-3,12 | Clang 17.0.6 | Bazel 6.5.0 | 8,9 | 12.3 |
| tensorflow-2.15.0 | 3,9-3,11 | Clang 16.0.0 | Bazel 6.1.0 | 8,9 | 12.2 |
| tensorflow-2.14.0 | 3,9-3,11 | Clang 16.0.0 | Bazel 6.1.0 | 8,7 | 11.8 |
| tensorflow-2.13.0 | 3,8-3,11 | Clang 16.0.0 | Bazel 5.3.0 | 8.6 | 11.8 |
| tensorflow-2.12.0 | 3,8-3,11 | GCC 9.3.1 | Bazel 5.3.0 | 8.6 | 11.8 |
| tensorflow-2.11.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.3.0 | 8.1 | 11.2 |
| tensorflow-2.10.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.1.1 | 8.1 | 11.2 |
| tensorflow-2.9.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.0.0 | 8.1 | 11.2 |
| tensorflow-2.8.0 | 3,7-3,10 | GCC 7.3.1 | Bazel 4.2.1 | 8.1 | 11.2 |
| tensorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
| tensorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
| tensorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 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
CPU
| Versão | Versão em Python | Compilador | Ferramentas de construção |
|---|---|---|---|
| tensorflow-2.16.1 | 3,9-3,12 | Clang do Xcode 13.6 | Bazel 6.5.0 |
| tensorflow-2.15.0 | 3,9-3,11 | Clang do Xcode 10.15 | Bazel 6.1.0 |
| tensorflow-2.14.0 | 3,9-3,11 | Clang do Xcode 10.15 | Bazel 6.1.0 |
| tensorflow-2.13.0 | 3,8-3,11 | Clang do Xcode 10.15 | Bazel 5.3.0 |
| tensorflow-2.12.0 | 3,8-3,11 | Clang do Xcode 10.15 | Bazel 5.3.0 |
| tensorflow-2.11.0 | 3,7-3,10 | Clang do Xcode 10.14 | Bazel 5.3.0 |
| tensorflow-2.10.0 | 3,7-3,10 | Clang do Xcode 10.14 | Bazel 5.1.1 |
| tensorflow-2.9.0 | 3,7-3,10 | Clang do Xcode 10.14 | Bazel 5.0.0 |
| tensorflow-2.8.0 | 3,7-3,10 | Clang do Xcode 10.14 | Bazel 4.2.1 |
| tensorflow-2.7.0 | 3,7-3,9 | Clang do Xcode 10.11 | Bazel 3.7.2 |
| tensorflow-2.6.0 | 3,6-3,9 | Clang do Xcode 10.11 | Bazel 3.7.2 |
| tensorflow-2.5.0 | 3,6-3,9 | Clang do Xcode 10.11 | Bazel 3.7.2 |
| tensorflow-2.4.0 | 3,6-3,8 | Clang do Xcode 10.3 | Bazel 3.1.0 |
| tensorflow-2.3.0 | 3,5-3,8 | Clang do Xcode 10.1 | Bazel 3.1.0 |
| tensorflow-2.2.0 | 3,5-3,8 | Clang do Xcode 10.1 | Bazel 2.0.0 |
| tensorflow-2.1.0 | 2,7, 3,5-3,7 | Clang do Xcode 10.1 | Bazel 0.27.1 |
| tensorflow-2.0.0 | 2,7, 3,5-3,7 | Clang do Xcode 10.1 | Bazel 0.27.1 |
| tensorflow-2.0.0 | 2,7, 3,3-3,7 | Clang do Xcode 10.1 | Bazel 0.26.1 |
| tensorflow-1.15.0 | 2,7, 3,3-3,7 | Clang do Xcode 10.1 | Bazel 0.26.1 |
| tensorflow-1.14.0 | 2,7, 3,3-3,7 | Clang do Xcode | Bazel 0.24.1 |
| tensorflow-1.13.1 | 2,7, 3,3-3,7 | Clang do Xcode | Bazel 0.19.2 |
| tensorflow-1.12.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.15.0 |
| tensorflow-1.11.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.15.0 |
| tensorflow-1.10.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.15.0 |
| tensorflow-1.9.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.11.0 |
| tensorflow-1.8.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.10.1 |
| tensorflow-1.7.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.10.1 |
| tensorflow-1.6.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.8.1 |
| tensorflow-1.5.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.8.1 |
| tensorflow-1.4.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.5.4 |
| tensorflow-1.3.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.4.5 |
| tensorflow-1.2.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.4.5 |
| tensorflow-1.1.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.4.2 |
| tensorflow-1.0.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.4.2 |
GPU
| Versão | Versão em Python | Compilador | Ferramentas de construção | cuDNN | CUDA |
|---|---|---|---|---|---|
| tensorflow_gpu-1.1.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.4.2 | 5.1 | 8 |
| tensorflow_gpu-1.0.0 | 2,7, 3,3-3,6 | Clang do Xcode | Bazel 0.4.2 | 5.1 | 8 |