Crie a partir do código-fonte no Windows

Crie um pacote pip do TensorFlow a partir do código-fonte e instale-o no Windows.

Configuração para Windows

Instale as seguintes ferramentas de compilação para configurar seu ambiente de desenvolvimento do Windows.

Instalar o Python e as dependências do pacote TensorFlow

Instale uma versão do Python 3.9+ de 64 bits para Windows . Selecione pip como um recurso opcional e adicione-o à sua variável de ambiente %PATH% .

Instale as dependências do pacote pip do TensorFlow:

pip3 install -U pip
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps

As dependências estão listadas no arquivo setup.py em REQUIRED_PACKAGES .

Instalar o Bazel

Instale o Bazel , a ferramenta de compilação usada para compilar o TensorFlow. Para a versão do Bazel, consulte as configurações de compilação testadas para Windows. Configure o Bazel para compilar em C++ .

Adicione o local do executável do Bazel à sua variável de ambiente %PATH% .

Instalar o MSYS2

Instale o MSYS2 para obter as ferramentas bin necessárias para compilar o TensorFlow. Se o MSYS2 estiver instalado em C:\msys64 , adicione C:\msys64\usr\bin à sua variável de ambiente %PATH% . Em seguida, usando cmd.exe , execute:

pacman -Syu (requires a console restart)
pacman -S git patch unzip
pacman -S git patch unzip rsync

Instalar o Visual C++ Build Tools 2022

Instale as ferramentas de compilação do Visual C++ 2022. Elas vêm com o Visual Studio Community 2022, mas podem ser instaladas separadamente:

  1. Vá para os downloads do Visual Studio ,
  2. Selecione Ferramentas para Visual Studio ou Outras Ferramentas, Framework e Redistribuíveis ,
  3. Baixe e instale:
    • Ferramentas de construção para o Visual Studio 2022
    • Microsoft Visual C++ Redistribuíveis para Visual Studio 2022

Instalar LLVM

  1. Vá para os downloads do LLVM ,
  2. Baixe e instale o LLVM compatível com Windows em C:/Arquivos de Programas/LLVM, por exemplo, LLVM-17.0.6-win64.exe

Instalar suporte para GPU (opcional)

Consulte o guia de suporte da GPU do Windows para instalar os drivers e software adicional necessários para executar o TensorFlow em uma GPU.

Baixe o código-fonte do TensorFlow

Use o Git para clonar o repositório TensorFlow ( git é instalado com o MSYS2):

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

O repositório usa como padrão o branch de desenvolvimento master . Você também pode verificar um branch de lançamento para compilar:

git checkout branch_name  # r1.9, r1.10, etc.

Opcional: Configuração de Variáveis ​​Ambientais

Execute os seguintes comandos antes de executar o comando de compilação para evitar problemas com a criação de pacotes: (Se os comandos abaixo foram configurados durante a instalação dos pacotes, ignore-os). Execute set para verificar se todos os caminhos foram definidos corretamente. Execute echo %Environmental Variable% por exemplo, echo %BAZEL_VC% para verificar o caminho configurado para uma variável de ambiente específica.

Problema de configuração do caminho Python tensorflow:issue#59943 , tensorflow:issue#9436 , tensorflow:issue#60083

set PATH=path/to/python;%PATH% # [e.g. (C:/Python311)]
set PATH=path/to/python/Scripts;%PATH% # [e.g. (C:/Python311/Scripts)] 
set PYTHON_BIN_PATH=path/to/python_virtualenv/Scripts/python.exe 
set PYTHON_LIB_PATH=path/to/python virtualenv/lib/site-packages 
set PYTHON_DIRECTORY=path/to/python_virtualenv/Scripts 

Problema de configuração de caminho Bazel/MSVC/CLANG tensorflow:issue#54578

set BAZEL_SH=C:/msys64/usr/bin/bash.exe 
set BAZEL_VS=C:/Program Files/Microsoft Visual Studio/2022/BuildTools 
set BAZEL_VC=C:/Program Files/Microsoft Visual Studio/2022/BuildTools/VC 
set Bazel_LLVM=C:/Program Files/LLVM (explicitly tell Bazel where LLVM is installed by BAZEL_LLVM, needed while using CLANG)
set PATH=C:/Program Files/LLVM/bin;%PATH% (Optional, needed while using CLANG as Compiler)

