Bangun dari sumber di Windows, Bangun dari sumber di Windows

Buat paket pip TensorFlow dari sumbernya dan instal di Windows.

Pengaturan untuk Windows

Instal alat build berikut untuk mengonfigurasi lingkungan pengembangan Windows Anda.

Instal dependensi paket Python dan TensorFlow

Instal rilis Python 3.9+ 64-bit untuk Windows . Pilih pip sebagai fitur opsional dan tambahkan ke variabel lingkungan %PATH% Anda.

Instal dependensi paket pip TensorFlow:

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

Dependensi tercantum dalam file setup.py di bawah REQUIRED_PACKAGES .

Instal Bazel

Instal Bazel , alat build yang digunakan untuk mengkompilasi TensorFlow. Untuk versi Bazel, lihat konfigurasi build yang diuji untuk Windows. Konfigurasikan Bazel untuk membangun C++ .

Tambahkan lokasi Bazel yang dapat dieksekusi ke variabel lingkungan %PATH% Anda.

Instal MSYS2

Instal MSYS2 untuk alat bin yang diperlukan untuk membangun TensorFlow. Jika MSYS2 diinstal ke C:\msys64 , tambahkan C:\msys64\usr\bin ke variabel lingkungan %PATH% Anda. Kemudian, menggunakan cmd.exe , jalankan:

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

Instal Alat Pembuatan Visual C++ 2022

Instal alat pembangunan Visual C++ 2022 . Ini hadir dengan Visual Studio Community 2022 tetapi dapat diinstal secara terpisah:

  1. Buka unduhan Visual Studio ,
  2. Pilih Alat untuk Visual Studio atau Alat Lainnya, Kerangka dan Dapat Didistribusikan Ulang ,
  3. Unduh dan instal:
    • Alat Bangun untuk Visual Studio 2022
    • Microsoft Visual C++ Dapat Didistribusikan Ulang untuk Visual Studio 2022

Instal LLVM

  1. Buka unduhan LLVM ,
  2. Unduh dan instal LLVM yang kompatibel dengan Windows di C:/Program Files/LLVM misalnya, LLVM-17.0.6-win64.exe

Instal dukungan GPU (opsional)

Lihat panduan dukungan GPU Windows untuk menginstal driver dan perangkat lunak tambahan yang diperlukan untuk menjalankan TensorFlow pada GPU.

Unduh kode sumber TensorFlow

Gunakan Git untuk mengkloning repositori TensorFlow ( git diinstal dengan MSYS2):

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

Repo defaultnya adalah cabang pengembangan master . Anda juga dapat memeriksa cabang rilis yang akan dibangun:

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

Opsional: Pengaturan Variabel Lingkungan

Jalankan perintah berikut sebelum menjalankan perintah build untuk menghindari masalah dengan pembuatan paket: (Jika perintah di bawah ini diatur saat menginstal paket, abaikan saja). Jalankan set untuk memeriksa apakah semua jalur telah diatur dengan benar, jalankan echo %Environmental Variable% misalnya, echo %BAZEL_VC% untuk memeriksa jalur yang diatur untuk Variabel Lingkungan tertentu

Masalah penyiapan jalur 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 

Masalah penyiapan jalur Bazel/MSVC/CLANG tensorflow:masalah#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)

Opsional: Konfigurasikan build

Build TensorFlow dikonfigurasikan oleh file .bazelrc di direktori root repositori. Skrip ./configure atau ./configure.py dapat digunakan untuk menyesuaikan pengaturan umum.

Jika Anda perlu mengubah konfigurasi, jalankan skrip ./configure dari direktori root repositori.

python ./configure.py

Skrip ini menanyakan lokasi dependensi TensorFlow dan meminta opsi konfigurasi build tambahan (misalnya, flag compiler). Berikut ini menunjukkan contoh eksekusi python ./configure.py (sesi Anda mungkin berbeda):

Bangun dan instal paket pip

Paket pip dibuat dalam dua langkah. Perintah bazel build membuat program "pembuat paket". Anda kemudian menjalankan pembuat paket untuk membuat paket.

Bangun pembuat paket

tensorflow:master repo telah diperbarui ke build 2.x secara default. Instal Bazel dan gunakan bazel build untuk membuat pembuat paket TensorFlow.

bazel build //tensorflow/tools/pip_package:wheel

Hanya untuk CPU

Gunakan bazel untuk membuat pembuat paket TensorFlow dengan dukungan khusus CPU:

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

Gunakan --config= win_clang untuk membangun TenorFlow dengan CLANG Compiler:

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

dukungan GPU

