[Värskendus 2] Kuidas TensorFlow GPU / CPU Windowsi jaoks lähtekoodist ehitada ja installida, kasutades bazelit ja Python 3.6

See on värskendus minu eelmise loo kohta. Mis siin uut on:

  • TensorFlow v1.12
  • CUDA v10.0
  • cuDNN v7.4
  • sarapuu 0,19,0
  • Apache Ignite'i tugi

Ametlikul saidil on juhend. See ei ole väga põhjalik, kuid on väga kasulik.

Kokkuvõte

  1. Installige Git Windowsi jaoks
  2. Installige Bazel
  3. Installige MSYS2 x64 ja käsureatööriistad
  4. Installige Visual Studio 2017 ehitustööriistad, sealhulgas Visual Studio 2015 ehitustööriistad
  5. Installige Python 3.6 64-bitine
  6. Installige NVIDIA CUDA 10.0 ja cuDNN 7.4 (GPU kiirenduseks)
  7. Konfigureerige ehitamise keskkond
  8. Kloonige TensorFlow v1.12 lähtekood ja rakendage kohustuslik plaaster
  9. Konfigureerige ehituse parameetreid
  10. TensorFlow ehitamine allikatest
  11. Looge TensorFlow rattafail Python 3.6 jaoks
  12. Paigaldage TensorFlow rattafail Python 3.6 jaoks ja kontrollige tulemust

1. samm: installige Git Windowsi jaoks

Laadige alla ja installige Git Windowsi jaoks. Ma võtan selle siia. Veenduge, et tee saidile git.exe on lisatud keskkonnamuutujasse% PATH%. Installin Giti

C: \ bin \ Git

selle õpetuse kaust.

2. samm: installige MSYS2 x64 ja käsureatööriistad

Siit saate alla laadida ja installida 64-bitise jaotuse. Bazel kasutab allikate loomiseks grepi, plaastrit, paki lahti Unixi tööriistade muud pordid. Võite proovida igaühe jaoks leida eraldiseisvaid kahendkoode, kuid eelistan kasutada MSYS2-kimpu. Installin selle

C: \ bin \ msys64

selle õpetuse kaust. Keskkonnamuutujale% PATH% peate lisama tööriistadega kausta. Minu puhul on see “C: \ Bin \ msys64 \ usr \ bin”.

Käivitage menüü Start kaudu otsetee “MSYS2 MinGW 64-bit”. Käivitage värskendamiseks järgmine käsk (kui see küsib, taaskäivitage „MSYS2 MinGW 64-bit”):

pacman - ilus

Siis jookse:

pacman -Su

Installimise tööriistad on ehitamiseks vajalikud:

pacman -S plaaster lahti pakkida

Sulgege käsu „exit” abil „MSYS2 MinGW 64-bit” kest. Me ei vaja seda enam.

3. samm: installige Visual Studio 2017 ehitustööriistad, sealhulgas Visual Studio 2015 ehitustööriistad

TensorFlow v1.11 ehitamiseks peame installima Visual Studio 2017 tööriistakomplekti „VC ++ 2015.3 v14.00 (v140) tööriistakomplekt“.

4. samm: installige Bazel

Laadige uusim Basel alla siit. Otsige faili bazel- -windows-x86_64.exe. Olen seda õpetust testinud saialillega 0.19.0. Pange binaarne nimi ümber bazel.exe ja teisaldage see kataloogis% PATH% kataloogi, nii et saate Bazeli käivitada, kirjutades bazel mis tahes kataloogi. Probleemide korral lugege üksikasju Bazel'i installimise kohta Windows x64 jaoks.

Lisage bash asukoha jaoks globaalne keskkonnamuutuja BAZEL_SH. Minu tee on

C: \ bin \ msys64 \ usr \ bin \ bash.exe

Lisage “VC ++ 2015.3 v14.00 (v140) tööriistakomplekt töölauale” globaalne keskkonnamuutuja BAZEL_VC tööriistahela asukoht:

C: \ programmifailid (x86) \ Microsoft Visual Studio 14.0 \ VC

5. samm: installige Python 3.6 64-bitine