Opcional: Configurar 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.

Se precisar alterar a configuração, execute o script ./configure no diretório raiz do repositório.

python ./configure.py

Este script solicita a localização das dependências do TensorFlow e solicita opções adicionais de configuração de build (flags do compilador, por exemplo). A seguir, um exemplo de execução de python ./configure.py (sua sessão pode ser diferente):

Crie e instale o pacote pip

O pacote pip é construído em duas etapas. Um comando bazel build cria um programa "package-builder". Em seguida, você executa o package-builder para criar o pacote.

Construir o construtor de pacotes

O repositório tensorflow:master foi atualizado para a versão 2.x por padrão. Instale o Bazel e use bazel build para criar o construtor de pacotes do TensorFlow.

bazel build //tensorflow/tools/pip_package:wheel

Somente CPU

Use bazel para criar o construtor de pacotes do TensorFlow com suporte somente à CPU:

Construir com MSVC
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Construir com CLANG

Use --config= win_clang para construir o TenorFlow com o compilador CLANG:

bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu

Suporte a GPU

Para tornar o construtor de pacotes TensorFlow com suporte à GPU:

bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package

Comandos para limpar o cache do Bazel para resolver erros devido a dados em cache inválidos ou desatualizados, o Bazel clean com o sinalizador --expunge remove os arquivos permanentemente

bazel clean 
bazel clean --expunge  

Opções de construção do Bazel

Use esta opção ao compilar para evitar problemas com a criação de pacotes: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

Consulte a referência de linha de comando do Bazel para opções de compilação .

Compilar o TensorFlow a partir do código-fonte pode consumir muita RAM. Se o seu sistema tiver restrições de memória, limite o uso de RAM do Bazel com: --local_ram_resources=2048 .

Se estiver compilando com suporte a GPU, adicione --copt=-nvcc_options=disable-warnings para suprimir mensagens de aviso do nvcc.

Construir o pacote

Para compilar um pacote pip, você precisa especificar o sinalizador --repo_env=WHEEL_NAME. O pacote será criado dependendo do nome fornecido. Por exemplo:

Para construir o pacote de CPU do tensorflow:

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

Para construir um pacote noturno, defina tf_nightly em vez de tensorflow , por exemplo, para construir um pacote noturno da CPU:

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

Como resultado, a roda gerada será localizada em

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

Instalar 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

Construir usando o shell MSYS

O TensorFlow também pode ser criado usando o shell MSYS. Faça as alterações listadas abaixo e siga as instruções anteriores para a linha de comando nativa do Windows ( cmd.exe ).

Desabilitar conversão de caminho MSYS

