Bangun paket pip TensorFlow dari sumber dan instal di Windows.
Pengaturan untuk Windows
Instal alat pembangunan berikut untuk mengonfigurasi 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 pip
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
Ketergantungan tercantum dalam berkas setup.py
di bawah REQUIRED_PACKAGES
.
Instal Bazel
Instal Bazel , alat build yang digunakan untuk mengompilasi TensorFlow. Untuk versi Bazel, lihat konfigurasi build yang telah diuji untuk Windows. Konfigurasikan Bazel untuk membangun C++ .
Tambahkan lokasi eksekusi Bazel ke variabel lingkungan %PATH%
Anda.
Instal MSYS2
Instal MSYS2 untuk alat bin yang diperlukan untuk membangun TensorFlow. Jika MSYS2 diinstal di C:\msys64
, tambahkan C:\msys64\usr\bin
ke variabel lingkungan %PATH%
Anda. Kemudian, gunakan cmd.exe
untuk menjalankan:
pacman -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
Instal Visual C++ Build Tools 2022
Instal alat build Visual C++ 2022. Alat ini disertakan dengan Visual Studio Community 2022, tetapi dapat diinstal secara terpisah:
- Buka unduhan Visual Studio ,
- Pilih Alat untuk Visual Studio atau Alat Lainnya, Kerangka Kerja dan Redistributable ,
- Unduh dan instal:
- Alat Bangun untuk Visual Studio 2022
- Microsoft Visual C++ Redistributables untuk Visual Studio 2022
Instal LLVM
- Buka 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 mengkloning repositori TensorFlow ( git
diinstal dengan MSYS2):
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
Repo ini secara default menggunakan cabang pengembangan master
. Anda juga dapat memeriksa cabang rilis untuk membangun:
git checkout branch_name # r1.9, r1.10, etc.
Opsional: Pengaturan Variabel Lingkungan
Jalankan perintah berikut sebelum menjalankan perintah build untuk menghindari masalah saat 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 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: Konfigurasikan build
Build TensorFlow dikonfigurasi 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 meminta lokasi dependensi TensorFlow dan meminta opsi konfigurasi build tambahan (misalnya, flag kompiler). Berikut ini menunjukkan contoh eksekusi python ./configure.py
(sesi Anda mungkin berbeda):
Membangun dan menginstal paket pip
Paket pip dibangun dalam dua langkah. Perintah bazel build
akan membuat program "package-builder". Kemudian, Anda akan menjalankan package-builder untuk membuat paket tersebut.
Membangun pembuat paket
Repo tensorflow:master telah diperbarui ke versi 2.x secara default. Instal Bazel dan gunakan bazel build
untuk membuat pembangun paket TensorFlow.
bazel build //tensorflow/tools/pip_package:wheel
Hanya CPU
Gunakan bazel
untuk membuat pembangun paket TensorFlow dengan dukungan CPU saja:
Membangun dengan MSVC
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Membangun dengan CLANG
Gunakan --config= win_clang
untuk membangun TenorFlow dengan Kompiler 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 pembangun 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 tidak valid atau kedaluwarsa, pembersihan bazel dengan tanda --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 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 menghilangkan pesan peringatan nvcc.
Membangun paket
Untuk membuat paket pip, Anda perlu menentukan flag --repo_env=WHEEL_NAME. Paket akan dibuat berdasarkan nama yang diberikan. Misalnya:
Untuk membangun paket CPU tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Untuk membangun paket nightly, tetapkan tf_nightly
alih-alih tensorflow
, misalnya untuk membangun paket CPU nightly:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
Akibatnya, roda yang dihasilkan akan berada 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 bawaan 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 diawali 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 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 diuji
CPU
Versi | Versi Python | Penyusun | Membangun alat |
---|---|---|---|
tensorflow-2.20.0 | 3.9-3.13 | DENTENG 18.1.4 | Bazel 7.4.1 |
tensorflow-2.19.0 | 3.9-3.12 | DENTENG 18.1.4 | Bazel 6.5.0 |
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 |
tensorflow-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 |
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 ke-3 | Bazel 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Bazel 0.15.0 |
tensorflow-1.11.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Bazel 0.15.0 |
tensorflow-1.10.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.9.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.8.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.7.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.5.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.4.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.3.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.2.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.1.0 | 3.5 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
tensorflow-1.0.0 | 3.5 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 |
GPU
Versi | Versi Python | 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 ke-3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3,5-3,6 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | Pembaruan MSVC 2015 ke-3 | Cmake v3.6.3 | 5.1 | 8 |