TensorFlow ei toeta Python 3.7, seega peate installima 3.6 versiooni.
Anaconda / Minicondais ei toeta ametlikult allikatest pärit ehitust. Sellepärast kasutan ehitamiseks Pythoni virtuaalset keskkonda.

Python 3.6 on allalaaditav siit. Installige see ja lisage asukoht asukohta python.exe muutujale% PATH%.

6. samm: installige NVIDIA CUDA 10.0 ja cuDNN 7.4 (GPU kiirenduseks)

See jaotis on tegelik, kui teil on NVIDIA graafikakaart, mis toetab CUDA-d. Muidu jäta see jaotis vahele.
Kui vajate abi, vaadake CUDA samm-sammult installimist siit. Kopeerin-kleepin selle juhendi, kuid lõikasin mõned üksikasjad.

Minge saidile https://developer.nvidia.com/cuda-downloads ja laadige alla CUDA 10.0 Installer Windowsi jaoks [teie versioon]. Minu jaoks on versioon Windows 10.

Installige see vaikesätetega vaikesätetega, kuid tühjendage VisualStudio integratsiooni suvand. See värskendab vajadusel teie GPU draiverit ja taaskäivitab.

Minge jooksma (Win + R) tüüp cmd

Järgmine käsk kontrollib nvcc versiooni ja veendub, et see on seatud tee keskkonnamuutujasse.

nvcc - teisendus

Järgmine goto https://developer.nvidia.com/cudnn (liikmelisus vajalik).

Pärast sisselogimist laadige alla järgmine teave:

cuDNN v7.4.1 Windowsi teek [teie versioon] minu jaoks Windows 10. Minge allalaaditud kausta ja ekstraheerige ZIP-fail.

Minge ekstraheeritud kausta ja kopeerige kõik failid ja kaustad cuda kaustast (nt prügikast, kaasa arvatud, lib) ja kleepige kausta C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0.

Viimane samm on lisada keskkonnamuutujale% PATH% C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64.

7. samm: seadistage keskkond

Käivitage VC ++ 2015 kest x64 jaoks (otsetee „VS2015 x64 Native Tools Command Prompt”) Start-menüüst.

Järgmisena peate looma, aktiveerima ja konfigureerima Pythoni keskkonna. Jookse allpool olevate keskkäskude „VS2015 x64 Native Tools Command Prompt” sees (korrigeerige teid vastavalt teie asukohale).

pip3 install - U virtualenv
virtualenv - süsteemisaidi-paketid C: \ Kasutajad \ amsokol \ tensorflow-v1.12
C: \ Kasutajad \ amsokol \ tensorflow-v1.12 \ Skriptid \ aktiveerida.bat

Teie kesta peaks välja nägema järgmine pärast käskude rakendamist:

Installige kohustuslikud Pythoni paketid:

pip3 paigaldada kuus tuima ratas
pip3 install keras_applications == 1.0.5 - no-deps
pip3 install keras_preprocessing == 1.0.3 - no-deps

Käitage “pip3 list”, et tagada kohustuslike pakettide installimine:

Praeguseks kõik. Ärge sulgege kesta.

8. samm: kloonige TensorFlow lähtekood ja rakendage kohustuslik plaaster

Kõigepealt peate valima kausta, kuhu TensorFlow lähtekood kloonida. Minu puhul on see “C: \ Users \ amsokol \ Development \ tensorflow-build”. Tagasi kesta ja käivitada:

cd C: \ Kasutajad \ amsokol \ Areng \ tensorflow-build

Kloonide lähtekood:

git kloon https://github.com/tensorflow/tensorflow

Checkouti uusim versioon 1.12:

cd tensorflow
git checkout v1.12.0

Nüüd on meil allikaid.