O MSYS converte automaticamente argumentos que parecem caminhos Unix em caminhos Windows, e isso não funciona com bazel . (O rótulo //path/to:bin é considerado um caminho absoluto Unix, pois começa com uma barra.)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Defina seu PATH

Adicione os diretórios de instalação do Bazel e do Python à sua variável de ambiente $PATH . Se o Bazel estiver instalado em C:\tools\bazel.exe e o Python em C:\Python\python.exe , defina seu PATH com:

# Use Unix-style with ':' as separator
export PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"

Para suporte à GPU, adicione os diretórios bin CUDA e cuDNN ao seu $PATH :

export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin:$PATH"
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/extras/CUPTI/libx64:$PATH"
export PATH="/c/tools/cuda/bin:$PATH"

Configurações de compilação testadas

CPU

Versão Versão Python Compilador Ferramentas de construção
tensorflow-2.20.0 3,9-3,13 CLANG 18.1.4 Bazel 7.4.1
tensorflow-2.19.0 3,9-3,12 CLANG 18.1.4 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 MSVC 2019 Bazel 6.1.0
tensorflow-2.14.0 3.9-3.11 MSVC 2019 Bazel 6.1.0
tensorflow-2.12.0 3.8-3.11 MSVC 2019 Bazel 5.3.0
tensorflow-2.11.0 3.7-3.10 MSVC 2019 Bazel 5.3.0
tensorflow-2.10.0 3.7-3.10 MSVC 2019 Bazel 5.1.1
tensorflow-2.9.0 3.7-3.10 MSVC 2019 Bazel 5.0.0
tensorflow-2.8.0 3.7-3.10 MSVC 2019 Bazel 4.2.1
tensorflow-2.7.0 3,7-3,9 MSVC 2019 Bazel 3.7.2
tensorflow-2.6.0 3,6-3,9 MSVC 2019 Bazel 3.7.2
tensorflow-2.5.0 3,6-3,9 MSVC 2019 Bazel 3.7.2
tensorflow-2.4.0 3,6-3,8 MSVC 2019 Bazel 3.1.0
tensorflow-2.3.0 3,5-3,8 MSVC 2019 Bazel 3.1.0
tensorflow-2.2.0 3,5-3,8 MSVC 2019 Bazel 2.0.0
tensorflow-2.1.0 3,5-3,7 MSVC 2019 Bazel 0,27,1-0,29,1
tensorflow-2.0.0 3,5-3,7 MSVC 2017 Bazel 0.26.1
tensorflow-1.15.0 3,5-3,7 MSVC 2017 Bazel 0.26.1
tensorflow-1.14.0 3,5-3,7 MSVC 2017 Bazel 0,24,1-0,25,2
tensorflow-1.13.0 3,5-3,7 Atualização 3 do MSVC 2015 Bazel 0,19,0-0,21,0
tensorflow-1.12.0 3,5-3,6 Atualização 3 do MSVC 2015 Bazel 0.15.0
tensorflow-1.11.0 3,5-3,6 Atualização 3 do MSVC 2015 Bazel 0.15.0
tensorflow-1.10.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.9.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.8.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.7.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.6.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.5.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.4.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.3.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.2.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.1.0 3,5 Atualização 3 do MSVC 2015 Cmake v3.6.3
tensorflow-1.0.0 3,5 Atualização 3 do MSVC 2015 Cmake v3.6.3

GPU

Versão Versão Python Compilador Ferramentas de construção cuDNN CUDA
tensorflow_gpu-2.10.0 3.7-3.10 MSVC 2019 Bazel 5.1.1 8.1 11.2
tensorflow_gpu-2.9.0 3.7-3.10 MSVC 2019 Bazel 5.0.0 8.1 11.2
tensorflow_gpu-2.8.0 3.7-3.10 MSVC 2019 Bazel 4.2.1 8.1 11.2
tensorflow_gpu-2.7.0 3,7-3,9 MSVC 2019 Bazel 3.7.2 8.1 11.2
tensorflow_gpu-2.6.0 3,6-3,9 MSVC 2019 Bazel 3.7.2 8.1 11.2
tensorflow_gpu-2.5.0 3,6-3,9 MSVC 2019 Bazel 3.7.2 8.1 11.2
tensorflow_gpu-2.4.0 3,6-3,8 MSVC 2019 Bazel 3.1.0 8.0 11.0
tensorflow_gpu-2.3.0 3,5-3,8 MSVC 2019 Bazel 3.1.0 7.6 10.1
tensorflow_gpu-2.2.0 3,5-3,8 MSVC 2019 Bazel 2.0.0 7.6 10.1
tensorflow_gpu-2.1.0 3,5-3,7 MSVC 2019 Bazel 0,27,1-0,29,1 7.6 10.1
tensorflow_gpu-2.0.0 3,5-3,7 MSVC 2017 Bazel 0.26.1 7.4 10
tensorflow_gpu-1.15.0 3,5-3,7 MSVC 2017 Bazel 0.26.1 7.4 10
tensorflow_gpu-1.14.0 3,5-3,7 MSVC 2017 Bazel 0,24,1-0,25,2 7.4 10
tensorflow_gpu-1.13.0 3,5-3,7 Atualização 3 do MSVC 2015 Bazel 0,19,0-0,21,0 7.4 10
tensorflow_gpu-1.12.0 3,5-3,6 Atualização 3 do MSVC 2015 Bazel 0.15.0 7.2 9.0
tensorflow_gpu-1.11.0 3,5-3,6 Atualização 3 do MSVC 2015 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3,5-3,6 Atualização 3 do MSVC 2015 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3,5 Atualização 3 do MSVC 2015 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3,5 Atualização 3 do MSVC 2015 Cmake v3.6.3 5.1 8