소스에서 TensorFlow pip 패키지를 빌드하고 Windows에 설치합니다.
Windows용 설정
Windows 개발 환경을 구성하려면 다음 빌드 도구를 설치하십시오.
Python 및 TensorFlow 패키지 종속 항목 설치
Windows용 Python 3.9+ 64비트 릴리스를 설치합니다. 선택적 기능으로 pip를 선택하고 이를 %PATH%
환경 변수에 추가합니다.
TensorFlow pip 패키지 종속성을 설치합니다.
pip3 install -U 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 -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
Visual C++ 빌드 도구 2022 설치
Visual C++ 빌드 도구 2022를 설치합니다. 이는 Visual Studio Community 2022 와 함께 제공되지만 별도로 설치할 수 있습니다.
- Visual Studio 다운로드 로 이동합니다.
- Visual Studio용 도구 또는 기타 도구, 프레임워크 및 재배포 가능 항목을 선택합니다.
- 다운로드 및 설치:
- Visual Studio 2022용 빌드 도구
- Visual Studio 2022용 Microsoft Visual C++ 재배포 가능 패키지
LLVM 설치
- LLVM 다운로드 로 이동하세요.
- C:/Program Files/LLVM(예: LLVM-17.0.6-win64.exe)에 Windows 호환 LLVM을 다운로드하여 설치합니다.
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
실행하여 모든 경로가 올바르게 설정되었는지 확인합니다. echo %Environmental Variable%
실행합니다. 예를 들어 특정 환경 변수에 대해 설정된 경로를 확인하려면 echo %BAZEL_VC%
실행합니다.
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
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)
선택사항: 빌드 구성
TensorFlow 빌드는 저장소 루트 디렉터리의 .bazelrc
파일로 구성됩니다. ./configure
또는 ./configure.py
스크립트를 사용하여 일반 설정을 조정할 수 있습니다.
구성을 변경해야 하는 경우 저장소의 루트 디렉터리에서 ./configure
스크립트를 실행하세요.
python ./configure.py
이 스크립트는 TensorFlow 종속성의 위치를 묻는 메시지를 표시하고 추가 빌드 구성 옵션(예: 컴파일러 플래그)을 요청합니다. 다음은 python ./configure.py
의 샘플 실행을 보여줍니다(세션은 다를 수 있음).
pip 패키지 빌드 및 설치
pip 패키지는 두 단계로 구축됩니다. bazel build
명령은 "package-builder" 프로그램을 생성합니다. 그런 다음 package-builder를 실행하여 패키지를 생성합니다.
패키지 빌더 빌드
tensorflow:master repo가 기본적으로 2.x 빌드로 업데이트되었습니다. Bazel을 설치 하고 bazel build
사용하여 TensorFlow 패키지 빌더를 만듭니다.
bazel build //tensorflow/tools/pip_package:wheel
CPU 전용
bazel
사용하여 CPU만 지원하는 TensorFlow 패키지 빌더를 만듭니다.
MSVC로 구축
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
CANG으로 빌드
CLANG 컴파일러로 TenorFlow를 빌드하려면 --config= win_clang
사용하세요.
bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
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
소스에서 TensorFlow를 빌드하면 많은 RAM이 사용될 수 있습니다. 시스템에 메모리가 제한된 경우 --local_ram_resources=2048
사용하여 Bazel의 RAM 사용량을 제한하세요.
GPU 지원으로 빌드하는 경우 --copt=-nvcc_options=disable-warnings
추가하여 nvcc 경고 메시지를 억제합니다.
패키지 빌드
pip 패키지를 빌드하려면 --repo_env=WHEEL_NAME 플래그를 지정해야 합니다. 제공된 이름에 따라 패키지가 생성됩니다. 예를 들어:
텐서플로우 CPU 패키지를 빌드하려면:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
nightly 패키지를 빌드하려면 tensorflow
대신 tf_nightly
설정하세요. 예를 들어 CPU nightly 패키지를 빌드하려면:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
결과적으로 생성된 휠은 다음 위치에 위치하게 됩니다.
bazel-bin/tensorflow/tools/pip_package/wheel_house/
패키지 설치
생성된 .whl
파일의 파일 이름은 TensorFlow 버전과 플랫폼에 따라 다릅니다. pip install
사용하여 패키지를 설치합니다. 예:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.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 separatorexport 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.17.0 | 3.9-3.12 | 클랭 17.0.6 | 바젤 6.5.0 |
텐서플로우-2.16.1 | 3.9-3.12 | 클랭 17.0.6 | 바젤 6.5.0 |
텐서플로우-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 |