Windows의 소스에서 빌드,Windows의 소스에서 빌드

소스에서 TensorFlow pip 패키지를 빌드하고 Windows에 설치합니다.

Windows용 설정

Windows 개발 환경을 구성하려면 다음 빌드 도구를 설치하세요.

Python 및 TensorFlow 패키지 종속 항목 설치

Windows용 Python 3.9+ 64비트 릴리스를 설치합니다. 선택적 기능으로 pip를 선택하고 이를 %PATH% 환경 변수에 추가합니다.

TensorFlow pip 패키지 종속성을 설치합니다.

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

종속성은 REQUIRED_PACKAGES 아래 setup.py 파일에 나열되어 있습니다.

바젤 설치

TensorFlow를 컴파일하는 데 사용되는 빌드 도구 인 Bazel을 설치합니다 . Bazel 버전의 경우 테스트된 Windows용 빌드 구성을 참조하세요. C++를 빌드하도록 Bazel을 구성합니다.

Bazel 실행 파일의 위치를 %PATH% 환경 변수에 추가합니다.

MSYS2 설치

TensorFlow를 빌드하는 데 필요한 bin 도구용 MSYS2를 설치합니다 . MSYS2가 C:\msys64 에 설치된 경우 C:\msys64\usr\bin %PATH% 환경 변수에 추가하세요. 그런 다음 cmd.exe 사용하여 다음을 실행합니다.

pacman -S git patch unzip

Visual C++ 빌드 도구 2019 설치

Visual C++ 빌드 도구 2019를 설치합니다. Visual Studio 2019 와 함께 제공되지만 별도로 설치할 수 있습니다.

  1. Visual Studio 다운로드 로 이동합니다.
  2. 재배포 가능 항목 및 빌드 도구를 선택하고,
  3. 다운로드 및 설치:
    • Microsoft Visual C++ 2019 재배포 가능 패키지
    • 마이크로소프트 빌드 도구 2019

GPU 지원 설치(선택 사항)

GPU에서 TensorFlow를 실행하는 데 필요한 드라이버 및 추가 소프트웨어를 설치하려면 Windows GPU 지원 가이드를 참조하세요.

TensorFlow 소스 코드 다운로드

Git을 사용하여 TensorFlow 저장소를 복제합니다( git MSYS2와 함께 설치됨).

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

리포지토리는 기본적으로 master 개발 분기로 설정됩니다. 또한 릴리스 브랜치를 확인하여 빌드할 수도 있습니다.

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

선택 사항: 환경 변수 설정

패키지 생성 문제를 방지하려면 빌드 명령을 실행하기 전에 다음 명령을 실행하십시오. (패키지를 설치하는 동안 아래 명령이 설정된 경우 무시하십시오.) 모든 경로가 올바르게 설정되었는지 set check를 실행하고 echo %Environmental Variable% 실행합니다. 예를 들어 특정 환경 변수에 대해 설정된 경로를 확인하려면 echo %BAZEL_VC% 실행하세요.

Python 경로 설정 문제 tensorflow:issue#59943 , tensorflow:issue#9436 , tensorflow:issue#60083

set PATH=path/to/python # [e.g. (C:/Python310)]
set PATH=path/to/python/Scripts # [e.g. (C:/Python310/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 

Bazel/MSVC 경로 설정 문제 tensorflow:issue#54578

set BAZEL_SH=C:/msys64/usr/bin/bash.exe 
set BAZEL_VS=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools 
set BAZEL_VC=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools/VC 

선택사항: 빌드 구성

TensorFlow 빌드는 리포지토리 루트 디렉터리의 .bazelrc 파일로 구성됩니다. ./configure 또는 ./configure.py 스크립트를 사용하여 일반 설정을 조정할 수 있습니다.

구성을 변경해야 하는 경우 저장소의 루트 디렉터리에서 ./configure 스크립트를 실행하세요.

python ./configure.py

이 스크립트는 TensorFlow 종속성의 위치를 ​​묻는 메시지를 표시하고 추가 빌드 구성 옵션(예: 컴파일러 플래그)을 요청합니다. 다음은 python ./configure.py 의 샘플 실행을 보여줍니다(세션은 다를 수 있음).

