感谢您关注 Google I/O 大会。欢迎点播观看所有专题演讲点播观看

Bangun dari sumber di Windows

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:

  1. Pergi ke unduhan Visual Studio ,
  2. Pilih Redistributables dan Build Tools ,
  3. 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 separator
export 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