O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Criar a partir da fonte no Windows

Crie um pacote TensorFlow PIP a partir da fonte e instale-o no Windows.

Configuração para Windows

Instale as seguintes ferramentas de build para configurar seu ambiente para desenvolvedores do Windows.

Instale as dependências dos pacotes Python e TensorFlow

Instale uma versão Python 3.5.x ou Python 3.6.x de 64 bits para Windows. Selecione PIP como um recurso opcional e adicione-o à variável de ambiente %PATH%.

Instale as dependências do pacote TensorFlow PIP:

pip3 install six numpy wheel
pip3 install keras_applications==1.0.6 --no-deps
pip3 install keras_preprocessing==1.0.5 --no-deps

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

Instalar o Bazel

Instale o Bazel, a ferramenta de build 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 C++.

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

Instalar MSYS2

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

pacman -S git patch unzip

Instalar Ferramentas de Build do Visual C++ 2019

Instale as ferramentas de build do Visual C++ 2019. Elas vêm com o Visual Studio 2019, mas podem ser instaladas separadamente:

  1. Acesse os downloads do Visual Studio.
  2. Selecione Redistribuíveis e ferramentas de build.
  3. Faça download e instale:
    • Redistribuíveis do Microsoft Visual C++ 2019
    • Ferramentas de Build Microsoft 2019

Instalar o suporte a GPUs (opcional)

Consulte o guia de suporte a GPUs do Windows para instalar os drivers e softwares adicionais necessários para executar o TensorFlow em uma GPU.

Fazer o download do código-fonte do TensorFlow

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

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

O repositório tem como padrão a ramificação de desenvolvimento master. Você também pode conferir um branch de lançamento para criar:

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

Configurar a criação

Configure a criação do sistema executando o seguinte comando na raiz da árvore de origem do TensorFlow:

python ./configure.py

Esse script solicita a localização das dependências do TensorFlow e solicita outras opções de configuração de compilação (sinalizações do compilador, por exemplo). Veja a seguir um exemplo de python ./configure.py (sua sessão pode ser diferente):

Opções de configuração

Para suporte a GPUs, especifique as versões do CUDA e do cuDNN. Se o sistema tiver várias versões do CUDA ou do cuDNN instaladas, defina explicitamente a versão em vez de confiar no padrão. ./configure.py cria links simbólicos para as bibliotecas CUDA do sistema. Portanto, se você atualizar os caminhos da biblioteca CUDA, essa etapa de configuração precisará ser executada novamente antes da criação.

Criar o pacote PIP

TensorFlow 2.x

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

bazel build //tensorflow/tools/pip_package:build_pip_package

TensorFlow 1.x

Para criar a versão 1.x do TensorFlow a partir do mestre, use bazel build --config=v1 para criar um pacote do TensorFlow 1.x.

bazel build --config=v1 //tensorflow/tools/pip_package:build_pip_package

Somente CPU

Use bazel para criar o construtor de pacotes TensorFlow com suporte apenas para CPU:

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

Suporte a GPUs

Para criar o construtor de pacotes TensorFlow com suporte a GPUs:

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

Opções de criação do Bazel

Use esta opção ao criar para evitar problemas com a criação do pacote: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

Veja a referência de linha de comando do Bazel para opções de build.

Criar o TensorFlow a partir da fonte pode usar muita memória RAM. Se o sistema tem restrições de memória, limite o uso de RAM do Bazel com: --local_ram_resources=2048.

Se a criação for compatível com GPU, adicione --copt=-nvcc_options=disable-warnings para suprimir mensagens de aviso nvcc.

Criar o pacote

O comando bazel build cria um executável chamado build_pip_package. Esse é o programa que cria o pacote pip. Por exemplo, o seguinte cria um pacote .whl no diretório C:/tmp/tensorflow_pkg:

bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg

Embora seja possível criar configurações CUDA e não CUDA na mesma árvore de origem, recomendamos executar bazel clean ao alternar entre essas duas configurações na mesma árvore de origem.

Instale o pacote

O nome do arquivo .whl gerado depende da versão do TensorFlow e da sua plataforma. Use pip3 install para instalar o pacote, por exemplo:

pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.whl

Criar 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).

Desativar conversão de caminho MSYS

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

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Definir 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:\Python36\python.exe, defina seu PATH com:

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

Para suporte a GPUs, adicione os diretórios bin do CUDA e do cuDNN ao $PATH:

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

Configurações da compilação testadas

CPU

VersãoVersão do PythonCompiladorFerramentas de criação
tensorflow-2.3.03.5-3.8MSVC 2019Bazel 3.1.0
tensorflow-2.2.03.5-3.8MSVC 2019Bazel 2.0.0
tensorflow-2.1.03.5-3.7MSVC 2019Bazel 0.27.1-0.29.1
tensorflow-2.0.03.5-3.7MSVC 2017Bazel 0.26.1
tensorflow-1.15.03.5-3.7MSVC 2017Bazel 0.26.1
tensorflow-1.14.03.5-3.7MSVC 2017Bazel 0.24.1-0.25.2
tensorflow-1.13.03.5-3.7Atualização 3 do MSVC 2015Bazel 0.19.0-0.21.0
tensorflow-1.12.03.5-3.6Atualização 3 do MSVC 2015Bazel 0.15.0
tensorflow-1.11.03.5-3.6Atualização 3 do MSVC 2015Bazel 0.15.0
tensorflow-1.10.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.9.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.8.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.7.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.6.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.5.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.4.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.3.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.2.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.3
TensorFlow3.5Atualização 3 do MSVC 2015Cmake v3.6.3
tensorflow-1.0.03.5Atualização 3 do MSVC 2015Cmake v3.6.3

GPU

VersãoVersão do PythonCompiladorFerramentas de criaçãocuDNNCUDA
tensorflow_gpu-2.3.03.5-3.8MSVC 2019Bazel 3.1.07.410.1
tensorflow_gpu-2.2.03.5-3.8MSVC 2019Bazel 2.0.07.410.1
tensorflow_gpu-2.1.03.5-3.7MSVC 2019Bazel 0.27.1-0.29.17.410.1
tensorflow_gpu-2.0.03.5-3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.15.03.5-3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.14.03.5-3.7MSVC 2017Bazel 0.24.1-0.25.27.410
tensorflow_gpu-1.13.03.5-3.7Atualização 3 do MSVC 2015Bazel 0.19.0-0.21.07.410
tensorflow_gpu-1.12.03.5-3.6Atualização 3 do MSVC 2015Bazel 0.15.079
tensorflow_gpu-1.11.03.5-3.6Atualização 3 do MSVC 2015Bazel 0.15.079
tensorflow_gpu-1.10.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.379
tensorflow_gpu-1.9.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.379
tensorflow_gpu-1.8.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.379
tensorflow_gpu-1.7.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.379
tensorflow_gpu-1.6.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.379
tensorflow_gpu-1.5.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.379
tensorflow_gpu-1.4.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.368
tensorflow_gpu-1.3.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.368
tensorflow_gpu-1.2.03.5-3.6Atualização 3 do MSVC 2015Cmake v3.6.35.18
tensorflow_gpu-1.1.03.5Atualização 3 do MSVC 2015Cmake v3.6.35.18
tensorflow_gpu-1.0.03.5Atualização 3 do MSVC 2015Cmake v3.6.35.18