Windows'ta kaynaktan derle, Windows'ta kaynaktan derle

TensorFlow'un kaynak kodundan bir pip paketi oluşturun ve Windows'a kurun.

Windows için kurulum

Windows geliştirme ortamınızı yapılandırmak için aşağıdaki derleme araçlarını yükleyin.

Python ve TensorFlow paketinin bağımlılıklarını yükleyin.

Windows için Python 3.9+ 64-bit sürümünü yükleyin. Pip'i isteğe bağlı bir özellik olarak seçin ve %PATH% ortam değişkeninize ekleyin.

TensorFlow pip paketinin bağımlılıklarını yükleyin:

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

Gerekli bağımlılıklar setup.py dosyasında REQUIRED_PACKAGES başlığı altında listelenmiştir.

Bazel'i yükleyin

TensorFlow'u derlemek için kullanılan derleme aracı olan Bazel'i yükleyin . Bazel sürümü için Windows için test edilmiş derleme yapılandırmalarına bakın. Bazel'i C++ derlemesi yapacak şekilde yapılandırın.

Bazel çalıştırılabilir dosyasının konumunu %PATH% ortam değişkeninize ekleyin.

MSYS2'yi yükleyin.

TensorFlow'u derlemek için gereken ikili dosyaları içeren MSYS2'yi yükleyin . Eğer MSYS2 C:\msys64 dizinine yüklüyse, C:\msys64\usr\bin %PATH% ortam değişkeninize ekleyin. Ardından, cmd.exe kullanarak şu komutu çalıştırın:

pacman -Syu (requires a console restart)
pacman -S git patch unzip
pacman -S git patch unzip rsync

Visual C++ Build Tools 2022'yi yükleyin.

Visual C++ derleme araçları 2022'yi yükleyin. Bu, Visual Studio Community 2022 ile birlikte gelir, ancak ayrı olarak da yüklenebilir:

  1. Visual Studio indirme sayfasına gidin.
  2. Visual Studio için Araçlar veya Diğer Araçlar, Çerçeveler ve Yeniden Dağıtılabilirler'i seçin.
  3. İndirin ve kurun:
    • Visual Studio 2022 için Derleme Araçları
    • Microsoft Visual C++ Yeniden Dağıtılabilir Paketleri Visual Studio 2022 için

LLVM'yi yükleyin

  1. LLVM indirme sayfasına gidin,
  2. Windows ile uyumlu LLVM'yi C:/Program Files/LLVM klasörüne indirip kurun (örneğin, LLVM-17.0.6-win64.exe).

GPU desteğini yükleyin (isteğe bağlı)

TensorFlow'u GPU üzerinde çalıştırmak için gereken sürücüleri ve ek yazılımları yüklemek üzere Windows GPU destek kılavuzuna bakın.

TensorFlow kaynak kodunu indirin

Git kullanarak TensorFlow deposunu klonlayın ( git MSYS2 ile birlikte yüklenir):

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

Depo varsayılan olarak master geliştirme dalını kullanır. Ayrıca derlemek için bir release dalını da kontrol edebilirsiniz:

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

İsteğe bağlı: Çevresel Değişken Ayarı

