Build paket pip TensorFlow dari sumber dan instal di Windows.
Penyiapan 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 six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
Ketergantungan tercantum dalam file setup.py
di bawah REQUIRED_PACKAGES
.
Instal Bazel
Instal Bazel , alat build yang digunakan untuk mengompilasi 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 -S git patch unzip
Instal Visual C++ Build Tools 2019
Instal alat build Visual C++ 2019 . Ini hadir dengan Visual Studio 2019 tetapi dapat diinstal secara terpisah:
- Pergi ke unduhan Visual Studio ,
- Pilih Redistributables dan Build Tools ,
- Unduh dan pasang:
- Microsoft Visual C++ 2019 Dapat Didistribusikan Ulang
- Alat Bangun Microsoft 2019
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 default ke cabang pengembangan master
. Anda juga dapat melihat cabang rilis untuk dibuat:
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 disiapkan saat menginstal paket, abaikan saja). Jalankan set
periksa apakah semua jalur telah disetel dengan benar, jalankan echo %Environmental Variable%
misalnya echo %BAZEL_VC%
untuk memeriksa penyiapan jalur untuk Variabel Lingkungan tertentu
Jalur python menyiapkan masalah tensorflow:issue#59943 , tensorflow:issue#9436 , tensorflow:issue#60083
set PATH=path/to/python # [e.g. (C:/Python310)] set PATH=path/to/python/Scripts # [e.g. (C:/Python310/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
Jalur Bazel/MSVC menyiapkan masalah tensorflow: masalah#54578
set BAZEL_SH=C:/msys64/usr/bin/bash.exe set BAZEL_VS=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools set BAZEL_VC=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools/VC
Opsional: Konfigurasikan build
Build TensorFlow dikonfigurasi oleh file .bazelrc
di direktori root respoitory. 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 (flag compiler, misalnya). Berikut ini menunjukkan contoh menjalankan python ./configure.py
(sesi Anda mungkin berbeda):
Bangun dan instal paket pip
Paket pip dibangun dalam dua langkah. Perintah bazel build
membuat program "package-builder". Anda kemudian menjalankan pembuat paket untuk membuat paket.
Bangun pembuat paket
tensorflow:master repo telah diperbarui untuk membangun 2.x secara default. Instal Bazel dan gunakan bazel build
untuk membuat pembuat paket TensorFlow.
bazel build //tensorflow/tools/pip_package:build_pip_package
Khusus CPU
Gunakan bazel
untuk membuat pembuat paket TensorFlow dengan dukungan khusus CPU:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
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 usang, bazel clean dengan flag --expunge menghapus file secara permanen
bazel clean bazel clean --expunge
Opsi build 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 dibatasi memori, batasi penggunaan RAM Bazel dengan: --local_ram_resources=2048
.
Jika membangun dengan dukungan GPU, tambahkan --copt=-nvcc_options=disable-warnings
untuk menekan pesan peringatan nvcc.
Membangun paket
Perintah bazel build
membuat sebuah executable bernama build_pip_package
— ini adalah program yang membangun paket pip
. Misalnya, berikut ini membuat paket .whl
di direktori C:/tmp/tensorflow_pkg
:
bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg
Meskipun dimungkinkan untuk membangun konfigurasi CUDA dan non-CUDA di bawah pohon sumber yang sama, kami merekomendasikan menjalankan bazel clean
saat beralih di antara kedua konfigurasi ini di pohon sumber yang sama.
Instal paketnya
Nama file dari file .whl
yang dihasilkan bergantung pada versi TensorFlow dan platform Anda. Gunakan pip3 install
untuk menginstal paket, misalnya:
pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-tags.whl e.g. pip3 install C:/tmp/tensorflow_pkg/tensorflow-2.12.0-cp310-cp310-win_amd64.whl
Bangun menggunakan shell MSYS
TensorFlow juga dapat dibuat menggunakan shell MSYS. Buat 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 PATH 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 separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
Untuk dukungan GPU, tambahkan direktori bin CUDA dan cuDNN ke $PATH
Anda:
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 teruji
CPU
Versi: kapan | versi Python | Penyusun | Membangun alat |
---|---|---|---|
tensorflow-2.12.0 | 3.8-3.11 | MVC 2019 | Bagel 5.3.0 |
tensorflow-2.11.0 | 3.7-3.10 | MVC 2019 | Bagel 5.3.0 |
tensorflow-2.10.0 | 3.7-3.10 | MVC 2019 | Bazel 5.1.1 |
tensorflow-2.9.0 | 3.7-3.10 | MVC 2019 | Bazel 5.0.0 |
tensorflow-2.8.0 | 3.7-3.10 | MVC 2019 | Bazel 4.2.1 |
tensorflow-2.7.0 | 3.7-3.9 | MVC 2019 | Bagel 3.7.2 |
tensorflow-2.6.0 | 3.6-3.9 | MVC 2019 | Bagel 3.7.2 |
tensorflow-2.5.0 | 3.6-3.9 | MVC 2019 | Bagel 3.7.2 |
tensorflow-2.4.0 | 3.6-3.8 | MVC 2019 | Bazel 3.1.0 |
tensorflow-2.3.0 | 3.5-3.8 | MVC 2019 | Bazel 3.1.0 |
tensorflow-2.2.0 | 3.5-3.8 | MVC 2019 | Bazel 2.0.0 |
tensorflow-2.1.0 | 3.5-3.7 | MVC 2019 | Bazel 0.27.1-0.29.1 |
tensorflow-2.0.0 | 3.5-3.7 | MVC 2017 | Bazel 0.26.1 |
tensorflow-1.15.0 | 3.5-3.7 | MVC 2017 | Bazel 0.26.1 |
tensorflow-1.14.0 | 3.5-3.7 | MVC 2017 | Bazel 0.24.1-0.25.2 |
tensorflow-1.13.0 | 3.5-3.7 | Pembaruan MSVC 20153 | Bazel 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Bagel 0.15.0 |
tensorflow-1.11.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Bagel 0.15.0 |
tensorflow-1.10.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.9.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.8.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.7.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.5.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.4.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.3.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.2.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.1.0 | 3.5 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
tensorflow-1.0.0 | 3.5 | Pembaruan MSVC 20153 | Cmake v3.6.3 |
GPU
Versi: kapan | versi Python | Penyusun | Membangun alat | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.10.0 | 3.7-3.10 | MVC 2019 | Bazel 5.1.1 | 8.1 | 11.2 |
tensorflow_gpu-2.9.0 | 3.7-3.10 | MVC 2019 | Bazel 5.0.0 | 8.1 | 11.2 |
tensorflow_gpu-2.8.0 | 3.7-3.10 | MVC 2019 | Bazel 4.2.1 | 8.1 | 11.2 |
tensorflow_gpu-2.7.0 | 3.7-3.9 | MVC 2019 | Bagel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.6.0 | 3.6-3.9 | MVC 2019 | Bagel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3.6-3.9 | MVC 2019 | Bagel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.4.0 | 3.6-3.8 | MVC 2019 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MVC 2019 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow_gpu-2.2.0 | 3.5-3.8 | MVC 2019 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow_gpu-2.1.0 | 3.5-3.7 | MVC 2019 | Bazel 0.27.1-0.29.1 | 7.6 | 10.1 |
tensorflow_gpu-2.0.0 | 3.5-3.7 | MVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.15.0 | 3.5-3.7 | MVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.14.0 | 3.5-3.7 | MVC 2017 | Bazel 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3.5-3.7 | Pembaruan MSVC 20153 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Bagel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Bagel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | Pembaruan MSVC 20153 | Cmake v3.6.3 | 5.1 | 8 |