pip 패키지 빌드 및 설치

pip 패키지는 두 단계로 구축됩니다. bazel build 명령은 "패키지 빌더" 프로그램을 생성합니다. 그런 다음 package-builder를 실행하여 패키지를 생성합니다.

패키지 빌더 빌드

tensorflow:master repo가 ​​기본적으로 2.x 빌드로 업데이트되었습니다. Bazel을 설치 하고 bazel build 사용하여 TensorFlow 패키지 빌더를 만듭니다.

bazel build //tensorflow/tools/pip_package:build_pip_package

CPU 전용

bazel 사용하여 CPU만 지원하는 TensorFlow 패키지 빌더를 만듭니다.

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

GPU 지원

GPU를 지원하는 TensorFlow 패키지 빌더를 만들려면 다음 안내를 따르세요.

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

유효하지 않거나 오래된 캐시 데이터로 인한 오류를 해결하기 위해 bazel 캐시를 정리하는 명령, --expunge 플래그를 사용한 bazel clean은 파일을 영구적으로 제거합니다.

bazel clean 
bazel clean --expunge  

Bazel 빌드 옵션

패키지 생성 문제를 방지하려면 빌드할 때 이 옵션을 사용하세요: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

빌드 옵션은 Bazel 명령줄 참조를 참조하세요.

소스에서 TensorFlow를 빌드하면 많은 RAM이 사용될 수 있습니다. 시스템에 메모리가 제한된 경우 --local_ram_resources=2048 사용하여 Bazel의 RAM 사용량을 제한하세요.

GPU 지원으로 빌드하는 경우 --copt=-nvcc_options=disable-warnings 추가하여 nvcc 경고 메시지를 억제합니다.

패키지 빌드

bazel build 명령은 build_pip_package 라는 실행 파일을 생성합니다. 이는 pip 패키지를 빌드하는 프로그램입니다. 예를 들어, 다음은 C:/tmp/tensorflow_pkg 디렉터리에 .whl 패키지를 빌드합니다.

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

동일한 소스 트리에서 CUDA 구성과 비 CUDA 구성을 모두 빌드할 수 있지만 동일한 소스 트리에서 이러한 두 구성 간에 전환할 때는 bazel clean 실행하는 것이 좋습니다.

패키지 설치

생성된 .whl 파일의 파일 이름은 TensorFlow 버전과 플랫폼에 따라 다릅니다. pip3 install 사용하여 패키지를 설치합니다. 예:

pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-tags.whl

e.g., pip3 install C:/tmp/tensorflow_pkg/tensorflow-2.12.0-cp310-cp310-win_amd64.whl

MSYS 셸을 사용하여 빌드

TensorFlow는 MSYS 셸을 사용하여 구축할 수도 있습니다. 아래 나열된 사항을 변경한 후 Windows 기본 명령줄( cmd.exe )에 대한 이전 지침을 따릅니다.

MSYS 경로 변환 비활성화

