Buat paket pip TensorFlow dari kode sumber dan instal di Windows.
Pengaturan untuk Windows
Instal alat bantu pengembangan berikut untuk mengkonfigurasi lingkungan pengembangan Windows Anda.
Instal Python dan dependensi paket TensorFlow.
Instal Python 3.9+ versi 64-bit untuk Windows . Pilih pip sebagai fitur opsional dan tambahkan ke variabel lingkungan %PATH% Anda.
Instal dependensi paket pip TensorFlow:
pip3 install -U pippip3 install -U six numpy wheel packagingpip3 install -U keras_preprocessing --no-deps
Dependensi tercantum dalam file setup.py di bawah REQUIRED_PACKAGES .
Instal Bazel
Instal Bazel , alat bantu kompilasi yang digunakan untuk mengkompilasi TensorFlow. Untuk versi Bazel, lihat konfigurasi kompilasi yang telah diuji untuk Windows. Konfigurasi Bazel untuk mengkompilasi C++ .
Tambahkan lokasi file eksekusi Bazel ke variabel lingkungan %PATH% Anda.
Instal MSYS2
Instal MSYS2 untuk mendapatkan alat bin yang dibutuhkan untuk membangun TensorFlow. Jika MSYS2 diinstal di C:\msys64 , tambahkan C:\msys64\usr\bin ke variabel lingkungan %PATH% Anda. Kemudian, gunakan cmd.exe , jalankan:
pacman -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
Instal Visual C++ Build Tools 2022
Instal Visual C++ build tools 2022. Perangkat lunak ini sudah termasuk dalam Visual Studio Community 2022 , tetapi dapat diinstal secara terpisah:
- Buka halaman unduhan Visual Studio ,
- Pilih Alat untuk Visual Studio atau Alat, Kerangka Kerja, dan Redistributable Lainnya ,
- Unduh dan instal:
- Alat Pengembangan untuk Visual Studio 2022
- Microsoft Visual C++ Redistributables untuk Visual Studio 2022
Instal LLVM
- Buka halaman unduhan LLVM ,
- 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 mengklon repositori TensorFlow ( git sudah terinstal bersama MSYS2):
git clone https://github.com/tensorflow/tensorflow.gitcd tensorflow
Repositori ini secara default menggunakan cabang pengembangan master . Anda juga dapat melakukan checkout cabang rilis untuk melakukan build:
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 telah 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 pengaturan 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 pengaturan jalur 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)
Opsional: Konfigurasi build
Konfigurasi TensorFlow diatur melalui 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 meminta Anda untuk menentukan lokasi dependensi TensorFlow dan meminta opsi konfigurasi build tambahan (misalnya, flag kompiler). Berikut ini contoh hasil eksekusi python ./configure.py (sesi Anda mungkin berbeda):
Bangun dan instal paket pip.
Paket pip dibuat dalam dua langkah. Perintah ` bazel build membuat program "package-builder". Kemudian Anda menjalankan package-builder untuk membuat paket tersebut.
Bangun pembuat paket
Repositori tensorflow:master telah diperbarui ke build 2.x secara default. Instal Bazel dan gunakan bazel build untuk membuat package-builder TensorFlow.
bazel build //tensorflow/tools/pip_package:wheel
Hanya CPU
Gunakan bazel untuk membuat package builder TensorFlow dengan dukungan CPU saja:
Dibangun dengan MSVC
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Dibangun dengan CLANG
Gunakan --config= win_clang untuk membangun TenorFlow dengan Compiler CLANG:
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 package builder 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 guna mengatasi kesalahan akibat data cache yang tidak valid atau usang, bazel clean dengan flag --expunge 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 pembuatan .
Membangun TensorFlow dari kode sumber dapat menggunakan banyak RAM. Jika sistem Anda memiliki keterbatasan memori, batasi penggunaan RAM Bazel dengan: --local_ram_resources=2048 .
Jika melakukan kompilasi dengan dukungan GPU, tambahkan --copt=-nvcc_options=disable-warnings untuk menekan pesan peringatan nvcc.
Buat 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 TensorFlow CPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Untuk membuat paket nightly, atur tf_nightly sebagai pengganti tensorflow , misalnya untuk membuat paket nightly CPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
Akibatnya, roda yang dihasilkan akan terletak 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
Membangun menggunakan shell MSYS
TensorFlow juga dapat dibangun menggunakan shell MSYS. Lakukan perubahan yang tercantum di bawah ini, lalu ikuti petunjuk sebelumnya untuk baris perintah asli Windows ( cmd.exe ).
Nonaktifkan konversi jalur MSYS
MSYS secara otomatis mengkonversi 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 diawali dengan garis miring.)
export MSYS_NO_PATHCONV=1export MSYS2_ARG_CONV_EXCL="*"
Tetapkan jalur Anda
Tambahkan direktori instalasi Bazel dan Python ke variabel lingkungan $PATH Anda. Jika Bazel diinstal di C:\tools\bazel.exe , dan Python di 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 telah diuji
CPU
| Versi | Versi Python | Penyusun | Alat bantu pembuatan |
|---|---|---|---|
| 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 | Pembaruan MSVC 2015 versi 3 | Bazel 0.19.0-0.21.0 |
| tensorflow-1.12.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | Bazel 0.15.0 |
| tensorflow-1.11.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | Bazel 0.15.0 |
| tensorflow-1.10.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.9.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.8.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.7.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.6.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.5.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.4.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.3.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.2.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.1.0 | 3.5 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
| tensorflow-1.0.0 | 3.5 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 |
GPU
| Versi | Versi Python | Penyusun | Alat bantu pembuatan | 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 versi 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
| tensorflow_gpu-1.12.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | Bazel 0.15.0 | 7.2 | 9.0 |
| tensorflow_gpu-1.11.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | Bazel 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.10.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.9.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.8.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.7.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.6.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.5.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.4.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 6 | 8 |
| tensorflow_gpu-1.3.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 6 | 8 |
| tensorflow_gpu-1.2.0 | 3.5-3.6 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 5.1 | 8 |
| tensorflow_gpu-1.1.0 | 3.5 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 5.1 | 8 |
| tensorflow_gpu-1.0.0 | 3.5 | Pembaruan MSVC 2015 versi 3 | CMake v3.6.3 | 5.1 | 8 |