[1 atnaujinimas] Kaip sukurti ir įdiegti „TensorFlow GPU / CPU for Windows“ iš šaltinio kodo naudojant „Bazel“ ir „Python 3.6“

Tai mano ankstesnės istorijos atnaujinimas. Kas čia naujo:

  • „TensorFlow“ v1.11
  • „CUDA v10.0“
  • „cuDNN v7.3“

Yra vadovas oficialioje svetainėje. Tai nėra labai išsami, bet kartais naudinga.

Santrauka

  1. Įdiekite „Git“, skirtą „Windows“
  2. Įdiekite „Bazel“
  3. Įdiekite „MSYS2 x64“ ir komandų eilutės įrankius
  4. Įdiekite „Visual Studio 2017“ kūrimo įrankius, įskaitant „Visual Studio 2015“ kūrimo įrankius
  5. Įdiekite „Python 3.6“ 64 bitus
  6. Įdiekite „NVIDIA CUDA 10.0“ ir „cuDNN 7.3“ (GPU pagreičiui)
  7. Konfigūruokite kūrimo aplinką
  8. Klonuoti „TensorFlow v1.11“ šaltinio kodą ir pritaikyti privalomą pataisą
  9. Konfigūruokite sudėjimo parametrus
  10. Sukurkite „TensorFlow“ iš šaltinių
  11. Sukurkite „TensorFlow“ rato failą „Python 3.6“
  12. Įdiekite „TensorFlow“ rato failą „Python 3.6“ ir patikrinkite rezultatą

1 veiksmas: įdiekite „Git“, skirtą „Windows“

Atsisiųskite ir įdiekite „Git“, skirtą „Windows“. Aš čia imuosi. Įsitikinkite, kad kelias į git.exe pridėtas prie% PATH% aplinkos kintamojo. Aš diegiu Git į

C: \ Bin \ Git

šio vadovo aplankas.

2 veiksmas: įdiekite „MSYS2 x64“ ir komandų eilutės įrankius

Čia atsisiųskite ir įdiekite 64 bitų paskirstymą. Šaltiniams kurti „Bazel“ naudoja grep, pleistrą, išpakuokite kitus „Unix“ įrankių prievadus. Galite pabandyti rasti atskirus dvejetainius rinkinius kiekvienam iš jų, bet aš norėčiau naudoti MSYS2 paketą. Aš ją įdiegiu į

C: \ bin \ msys64

šio vadovo aplankas. Aplinkos kintamąjį% PATH% turite pridėti aplanką su įrankiais. Mano atveju tai yra „C: \ Bin \ msys64 \ usr \ bin“.

Iš „Start Menu“ paleiskite nuorodą „MSYS2 MinGW 64 bitų“. Vykdykite šią komandą norėdami atnaujinti (jei reikia, paleiskite „MSYS2 MinGW 64-bit“ iš naujo):

pacmanas -Su

Tada paleiskite:

pacmanas -Su

Diegimo įrankiai yra būtini norint sukurti:

pacman -S pleistras išpakuotas

Uždarykite „MSYS2 MinGW 64 bitų“ apvalkalą, vykdydami komandą „exit“. Mums to nebereikia.

3 veiksmas: įdiekite „Visual Studio 2017“ kūrimo įrankius, įskaitant „Visual Studio 2015“ kūrimo įrankius

Turime įdiegti „VC ++ 2015.3 v14.00 (v140) toolset for desktop“ iš „Visual Studio 2017 Build Tools“, kad sukurtume „TensorFlow v1.11“:

4 žingsnis: įdiekite „Bazel“

Čia atsisiųskite naujausią „Basel“. Ieškokite „bazel-“ „Windows“ x86_64.exe failo. Aš išbandžiau šį vadovą su 0.17.2 košele. Pervardykite dvejetainį failą į „bazel.exe“ ir perkelkite jį į% PATH% katalogą, kad galėtumėte paleisti „Bazel“ įvesdami „bazel“ bet kuriame kataloge. Peržiūrėkite „Bazel“ diegimo, skirto „Windows x64“, problemą.

Pridėkite „BAZEL_SH“ globalų aplinkos kintamąjį, naudodamiesi bash vieta. Mano kelias yra

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

Pridėkite „BAZEL_VC“ globalų aplinkos kintamąjį „VC ++ 2015.3 v14.00 (v140) įrankių rinkinyje darbalaukiui“ įrankių grandinės vietą:

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC

5 žingsnis: įdiekite 64 bitų „Python 3.6“

„TensorFlow“ nepalaiko „Python 3.7“, todėl jūs turite įdiegti 3.6 versiją.
Panašu, kad „TensorFlow v1.11“ nebepalaiko „Anaconda“ / „Miniconda“ versijos kurti - gaunu keistų klaidų. Štai kodėl aš kuriu virtualią Python aplinką.