MSYS는 Unix 경로처럼 보이는 인수를 Windows 경로로 자동 변환하며 이는 bazel 에서는 작동하지 않습니다. ( //path/to:bin 레이블은 슬래시로 시작하므로 Unix 절대 경로로 간주됩니다.)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

경로 설정

$PATH 환경 변수에 Bazel 및 Python 설치 디렉터리를 추가합니다. Bazel이 C:\tools\bazel.exe 에 설치되고 Python이 C:\Python\python.exe 에 설치된 경우 다음을 사용하여 PATH 설정합니다.

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

GPU 지원을 위해 $PATH 에 CUDA 및 cuDNN bin 디렉터리를 추가하세요.

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"

테스트된 빌드 구성

CPU

버전 파이썬 버전 컴파일러 빌드 도구
텐서플로우-2.15.0 3.9-3.11 MSVC 2019 바젤 6.1.0
텐서플로우-2.14.0 3.9-3.11 MSVC 2019 바젤 6.1.0
텐서플로우-2.12.0 3.8-3.11 MSVC 2019 바젤 5.3.0
텐서플로우-2.11.0 3.7-3.10 MSVC 2019 바젤 5.3.0
텐서플로우-2.10.0 3.7-3.10 MSVC 2019 바젤 5.1.1
텐서플로우-2.9.0 3.7-3.10 MSVC 2019 바젤 5.0.0
텐서플로우-2.8.0 3.7-3.10 MSVC 2019 바젤 4.2.1
텐서플로우-2.7.0 3.7-3.9 MSVC 2019 바젤 3.7.2
텐서플로우-2.6.0 3.6-3.9 MSVC 2019 바젤 3.7.2
텐서플로우-2.5.0 3.6-3.9 MSVC 2019 바젤 3.7.2
텐서플로우-2.4.0 3.6-3.8 MSVC 2019 바젤 3.1.0
텐서플로우-2.3.0 3.5-3.8 MSVC 2019 바젤 3.1.0
텐서플로우-2.2.0 3.5-3.8 MSVC 2019 바젤 2.0.0
텐서플로우-2.1.0 3.5-3.7 MSVC 2019 바젤 0.27.1-0.29.1
텐서플로우-2.0.0 3.5-3.7 MSVC 2017 바젤 0.26.1
텐서플로우-1.15.0 3.5-3.7 MSVC 2017 바젤 0.26.1
텐서플로우-1.14.0 3.5-3.7 MSVC 2017 바젤 0.24.1-0.25.2
텐서플로우-1.13.0 3.5-3.7 MSVC 2015 업데이트 3 바젤 0.19.0-0.21.0
텐서플로우-1.12.0 3.5-3.6 MSVC 2015 업데이트 3 바젤 0.15.0
텐서플로우-1.11.0 3.5-3.6 MSVC 2015 업데이트 3 바젤 0.15.0
텐서플로우-1.10.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.9.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.8.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.7.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.6.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.5.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.4.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.3.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.2.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.1.0 3.5 MSVC 2015 업데이트 3 씨메이크 v3.6.3
텐서플로우-1.0.0 3.5 MSVC 2015 업데이트 3 씨메이크 v3.6.3

GPU

버전 파이썬 버전 컴파일러 빌드 도구 cuDNN 쿠다
tensorflow_gpu-2.10.0 3.7-3.10 MSVC 2019 바젤 5.1.1 8.1 11.2
tensorflow_gpu-2.9.0 3.7-3.10 MSVC 2019 바젤 5.0.0 8.1 11.2
tensorflow_gpu-2.8.0 3.7-3.10 MSVC 2019 바젤 4.2.1 8.1 11.2
tensorflow_gpu-2.7.0 3.7-3.9 MSVC 2019 바젤 3.7.2 8.1 11.2
tensorflow_gpu-2.6.0 3.6-3.9 MSVC 2019 바젤 3.7.2 8.1 11.2
tensorflow_gpu-2.5.0 3.6-3.9 MSVC 2019 바젤 3.7.2 8.1 11.2
tensorflow_gpu-2.4.0 3.6-3.8 MSVC 2019 바젤 3.1.0 8.0 11.0
tensorflow_gpu-2.3.0 3.5-3.8 MSVC 2019 바젤 3.1.0 7.6 10.1
tensorflow_gpu-2.2.0 3.5-3.8 MSVC 2019 바젤 2.0.0 7.6 10.1
tensorflow_gpu-2.1.0 3.5-3.7 MSVC 2019 바젤 0.27.1-0.29.1 7.6 10.1
tensorflow_gpu-2.0.0 3.5-3.7 MSVC 2017 바젤 0.26.1 7.4 10
tensorflow_gpu-1.15.0 3.5-3.7 MSVC 2017 바젤 0.26.1 7.4 10
tensorflow_gpu-1.14.0 3.5-3.7 MSVC 2017 바젤 0.24.1-0.25.2 7.4 10
tensorflow_gpu-1.13.0 3.5-3.7 MSVC 2015 업데이트 3 바젤 0.19.0-0.21.0 7.4 10
tensorflow_gpu-1.12.0 3.5-3.6 MSVC 2015 업데이트 3 바젤 0.15.0 7.2 9.0
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 업데이트 3 바젤 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 업데이트 3 씨메이크 v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 업데이트 3 씨메이크 v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 업데이트 3 씨메이크 v3.6.3 5.1 8