소스에서 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
파일에 나열되어 있습니다.
Bazel 설치
TensorFlow를 컴파일하는 데 사용되는 빌드 도구인 Bazel을 설치하세요 . Bazel 버전은 Windows용 테스트 빌드 구성을 참조하세요. C++를 빌드 하도록 Bazel을 구성하세요.
Bazel 실행 파일의 위치를 %PATH%
환경 변수에 추가합니다.
MSYS2 설치
TensorFlow 빌드에 필요한 bin 도구를 사용하려면 MSYS2를 설치하세요 . MSYS2가 C:\msys64
에 설치되어 있는 경우, %PATH%
환경 변수에 C:\msys64\usr\bin
추가하세요. 그런 다음 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에 Windows 호환 LLVM(예: LLVM-17.0.6-win64.exe)을 다운로드하여 설치합니다.
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 저장소가 기본적으로 빌드 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
CLANG으로 빌드하세요
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
빌드 옵션 에 대한 Bazel 명령줄 참조를 확인하세요.
소스에서 TensorFlow를 빌드하면 많은 RAM을 사용할 수 있습니다. 시스템 메모리가 부족한 경우 --local_ram_resources=2048
옵션을 사용하여 Bazel의 RAM 사용량을 제한하세요.
GPU 지원으로 빌드하는 경우 --copt=-nvcc_options=disable-warnings
추가하여 nvcc 경고 메시지를 억제합니다.
패키지 빌드
pip 패키지를 빌드하려면 --repo_env=WHEEL_NAME 플래그를 지정해야 합니다. 제공된 이름에 따라 패키지가 생성됩니다. 예:
tensorflow CPU 패키지를 빌드하려면:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
야간 패키지를 빌드하려면 tensorflow
대신 tf_nightly
설정합니다. 예를 들어 CPU 야간 패키지를 빌드하려면 다음과 같습니다.
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 설치 디렉터리를 $PATH
환경 변수에 추가합니다. 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.20.0 | 3.9-3.13 | 클랭 18.1.4 | 바젤 7.4.1 |
텐서플로우-2.19.0 | 3.9-3.12 | 클랭 18.1.4 | 바젤 6.5.0 |
텐서플로우-2.18.0 | 3.9-3.12 | 클랭 17.0.6 | 바젤 6.5.0 |
텐서플로우-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 | Cmake v3.6.3 |
텐서플로우-1.9.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.8.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.7.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.6.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.5.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.4.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.3.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.2.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.1.0 | 3.5 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
텐서플로우-1.0.0 | 3.5 | MSVC 2015 업데이트 3 | Cmake v3.6.3 |
그래픽 카드
버전 | 파이썬 버전 | 컴파일러 | 빌드 도구 | cuDNN | 쿠다 |
---|---|---|---|---|---|
텐서플로우_GPU-2.10.0 | 3.7-3.10 | MSVC 2019 | 바젤 5.1.1 | 8.1 | 11.2 |
텐서플로우_GPU-2.9.0 | 3.7-3.10 | MSVC 2019 | 바젤 5.0.0 | 8.1 | 11.2 |
텐서플로우_GPU-2.8.0 | 3.7-3.10 | MSVC 2019 | 바젤 4.2.1 | 8.1 | 11.2 |
텐서플로우_GPU-2.7.0 | 3.7-3.9 | MSVC 2019 | 바젤 3.7.2 | 8.1 | 11.2 |
텐서플로우_GPU-2.6.0 | 3.6-3.9 | MSVC 2019 | 바젤 3.7.2 | 8.1 | 11.2 |
텐서플로우_GPU-2.5.0 | 3.6-3.9 | MSVC 2019 | 바젤 3.7.2 | 8.1 | 11.2 |
텐서플로우_GPU-2.4.0 | 3.6-3.8 | MSVC 2019 | 바젤 3.1.0 | 8.0 | 11.0 |
텐서플로우_GPU-2.3.0 | 3.5-3.8 | MSVC 2019 | 바젤 3.1.0 | 7.6 | 10.1 |
텐서플로우_GPU-2.2.0 | 3.5-3.8 | MSVC 2019 | 바젤 2.0.0 | 7.6 | 10.1 |
텐서플로우_GPU-2.1.0 | 3.5-3.7 | MSVC 2019 | 바젤 0.27.1-0.29.1 | 7.6 | 10.1 |
텐서플로우_GPU-2.0.0 | 3.5-3.7 | MSVC 2017 | 바젤 0.26.1 | 7.4 | 10 |
텐서플로우_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | 바젤 0.26.1 | 7.4 | 10 |
텐서플로우_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | 바젤 0.24.1-0.25.2 | 7.4 | 10 |
텐서플로우_gpu-1.13.0 | 3.5-3.7 | MSVC 2015 업데이트 3 | 바젤 0.19.0-0.21.0 | 7.4 | 10 |
텐서플로우_GPU-1.12.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | 바젤 0.15.0 | 7.2 | 9.0 |
텐서플로우_gpu-1.11.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | 바젤 0.15.0 | 7 | 9 |
텐서플로우_gpu-1.10.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 7 | 9 |
텐서플로우_GPU-1.9.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 7 | 9 |
텐서플로우_GPU-1.8.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 7 | 9 |
텐서플로우_GPU-1.7.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 7 | 9 |
텐서플로우_GPU-1.6.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 7 | 9 |
텐서플로우_GPU-1.5.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 7 | 9 |
텐서플로우_GPU-1.4.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 6 | 8 |
텐서플로우_GPU-1.3.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 6 | 8 |
텐서플로우_GPU-1.2.0 | 3.5-3.6 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 5.1 | 8 |
텐서플로우_GPU-1.1.0 | 3.5 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 5.1 | 8 |
텐서플로우_gpu-1.0.0 | 3.5 | MSVC 2015 업데이트 3 | Cmake v3.6.3 | 5.1 | 8 |