Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

Windows의 소스에서 빌드

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

Windows용 설정

다음 빌드 도구를 설치하여 Windows 개발 환경을 구성합니다.

Python 및 TensorFlow 패키지 종속성 설치

Windows용 Python 3.5.x 또는 Python 3.6.x 64비트 출시를 설치합니다. 선택적 기능으로 pip를 선택하고 %PATH% 환경 변수에 추가합니다.

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

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

Bazel 설치

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

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 재배포 가능 패키지
    • Microsoft 빌드 도구 2019

GPU 지원 설치(선택사항)

Windows GPU 지원 가이드에 따라 GPU에서 TensorFlow를 실행하는 데 필요한 드라이버 및 추가 소프트웨어를 설치합니다.

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.

빌드 구성

TensorFlow 소스 트리의 루트에서 다음을 실행하여 시스템 빌드를 구성합니다.

python ./configure.py

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

구성 옵션

GPU 지원의 경우 CUDA 및 cuDNN의 버전을 지정합니다. 시스템에 여러 버전의 CUDA 또는 cuDNN이 설치되어 있다면 기본값을 사용하지 않고 명시적으로 버전을 설정합니다. ./configure.py는 시스템의 CUDA 라이브러리로 연결되는 심볼릭 링크를 만들기 때문에 CUDA 라이브러리 경로를 업데이트하는 경우 빌드하기 전에 이 구성 단계를 다시 실행해야 합니다.

pip 패키지 빌드

TensorFlow 2.x

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

bazel build //tensorflow/tools/pip_package:build_pip_package

TensorFlow 1.x

마스터에서 TensorFlow 1.x 버전을 빌드하려면 bazel build --config=v1을 사용하여 TensorFlow 1.x 패키지를 만듭니다.

bazel build --config=v1 //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 빌드 옵션

패키지를 만들 때 문제를 방지하려면 빌드 시 이 옵션을 사용합니다(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 명령어는 pip 패키지를 빌드하는 프로그램인 build_pip_package 실행 파일을 만듭니다. 예를 들어 다음은 C:/tmp/tensorflow_pkg 디렉터리에 .whl 패키지를 빌드합니다.

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

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

패키지 설치

TensorFlow 버전 및 플랫폼에 따라 생성되는 .whl 파일의 파일 이름이 달라집니다. pip3 install을 사용하여 패키지를 설치합니다. 예를 들면 다음과 같습니다.

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

MSYS 셸을 사용하여 빌드

MSYS 셸을 사용하여 TensorFlow를 빌드할 수도 있습니다. 아래에 나열된 내용을 변경한 후 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 설치 디렉터리를 $PATH 환경 변수에 추가합니다. Bazel이 C:\tools\bazel.exe에 설치되고 Python이 C:\Python36\python.exe에 설치된 경우 다음을 사용하여 PATH를 설정합니다.

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

GPU를 지원하려면 CUDA 및 cuDNN bin 디렉터리를 $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"

테스트된 빌드 구성

CPU

버전Python 버전컴파일러빌드 도구
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.7MSVC 2015 업데이트 3Bazel 0.19.0~0.21.0
tensorflow-1.12.03.5-3.6MSVC 2015 업데이트 3Bazel 0.15.0
tensorflow-1.11.03.5-3.6MSVC 2015 업데이트 3Bazel 0.15.0
tensorflow-1.10.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.9.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.8.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.7.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.6.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.5.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.4.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.3.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.2.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.1.03.5MSVC 2015 업데이트 3Cmake v3.6.3
tensorflow-1.0.03.5MSVC 2015 업데이트 3Cmake v3.6.3

GPU

버전Python 버전컴파일러빌드 도구cuDNNCUDA
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.7MSVC 2015 업데이트 3Bazel 0.19.0~0.21.07.410
tensorflow_gpu-1.12.03.5-3.6MSVC 2015 업데이트 3Bazel 0.15.079
tensorflow_gpu-1.11.03.5-3.6MSVC 2015 업데이트 3Bazel 0.15.079
tensorflow_gpu-1.10.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.379
tensorflow_gpu-1.9.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.379
tensorflow_gpu-1.8.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.379
tensorflow_gpu-1.7.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.379
tensorflow_gpu-1.6.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.379
tensorflow_gpu-1.5.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.379
tensorflow_gpu-1.4.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.368
tensorflow_gpu-1.3.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.368
tensorflow_gpu-1.2.03.5-3.6MSVC 2015 업데이트 3Cmake v3.6.35.18
tensorflow_gpu-1.1.03.5MSVC 2015 업데이트 3Cmake v3.6.35.18
tensorflow_gpu-1.0.03.5MSVC 2015 업데이트 3Cmake v3.6.35.18