Kolmanda osapoole raamatukogus on BUG. Enne ehitamist peame selle parandama.
  • Laadige plaaster alla siit ja salvestage failinimega eigen_half.patch kausta third_party
  • Lisage patch_file = clean_dep (“// kolmas_party: eigen_half.patch”), rida reale eigen_archive sektsiooni faili tensorflow / workspace.bzl.

Tulemus failis tensorflow / workspace.bzl peaks olema järgmine:

...
tf_http_archive (
    nimi = "eigen_archive",
    build_file = clean_dep ("// kolmas_party: eigen.BUILD"),
    sha256 = "d956415d784fa4e42b6a2a45c32556d6aec9d0a3d8ef48baee2522ab762556a9",
    strip_prefix = "eigen-eigen-fd6845384b86",
    URLid = [
"https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/fd6845384b86.tar.gz",
"https://bitbucket.org/eigen/eigen/get/fd6845384b86.tar.gz",
    ],
    patch_file = clean_dep ("// kolmas_party: eigen_half.patch"),
)
...

Valmis.

9. samm: konfigureerige ehituse parameetrid

Veenduge, et oleme lähtekoodi juurkataloogis:

cd C: \ Kasutajad \ amsokol \ Areng \ tensorflow-build \ tensorflow

Käitage konfiguraatorit:

python ./configure.py

Esiteks küsib Python asukohta. Vaikeväärtuse lahkumiseks vajutage sisestusklahvi:

...
Teil on installitud bazel 0.19.0.
Palun täpsustage pythoni asukoht. [Vaikeväärtus on C: \ Kasutajad \ amsokol \ tensorflow-v1.12 \ Skriptid \ python.exe]:

Siis küsib see Pythoni teegi asukohta. Vaikeväärtuse lahkumiseks vajutage sisestusklahvi:

Traceback (viimane kõne viimane):
  Fail "", rida 1, moodulis <
AttributeError: moodulil „site” pole atribuuti „getsitepackages”
Leitud võimalikud Pythoni raamatukogu teed:
  C: \ Kasutajad \ amsokol \ tensorflow-v1.12 \ Lib \ saidipaketid
Sisestage kasutatav Pythoni teegi tee. Vaikeväärtus on [C: \ Users \ amsokol \ tensorflow-v1.12 \ Lib \ site-Paketid]

Siis küsitakse Apache Ignite'i toe kohta. Vajutage y, kui vajate:

Kas soovite TensorFlow ehitada Apache Ignite toega? [Y / n]: a

Siis küsitakse XLA JITi toetuse kohta. Vajutage n:

Kas soovite TensorFlow ehitada XLA JIT toega? [jah / ei]: n
XLA JIT toe sisselülitamine tekitab kompileerimisvea “C ++ reegli" // tensorflow / compiler / tf2xla: cpu_function_runtime "koostamine ebaõnnestus". Ma ei ole veel lahendust leidnud.

Siis küsitakse ROCmi toetuse kohta. Meil pole seda vaja, kui valime CUDA toe. Vajutage n:

Kas soovite TensorFlow ehitada ROCmi toega? [jah / ei]: n

Siis küsib ta CUDA toe kohta:

Kas soovite TensorFlow ehitada CUDA toega? [jah / ei]:

Kui kavatsete kasutada GPU kiirendust, vastake „y“. Vastasel juhul vajutage nuppu n.

Juhul kui jah, siis nõuab CUDA konfiguraator lisaküsimusi:
Vastus 10.0 CUDA SDK versioonina:
Täpsustage CUDA SDK versioon, mida soovite kasutada. [Jätke vaikimisi tühjaks CUDA 9.0]: 10.0
CUDA tööriistakomplekti vaikeasukohast lahkumiseks vajutage sisestusklahvi:
Palun täpsustage koht, kuhu CUDA 10.0 tööriistakomplekt on installitud. Lisateavet leiate README.md-st. [Vaikeväärtus on C: / Programmifailid / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Vaikeväärtusele cuDNN 7 jätmiseks vajutage sisestusklahvi:
Palun täpsustage cuDNN-i versioon, mida soovite kasutada. [Jäta vaikimisi tühjaks cuDNN 7]:
Vajutage sisestusklahvi, et jätta välja cuDNN-i teegi vaikeseade:
Palun täpsustage koht, kuhu cuDNN 7 teek on installitud. Lisateavet leiate README.md-st. [Vaikeväärtus on C: / Programmifailid / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Järgmine küsimus on CUDA arvutusvõime kohta, mida koos luua. Seadme arvutusvõime leiate aadressilt https://developer.nvidia.com/cuda-gpus. Mul on GTX 1070, sellepärast vastan 6.1:
Palun täpsustage komaeraldusega Cuda arvutusvõimete loend, mida soovite luua.
Seadme arvutusvõime leiate aadressilt https://developer.nvidia.com/cuda-gpus.
Pange tähele, et iga täiendav arvutusvõime suurendab märkimisväärselt teie ehituse aega ja binaarset suurust. [Vaikimisi on: 3.5,7.0]: 6.1

Järgmine küsimus on optimeerimislippude seadmine. Mul on 6. põlvkonna Inteli protsessor, sellepärast vastan / arhiveerin: AVX2:

Palun täpsustage optimeerimise lipud, mida kasutada kompileerimise ajal, kui on täpsustatud suvandi variant "--config = opt" [Vaikeväärtus on / arch: AVX]: / arch: AVX2

Viimane küsimus on eigeni kohta. Vastake “y”. See vähendab dramaatiliselt kompileerimise aega.

Kas soovite mõne C ++ kompilatsiooni puhul tühistada tugeva sisemise joone, et kompileerimise aega lühendada? [Y / n]: a
Eigeni tugev joon tühistati.

Seadistamine on lõpule viidud. Võimaldab ehitada.

10. samm: looge TensorFlow allikatest

Bazelis 0,19,0 on viga. Vaadake siin üksikasju. Selle parandamiseks peame lisama peitefaili ülemisele reale stringi "importima > /tensorflow/tools/bazel.rc“. Minu puhul on fail „C: /Users/amsokol/Development/tensorflow-build/tensorflow/.bazelrc”:
import C: /Kasutajad/amsokol/Development/tensorflow-build/tensorflow/tools/bazel.rc
import C: /Kasutajad/amsokol/Development/tensorflow-build/tensorflow/.tf_configure.bazelrc

Veenduge, et oleme lähtekoodi juurkataloogis:

cd C: \ Kasutajad \ amsokol \ Areng \ tensorflow-build \ tensorflow
Ehitamine võtab kaua aega. Soovitan tungivalt välja lülitada viirusetõrjetarkvara, sealhulgas Windows Defender Antivirus reaalajas kaitse.

Käivita ehitamine:

bazel build --config = opt // tensorflow / tools / pip_package: build_pip_package

Istuge ja puhake mõnda aega.

11. samm: looge Python 3.6 jaoks TensorFlow rattafail

Käivitage käsk Pythoni rattafaili loomiseks:

mkdir .. välja
ristkülik / tensorflow \ tööriistad \ pip_pakend \ build_pip_pakend .. välja

See loob kausta „.. \ out” faili tensorflow-1.12.0-cp36-cp36m-win_amd64.whl.

12. samm: installige Python 3.6 jaoks TensorFlow rattafail ja kontrollige tulemust

Käivitage käsk Pythoni rattafaili installimiseks:

pip3 installimine. \ out \ tensorflow-1.12.0-cp36-cp36m-win_amd64.whl

Jätke kataloog "tensorflow" (vigu juhtub mõnikord, kui käitan Pythoni skripte Tensoflow lähtekoodi kaustas - ma ei tea põhjust):

CD ..

Siit saate allalaadimisskripti kontrollida või kopeerida-kleepida ja käivitada:

impordi tensorflow kui tf
tere = tf.constant ('Tere, TensorFlow!')
sessioon = tf.Sessioon ()
prindi (session.run (tere))

Kui süsteem väljastab järgmise teabe, on kõik korras:

Tere, TensorFlow!

Minu väljund:

Selle Pytoni skripti saate käivitada ka installitud TensorFlow versiooni tagamiseks:

# TensorFlow ja tf.keras
impordi tensorflow kui tf
tensorflow impordi keras
prindi (tf .__ versioon__)
prindi (keras .__ versioon__)

Peate saama järgmise väljundi:

1.12.0
2,1,6-tf

TensorFlow 1.12 on nüüd Windowsi masinasse edukalt installitud.

Andke mulle allpool kommentaarides teada, kui see teie jaoks töötas. Või kui teil on vigu. Aitäh!