„Python 3.6“ galite atsisiųsti čia. Įdiekite jį ir pridėkite vietą python.exe prie kintamojo% PATH%.

6 veiksmas: įdiekite „NVIDIA CUDA 10.0“ ir „cuDNN 7.3“ (GPU pagreičiui).

Šis skyrius yra tikras, jei turite NVIDIA vaizdo plokštę, palaikančią CUDA. Kitu atveju praleiskite šį skyrių.
Jei reikia pagalbos, žiūrėkite CUDA diegimą čia. Aš nukopijuoju-įklijuoju šį vadovą, bet supjaustau kai kurias detales.

Eikite į https://developer.nvidia.com/cuda-downloads ir atsisiųskite CUDA 10.0 Installer for Windows [jūsų versija]. Man versija yra „Windows 10“.

Įdiekite jį numatytoje vietoje su numatytaisiais parametrais, tačiau panaikinkite žymėjimą „VisualStudio“ integracijos parinktyje. Jei reikės, jis atnaujins GPU tvarkyklę ir iš naujo paleis.

Eikite į bėgimo („Win + R“) tipo „cmd“

Ši komanda patikrins „nvcc“ versiją ir įsitikins, kad ji nustatyta kelio aplinkos kintamajame.

nvcc - perversmas

Kitas apsilankymas https://developer.nvidia.com/cudnn (reikalinga narystė).

Po prisijungimo atsisiųskite:

cuDNN v7.3.1 „Windows“ biblioteka [jūsų versija] man „Windows 10.“. Perkelkite atsisiųstą aplanką ir ištraukite ZIP failą.

Eikite į išskleistą aplanką ir nukopijuokite visus failus ir aplankus iš „cuda“ aplanko (pvz., Šiukšliadėžę, įtraukite, aplanką) ir įklijuokite į „C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0“.

Paskutinis žingsnis yra pridėti „C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64“ į aplinkos kintamąjį% PATH%.

7 veiksmas: sukonfigūruokite kūrimo aplinką

Paleiskite „VC ++ 2015“ x64 „apvalkalą“ (nuoroda „VS2015 x64„ Native Tools Command Prompt ““) iš meniu Pradėti.

Tada turėsite sukurti, suaktyvinti ir sukonfigūruoti „Python“ aplinką. Vykdykite „VS2015 x64 Native Tools Command Prompt“ apvalkalo komandas, esančias žemiau (teisingi keliai, atsižvelgiant į jūsų vietą).

„pip3“ įdiegti -U virtualenv
virtualenv - sistemos-svetainės paketai C: \ Vartotojai \ amsokol \ tensorflow-v1.11
C: \ Vartotojai \ amsokol \ tensorflow-v1.11 \ Scenarijai \ aktyvuoti.bat

Tavo apvalkalas turėtų atrodyti taip, kaip pritaikius komandas:

Įdiekite privalomus „Python“ paketus:

„pip3“ sumontuokite šešis varvančius ratus
„pip3“ įdiegti „keras_applications“ == 1.0.5 - be reikalo
pip3 install keras_preprocessing == 1.0.3 - no-deps

Vykdykite „pip3 list“, kad įsitikintumėte, jog privalomi paketai yra įdiegti:

Tai viskas dabar. Neuždarykite apvalkalo.

8 žingsnis: Klonuokite „TensorFlow“ kodą ir pritaikykite privalomą pataisą

Pirmiausia turite pasirinkti aplanką, kuriame klijuoti „TensorFlow“ kodą. Mano atveju tai yra „C: \ Users \ amsokol \ Development \ tensorflow-build“. Atgal į apvalkalą ir paleiskite:

cd C: \ Users \ amsokol \ Development \ tensorflow-build

Klono šaltinio kodas:

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

„Checkout“ naujausia versija 1.11:

CD tensorflow
„Git Checkout“ v1.11.0

Dabar mes turime šaltinių.