Paket oluşturma sorunlarını önlemek için derleme komutunu çalıştırmadan önce aşağıdaki komutları çalıştırın: (Aşağıdaki komutlar paketler yüklenirken ayarlanmışsa, lütfen bunları dikkate almayın). Tüm yolların doğru ayarlanıp ayarlanmadığını kontrol etmek için set çalıştırın, belirli bir Ortam Değişkeni için ayarlanan yolu kontrol etmek için echo %Environmental Variable% örneğin ` echo %BAZEL_VC% ​​komutunu çalıştırın.

Python yol kurulumu sorunu 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 yol kurulumu sorunu 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)

İsteğe bağlı: Derlemeyi yapılandırın

TensorFlow derlemeleri, deponun kök dizinindeki .bazelrc dosyası tarafından yapılandırılır. Yaygın ayarları düzenlemek için ./configure veya ./configure.py komut dosyaları kullanılabilir.

Yapılandırmayı değiştirmeniz gerekiyorsa, deponun kök dizininden ./configure komutunu çalıştırın.

python ./configure.py

Bu betik, TensorFlow bağımlılıklarının konumunu girmenizi ister ve ek derleme yapılandırma seçenekleri (örneğin derleyici bayrakları) sorar. Aşağıda python ./configure.py komutunun örnek bir çalıştırılması gösterilmektedir (oturumunuz farklılık gösterebilir):

pip paketini derleyin ve kurun.

Pip paketi iki adımda oluşturulur. Bir bazel build komutu "package-builder" adlı bir program oluşturur. Ardından, paketi oluşturmak için package-builder programını çalıştırırsınız.

Paket oluşturucuyu oluşturun.

tensorflow:master deposu varsayılan olarak 2.x sürümünü oluşturacak şekilde güncellendi. Bazel'ı kurun ve TensorFlow paket oluşturucusunu oluşturmak için bazel build kullanın.

bazel build //tensorflow/tools/pip_package:wheel

yalnızca CPU

TensorFlow paket oluşturucusunu yalnızca CPU desteğiyle oluşturmak için bazel kullanın:

MSVC ile derleyin
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
CLANG ile derleyin

TenorFlow'u CLANG derleyicisiyle derlemek için --config= win_clang seçeneğini kullanın:

bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu

GPU desteği

GPU desteğine sahip bir TensorFlow paket oluşturucu yapmak için:

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

Bazel önbelleğini temizlemek ve geçersiz veya güncel olmayan önbelleğe alınmış verilerden kaynaklanan hataları gidermek için kullanılan komutlar; `--expunge` bayrağıyla `bazel clean` komutu dosyaları kalıcı olarak siler.

bazel clean 
bazel clean --expunge  

Bazel derleme seçenekleri

Paket oluşturma sorunlarını önlemek için derleme yaparken bu seçeneği kullanın: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

Derleme seçenekleri için Bazel komut satırı referansına bakın.

TensorFlow'u kaynak koddan derlemek çok fazla RAM kullanabilir. Sisteminiz bellek kısıtlamalıysa, Bazel'in RAM kullanımını şu parametreyle sınırlayın: --local_ram_resources=2048 .

GPU desteğiyle derleme yapıyorsanız, nvcc uyarı mesajlarını gizlemek için --copt=-nvcc_options=disable-warnings ekleyin.

Paketi oluşturun

Bir pip paketi oluşturmak için --repo_env=WHEEL_NAME bayrağını belirtmeniz gerekir. Sağlanan isme bağlı olarak paket oluşturulacaktır. Örneğin:

TensorFlow CPU paketini oluşturmak için:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu

Gece paketini oluşturmak için, tensorflow yerine tf_nightly ayarlayın, örneğin CPU gece paketini oluşturmak için:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu

Sonuç olarak, üretilen tekerlek şu konumda bulunacaktır:

bazel-bin/tensorflow/tools/pip_package/wheel_house/

Paketi yükleyin

Oluşturulan .whl dosyasının adı, TensorFlow sürümüne ve platformunuza bağlıdır. Paketi yüklemek için pip install kullanın, örneğin:

pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl

MSYS kabuğunu kullanarak derleyin.

TensorFlow, MSYS kabuğu kullanılarak da derlenebilir. Aşağıda listelenen değişiklikleri yapın, ardından Windows yerel komut satırı ( cmd.exe ) için önceki talimatları izleyin.

MSYS yol dönüştürmesini devre dışı bırak

MSYS, Unix yollarına benzeyen argümanları otomatik olarak Windows yollarına dönüştürür ve bu, bazel ile çalışmaz. ( //path/to:bin etiketi, eğik çizgiyle başladığı için Unix mutlak yolu olarak kabul edilir.)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Yolunuzu belirleyin

Bazel ve Python kurulum dizinlerini $PATH ortam değişkeninize ekleyin. Eğer Bazel ` C:\tools\bazel.exe ve Python ` C:\Python\python.exe konumuna kuruluysa, PATH şu şekilde ayarlayın:

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

GPU desteği için, CUDA ve cuDNN bin dizinlerini $PATH ekleyin:

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"

Test edilmiş derleme yapılandırmaları

İşlemci

Sürüm Python sürümü Derleyici Yapı araçları
tensorflow-2.21.0 3.10-3.13 CLANG 18.1.4 Bazel 7.4.1
tensorflow-2.20.0 3.9-3.13 CLANG 18.1.4 Bazel 7.4.1
tensorflow-2.19.0 3.9-3.12 CLANG 18.1.4 Bazel 6.5.0
tensorflow-2.18.0 3.9-3.12 CLANG 17.0.6 Bazel 6.5.0
tensorflow-2.17.0 3.9-3.12 CLANG 17.0.6 Bazel 6.5.0
tensorflow-2.16.1 3.9-3.12 CLANG 17.0.6 Bazel 6.5.0
tensorflow-2.15.0 3.9-3.11 MSVC 2019 Bazel 6.1.0
tensorflow-2.14.0 3.9-3.11 MSVC 2019 Bazel 6.1.0
tensorflow-2.12.0 3.8-3.11 MSVC 2019 Bazel 5.3.0
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 güncelleme 3 Bazel 0.19.0-0.21.0
tensorflow-1.12.0 3.5-3.6 MSVC 2015 güncelleme 3 Bazel 0.15.0
tensorflow-1.11.0 3.5-3.6 MSVC 2015 güncelleme 3 Bazel 0.15.0
tensorflow-1.10.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.9.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.8.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.7.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.6.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.5.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.4.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.3.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.2.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.1.0 3.5 MSVC 2015 güncelleme 3 CMake v3.6.3
tensorflow-1.0.0 3.5 MSVC 2015 güncelleme 3 CMake v3.6.3

GPU

Sürüm Python sürümü Derleyici Yapı araçları cuDNN CUDA
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 güncelleme 3 Bazel 0.19.0-0.21.0 7.4 10
tensorflow_gpu-1.12.0 3.5-3.6 MSVC 2015 güncelleme 3 Bazel 0.15.0 7.2 9.0
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 güncelleme 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 güncelleme 3 CMake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 güncelleme 3 CMake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 güncelleme 3 CMake v3.6.3 5.1 8