Untuk membuat pembuat paket TensorFlow dengan dukungan GPU:

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

Perintah untuk membersihkan cache bazel untuk mengatasi kesalahan karena data cache yang tidak valid atau ketinggalan jaman, bazel clean dengan --expunge flag menghapus file secara permanen

bazel clean 
bazel clean --expunge  

Opsi pembuatan Bazel

Gunakan opsi ini saat membangun untuk menghindari masalah dengan pembuatan paket: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

Lihat referensi baris perintah Bazel untuk opsi build .

Membangun TensorFlow dari sumber dapat menggunakan banyak RAM. Jika sistem Anda memiliki keterbatasan memori, batasi penggunaan RAM Bazel dengan: --local_ram_resources=2048 .

Jika membangun dengan dukungan GPU, tambahkan --copt=-nvcc_options=disable-warnings untuk menyembunyikan pesan peringatan nvcc.

Bangun paketnya

Untuk membuat paket pip, Anda perlu menentukan flag --repo_env=WHEEL_NAME. Tergantung pada nama yang diberikan, paket akan dibuat. Misalnya:

Untuk membangun paket CPU tensorflow:

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

Untuk membuat paket nightly, setel tf_nightly alih-alih tensorflow , misalnya untuk membuat paket CPU nightly:

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

Akibatnya, roda yang dihasilkan akan ditempatkan di

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

Instal paketnya

Nama file .whl yang dihasilkan bergantung pada versi TensorFlow dan platform Anda. Gunakan pip install untuk menginstal paket, misalnya:

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

Bangun menggunakan shell MSYS

TensorFlow juga dapat dibuat menggunakan shell MSYS. Lakukan perubahan yang tercantum di bawah, lalu ikuti petunjuk sebelumnya untuk baris perintah asli Windows ( cmd.exe ).

Nonaktifkan konversi jalur MSYS

MSYS secara otomatis mengonversi argumen yang terlihat seperti jalur Unix ke jalur Windows, dan ini tidak berfungsi dengan bazel . (Label //path/to:bin dianggap sebagai jalur absolut Unix karena dimulai dengan garis miring.)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Tetapkan JALUR Anda

Tambahkan direktori instalasi Bazel dan Python ke variabel lingkungan $PATH Anda. Jika Bazel diinstal ke C:\tools\bazel.exe , dan Python ke C:\Python\python.exe , atur PATH Anda dengan:

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

Untuk dukungan GPU, tambahkan direktori CUDA dan cuDNN bin ke $PATH :

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"

Konfigurasi build yang diuji

CPU

Versi versi piton Penyusun Membangun alat
tensorflow-2.18.0 3.9-3.12 DEntang 17.0.6 Bazel 6.5.0
tensorflow-2.17.0 3.9-3.12 DEntang 17.0.6 Bazel 6.5.0
aliran tensor-2.16.1 3.9-3.12 DEntang 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
aliran tensor-1.15.0 3.5-3.7 MSVC 2017 Bazel 0.26.1
aliran tensor-1.14.0 3.5-3.7 MSVC 2017 Bazel 0.24.1-0.25.2
tensorflow-1.13.0 3.5-3.7 Pembaruan MSVC 2015 3 Bazel 0.19.0-0.21.0
tensorflow-1.12.0 3.5-3.6 Pembaruan MSVC 2015 3 Bazel 0.15.0
tensorflow-1.11.0 3.5-3.6 Pembaruan MSVC 2015 3 Bazel 0.15.0
aliran tensor-1.10.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
tensorflow-1.9.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
aliran tensor-1.8.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
aliran tensor-1.7.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
aliran tensor-1.6.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
aliran tensor-1.5.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
tensorflow-1.4.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
tensorflow-1.3.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
tensorflow-1.2.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3
tensorflow-1.1.0 3.5 Pembaruan MSVC 2015 3 Buat v3.6.3
tensorflow-1.0.0 3.5 Pembaruan MSVC 2015 3 Buat v3.6.3

GPU

Versi versi piton Penyusun Membangun alat 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 Pembaruan MSVC 2015 3 Bazel 0.19.0-0.21.0 7.4 10
tensorflow_gpu-1.12.0 3.5-3.6 Pembaruan MSVC 2015 3 Bazel 0.15.0 7.2 9.0
tensorflow_gpu-1.11.0 3.5-3.6 Pembaruan MSVC 2015 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 Pembaruan MSVC 2015 3 Buat v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 Pembaruan MSVC 2015 3 Buat v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 Pembaruan MSVC 2015 3 Buat v3.6.3 5.1 8