Trečiųjų šalių bibliotekoje yra BUG. Prieš statydami, turime tai ištaisyti.
  • Atsisiųskite pleistrą čia ir išsaugokite failo pavadinimu eigen_half.patch aplanke third_party
  • Pridėkite patch_file = clean_dep („// 3rd_party: eigen_half.patch“), eikite į eigen_archive skyrių į tensorflow / workspace.bzl failą.

Rezultatas „tensorflow“ / workspace.bzl faile turėtų būti toks:

...
tf_http_archive (
  name = "eigen_archive",
  URL = [
„https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/fd6845384b86.tar.gz“,
    „https://bitbucket.org/eigen/eigen/get/fd6845384b86.tar.gz“,
   ],
sha256 = "d956415d784fa4e42b6a2a45c32556d6aec9d0a3d8ef48baee2522ab762556a9",
  strip_prefix = "eigen-eigen-fd6845384b86",
  build_file = clean_dep ("// 3rd_party: eigen.BUILD"),
  patch_file = clean_dep ("// trečioji šalis": eigen_half.patch "),
)
...

Padaryta.

9 veiksmas: sukonfigūruokite kūrimo parametrus

Įsitikinkite, kad esame šaltinio kodo šakniniame aplanke:

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow

Paleisti konfigūratorių:

python ./configure.py

Pirmiausia klausiama apie Python vietą. Norėdami palikti numatytąją vertę, paspauskite „Enter“:

...
Įdiegėte 0.17.2 „Bazel“.
Nurodykite python vietą. [Numatytasis yra C: \ Vartotojai \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Tada ji klausia apie Python bibliotekos takų vietą. Norėdami palikti numatytąją vertę, paspauskite „Enter“:

Traceback (paskutinis skambutis paskutinis):
  Failas „“, 1 eilutė, esančiame 
„AttributeError“: modulis „site“ neturi atributo „getsitepackages“
Rasti galimi Python bibliotekos keliai:
  C: \ Vartotojai \ amsokol \ tensorflow-v1.11 \ Lib \ svetainės paketai
Įveskite norimą „Python“ bibliotekos kelią, kurį norite naudoti. Numatytasis yra [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-package]

Tada klausiama apie „nGraph“ palaikymą. Mums to nereikia. Paspauskite „n“:

Ar norite sukurti „TensorFlow“ su „nGraph“ palaikymu? [y / N]: n
„TensorFlow“ nebus įgalintas joks „nGraph“ palaikymas.

Tada klausiama apie CUDA palaikymą:

Ar norite sukurti „TensorFlow“ su CUDA palaikymu? [y / N]:

Atsakykite „y“, jei ketinate naudoti GPU pagreitį. Priešingu atveju paspauskite „n“.

Jei taip, CUDA konfigūravimo programa užduos papildomus klausimus:
Atsakykite į 10.0 kaip „CUDA SDK“ versiją:
Nurodykite „CUDA SDK“ versiją, kurią norite naudoti. [Palikite tuščią pagal nutylėjimą kaip „CUDA 9.0“]: 10.0
Paspauskite „Enter“, jei norite palikti numatytąją „CUDA toolkit“ vietą:
Nurodykite vietą, kur įdiegtas „CUDA 10.0“ priemonių rinkinys. Norėdami gauti daugiau informacijos, skaitykite README.md. [Numatytasis yra C: / Programos failai / „NVIDIA GPU Computing Toolkit“ / CUDA / v10.0]:
Atsakykite 7.3.1 kaip „cuDNN“ versiją:
Nurodykite norimą naudoti „cuDNN“ versiją. [Palikite tuščią, jei numatytasis nustatymas yra cuDNN 7.0]: 7.3.1
Norėdami palikti numatytąją „cuDNN“ bibliotekos vietą, paspauskite „Enter“:
Nurodykite vietą, kurioje įdiegta „cuDNN 7“ biblioteka. Norėdami gauti daugiau informacijos, skaitykite README.md. [Numatytasis yra C: / Programos failai / „NVIDIA GPU Computing Toolkit“ / CUDA / v10.0]:
Kitas klausimas yra apie CUDA skaičiavimo galimybes, kurias reikia sukurti. Savo įrenginio skaičiavimo galimybes galite rasti apsilankę https://developer.nvidia.com/cuda-gpus. Turiu „GTX 1070“, todėl atsakau į 6.1:
Nurodykite kableliais atskirtų „Cuda“ skaičiavimo galimybių, kurias norite sukurti, sąrašą.
Savo įrenginio skaičiavimo galimybes galite rasti apsilankę https://developer.nvidia.com/cuda-gpus.
Atminkite, kad kiekviena papildoma skaičiavimo galimybė žymiai padidina jūsų sudarymo laiką ir dvejetainį dydį. [Numatytasis yra: 3,5,7,0]: 6.1

Kitas klausimas yra nustatyti optimizavimo vėliavas. Turiu 6-ojo „Gen“ „Intel“ procesorių, todėl atsakau / archyvuoju: AVX2:

Nurodykite optimizavimo vėliavas, kurias naudosite kompiliavimo metu, kai nurodoma bazelio parinktis „--config = opt“ [Numatytasis dydis / arch: AVX]: / arch: AVX2

Paskutinis klausimas yra apie eigeną. Atsakykite „y“. Tai dramatiškai sumažina kompiliavimo laiką.

Ar norėtumėte nepaisyti stiprios „C ++“ kompiliavimo eilutės, kad sumažintumėte kompiliacijos laiką? [Taip / Ne]: y
Eigen tvirtas inline aplenktas.

Konfigūracija baigta. Leidžiame statyti.

10 veiksmas: sukurkite „TensorFlow“ iš šaltinių

Įsitikinkite, kad esame šaltinio kodo šakniniame aplanke:

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
Sukurti reikia ilgai. Primygtinai rekomenduoju išjungti antivirusinę programinę įrangą, įskaitant „Windows Defender Antivirus“ apsaugą realiuoju laiku.

Vykdyti kurti:

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

Kurį laiką atsisėskite ir atsipalaiduokite.

11 veiksmas: sukurkite „TensorFlow“ rato failą „Python 3.6“

Vykdykite komandą norėdami sukurti „Python wheel“ failą:

mkdir .. \ iš
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

Tai nepavyksta:

Yra žinoma problema. Pažvelkite į aplanką „bazel-bin \ tensorflow \ tools \ pip_package“. Jame yra nulio ilgio failas „simple_console_for_windows.zip“. Tai yra problema. „Bazel“ yra 32 bitų „ZIP“ programa, kuri nepavyksta, jei failas didesnis nei 2 GB. Žr. Nuorodas, kur rasite išsamią informaciją ir sprendimą:

  • https://github.com/tensorflow/tensorflow/issues/20332
  • https://stackoverflow.com/questions/52394305/creating-pip-package-for-tensorflow-with-gpu-support-results-in-0-byte-simple-co

Problemą galima pašalinti šiais būdais:

cd. \ bazel-bin \ tensorflow \ tools \ pip_package

Atidarykite failą „simple_console_for_windows.zip-0.params“ ir pašalinkite eilutę, kurioje yra „mnist.zip“:

...
runfiles / org_tensorflow / tensorflow / hozzájár / eager / python / example / gan / mnist.zip = bazel-out / x64_windows-opt / bin / tensorflow / hozzájár / eager / python / example / gan / mnist.zip
...
Tai man padeda. Jei tai nepadeda, tiesiog pašalinkite kitas eilutes su ZIP failais (išsamią informaciją rasite čia). Šios veiklos tikslas yra padaryti „simple_console_for_windows.zip“ ilgį mažesnį nei 2 GB.

Ištrinkite tuščią failą „simple_console_for_windows.zip“.

Toliau pažvelkite į savo namų aplanką. Jūs turite pamatyti aplanką, kurio pavadinimas yra „_bazel_ “. Mano atveju tai yra „_bazel_amsokol“. Jame yra aplankas su kaupimo failais. Mano atveju tai yra „lx6zoh4k“. Atgal į apvalkalą vykdymą (taisykite pagal aplanko pavadinimus):

cd C: \ Vartotojai \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

Sukurkite failą „simple_console_for_windows.zip“ rankiniu būdu:

išoriniai \ bazel_tools \ tools \ zip \ užtrauktukas \ zipper.exe vcC bazel-out / x64_windows-opt / bin / tensorflow / tools / pip_package / simple_console_for_windows.zip @ bazel-out / x64_windows-opt / bin / tensorflow / tools / pip_package / „simple_console_for_windows.zip-0.params“

Vykdykite komandą norėdami sukurti „Python wheel“ failą:

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

Jis sukuria „tensorflow-1.11.0-cp36-cp36m-win_amd64.whl“ failą aplanke „.. \ out“.

12 žingsnis: Įdiekite „TensorFlow“ rato failą „Python 3.6“ ir patikrinkite rezultatą

Vykdykite komandą norėdami įdiegti „Python wheel“ failą:

„pip3“ įdiegti .. \ out \ tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

Palikite „tensorflow“ katalogą (kartais pasitaiko klaidų, kai „Tensoflow“ kodų aplanke paleidžiu „Python“ scenarijus - aš nežinau priežasties):

CD ..

Norėdami patikrinti atsisiuntimo scenarijų čia arba nukopijuokite, įklijuokite ir paleiskite:

importuoti tensorflow kaip tf
labas = tf.constant („Sveiki, TensorFlow!“)
sesija = tf.Sesija ()
spausdinti (session.run (labas))

Jei sistema išveda šiuos duomenis, tada viskas gerai:

Sveiki, „TensorFlow“!

Mano išvestis:

Dabar sėkmingai įdiegėte „TensorFlow“ „Windows“ kompiuteryje.

Leiskite man sužinoti žemiau esančiuose komentaruose, jei tai jums padėjo. Arba jei suklydai. Dėkoju!