Construir desde la fuente en Windows

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Cree un paquete pip de TensorFlow desde el origen e instálelo en Windows.

Configuración para Windows

Instale las siguientes herramientas de compilación para configurar su entorno de desarrollo de Windows.

Instale Python y las dependencias del paquete TensorFlow

Instale una versión de Python 3.7+ de 64 bits para Windows . Seleccione pip como característica opcional y agréguelo a su variable ambiental %PATH% .

Instale las dependencias del paquete pip de TensorFlow:

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

Las dependencias se enumeran en el archivo setup.py en REQUIRED_PACKAGES .

Instalar Bazel

Instale Bazel , la herramienta de compilación utilizada para compilar TensorFlow. Para la versión de Bazel, consulte las configuraciones de compilación probadas para Windows. Configure Bazel para compilar C++ .

Agregue la ubicación del ejecutable de Bazel a su variable de entorno %PATH% .

Instalar MSYS2

Instale MSYS2 para las herramientas bin necesarias para compilar TensorFlow. Si MSYS2 está instalado en C:\msys64 , agregue C:\msys64\usr\bin a su variable de entorno %PATH% . Luego, usando cmd.exe , ejecute:

pacman -S git patch unzip

Instale las herramientas de compilación de Visual C++ 2019

Instale las herramientas de compilación de Visual C++ 2019 . Esto viene con Visual Studio 2019 pero se puede instalar por separado:

  1. Vaya a las descargas de Visual Studio ,
  2. Seleccione Redistribuibles y herramientas de compilación ,
  3. Descargar e instalar:
    • Microsoft Visual C++ 2019 Redistribuible
    • Herramientas de compilación de Microsoft 2019

Instalar compatibilidad con GPU (opcional)

Consulte la guía de soporte de GPU de Windows para instalar los controladores y el software adicional necesarios para ejecutar TensorFlow en una GPU.

Descarga el código fuente de TensorFlow

Use Git para clonar el repositorio de TensorFlow ( git está instalado con MSYS2):

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

El repositorio tiene como valor predeterminado la rama de desarrollo master . También puede consultar una rama de lanzamiento para compilar:

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

Opcional: configurar la compilación

Las compilaciones de TensorFlow están configuradas por el archivo .bazelrc en el directorio raíz del repositorio. Los scripts ./configure o ./configure.py se pueden usar para ajustar la configuración común.

Si necesita cambiar la configuración, ejecute el script ./configure desde el directorio raíz del repositorio.

python ./configure.py

Esta secuencia de comandos le solicita la ubicación de las dependencias de TensorFlow y solicita opciones de configuración de compilación adicionales (marcas del compilador, por ejemplo). A continuación, se muestra una ejecución de muestra de python ./configure.py (su sesión puede diferir):

Opciones de configuración

Para compatibilidad con GPU , especifique las versiones de CUDA y cuDNN. Si su sistema tiene varias versiones de CUDA o cuDNN instaladas, establezca explícitamente la versión en lugar de confiar en la predeterminada. ./configure.py crea enlaces simbólicos a las bibliotecas CUDA de su sistema, por lo que si actualiza las rutas de su biblioteca CUDA, este paso de configuración debe ejecutarse nuevamente antes de compilar.

Compile e instale el paquete pip

El paquete pip se construye en dos pasos. Un comando de compilación de bazel build crea un programa de "construcción de paquetes". Luego ejecuta el generador de paquetes para crear el paquete.

Cree el generador de paquetes

tensorflow:master repo se ha actualizado para compilar 2.x de forma predeterminada. Instale Bazel y use bazel build para crear el generador de paquetes TensorFlow.

bazel build //tensorflow/tools/pip_package:build_pip_package

solo CPU

Use bazel para crear el generador de paquetes TensorFlow con soporte solo para CPU:

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

Soporte de GPU

Para hacer que el generador de paquetes TensorFlow sea compatible con GPU:

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

Opciones de construcción de Bazel

Use esta opción al compilar para evitar problemas con la creación del paquete: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

Consulte la referencia de la línea de comandos de Bazel para conocer las opciones de compilación .

Construir TensorFlow desde la fuente puede usar mucha RAM. Si su sistema tiene limitaciones de memoria, limite el uso de RAM de Bazel con: --local_ram_resources=2048 .

Si compila con compatibilidad con GPU, agregue --copt=-nvcc_options=disable-warnings para suprimir los mensajes de advertencia de nvcc.

Construya el paquete

El bazel build crea un ejecutable llamado build_pip_package : este es el programa que compila el paquete pip . Por ejemplo, lo siguiente crea un paquete .whl en el directorio C:/tmp/tensorflow_pkg :

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

Aunque es posible crear configuraciones CUDA y no CUDA en el mismo árbol de origen, recomendamos ejecutar bazel clean al cambiar entre estas dos configuraciones en el mismo árbol de origen.

Instalar el paquete

El nombre del archivo .whl generado depende de la versión de TensorFlow y de su plataforma. Use pip3 install para instalar el paquete, por ejemplo:

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

Compilar utilizando el shell MSYS

TensorFlow también se puede construir usando el shell MSYS. Realice los cambios que se enumeran a continuación, luego siga las instrucciones anteriores para la línea de comandos nativa de Windows ( cmd.exe ).

Deshabilitar la conversión de ruta MSYS

MSYS convierte automáticamente argumentos que parecen rutas de Unix en rutas de Windows, y esto no funciona con bazel . (La etiqueta //path/to:bin se considera una ruta absoluta de Unix ya que comienza con una barra inclinada).

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Establece tu RUTA

Agregue los directorios de instalación de Bazel y Python a su variable ambiental $PATH . Si Bazel está instalado en C:\tools\bazel.exe y Python en C:\Python36\python.exe , establezca su PATH con:

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

Para compatibilidad con GPU, agregue los directorios bin CUDA y cuDNN a su $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"

Configuraciones de compilación probadas

UPC

Versión Versión de Python Compilador Construir herramientas
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 MSVC 2015 actualización 3 bazel 0.19.0-0.21.0
tensorflow-1.12.0 3.5-3.6 MSVC 2015 actualización 3 Bazel 0.15.0
tensorflow-1.11.0 3.5-3.6 MSVC 2015 actualización 3 Bazel 0.15.0
tensorflow-1.10.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.9.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.8.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.7.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.6.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.5.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.4.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.3.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.2.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.1.0 3.5 MSVC 2015 actualización 3 Cmake v3.6.3
tensorflow-1.0.0 3.5 MSVC 2015 actualización 3 Cmake v3.6.3

GPU

Versión Versión de Python Compilador Construir herramientas cuDNN CUDA
tensorflow_gpu-2.11.0 3.7-3.10 MSVC 2019 Bazel 5.3.0 8.1 11.2
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 MSVC 2015 actualización 3 bazel 0.19.0-0.21.0 7.4 10
tensorflow_gpu-1.12.0 3.5-3.6 MSVC 2015 actualización 3 Bazel 0.15.0 7.2 9.0
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 actualización 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 actualización 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 actualización 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 actualización 3 Cmake v3.6.3 5.1 8