[Uppfærsla 1] Búa til og setja upp TensorFlow GPU / CPU fyrir Windows úr frumkóða með Bazel og Python 3.6

Þetta er uppfærsla á fyrri sögu minni. Hvað er nýtt hér:

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

Það eru leiðbeiningar á opinberu síðunni. Það er ekki mjög yfirgripsmikið, en það er stundum gagnlegt.

Yfirlit

  1. Settu upp Git fyrir Windows
  2. Settu Bazel upp
  3. Settu upp MSYS2 x64 og skipanalínutæki
  4. Settu upp Visual Studio 2017 smíðaverkfæri, þar á meðal Visual Studio 2015 smíðatól
  5. Settu upp Python 3.6 64-bita
  6. Settu upp NVIDIA CUDA 10.0 og cuDNN 7.3 (fyrir GPU hröðun)
  7. Stilltu byggingarumhverfið
  8. Klóna TensorFlow v1.11 frumkóðann og notaðu lögboðna plásturinn
  9. Stilltu smíðaviðmiðin
  10. Byggja TensorFlow úr heimildum
  11. Búðu til TensorFlow hjólaskrá fyrir Python 3.6
  12. Settu upp TensorFlow hjólaskrána fyrir Python 3.6 og athugaðu niðurstöðuna

Skref 1: Settu upp Git fyrir Windows

Sæktu og settu upp Git fyrir Windows. Ég tek það hér. Gakktu úr skugga um að leiðinni að git.exe hafi verið bætt við% PATH% umhverfisbreytuna. Ég er að setja Git upp á

C: \ Bin \ Git

Mappa fyrir þessa kennslu.

Skref 2: Settu upp MSYS2 x64 og Command Line Tools

Sæktu og settu upp 64 bita dreifingu hér. Bazel notar grep, patch, unzipand og aðrar hafnir frá Unix verkfærum til að byggja upp heimildir. Þú getur reynt að finna sjálfstæðar tvíþættar upplýsingar fyrir hvern þeirra, en ég vil frekar nota MSYS2 búntinn. Ég set það upp á

C: \ Bin \ msys64

Mappa fyrir þessa kennslu. Þú verður að bæta verkfæramöppu við% PATH% umhverfisbreytuna. Í mínu tilfelli er það „C: \ Bin \ msys64 \ usr \ bin“.

Byrjaðu "MSYS2 MinGW 64-Bit" hlekkinn frá upphafsvalmyndinni. Til að uppfæra skaltu keyra eftirfarandi skipun (endurræsa MSYS2 MinGW 64-bita þegar beðið er um það):

Pacman Syu

Hlauptu síðan:

Pacman -Su

Uppsetningartæki er krafist fyrir smíðina:

Renndu niður Pacman plástrinum

Lokaðu MSYS2 MinGW 64-bita skel með "exit" skipuninni. Við þurfum þess ekki lengur.

Skref 3: Settu upp Visual Studio 2017 Build Tools, þar á meðal Visual Studio 2015 Build Tools

Við þurfum að setja upp VC ++ 2015.3 v14.00 (v140) fyrir skjáborðsverkfæri frá Visual Studio 2017 Build Tools til að byggja upp TensorFlow v1.11:

Skref 4: settu Bazel upp

Sæktu nýjasta Basel hér. Leitaðu að skránni bazel- -windows-x86_64.exe. Ég prófaði þessa kennslu með Bazel 0.17.2. Endurnefnið tvöfaldið í bazel.exe og færðu það í möppu á% PATH% svo að þú getir keyrt Bazel með því að slá inn bazel í hvaða skrá sem er. Nánari upplýsingar um uppsetningu Bazel fyrir Windows x64 er að finna í vandamálum.

Bættu við alþjóðlegu umhverfisbreytunni BAZEL_SH fyrir bash stöðuna. Leið mín er

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

Bættu við alþjóðlegu umhverfisbreytunni BAZEL_VC fyrir verkfærasettið "VC ++ 2015.3 v14.00 (v140) fyrir skjáborð":

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

Skref 5: Settu upp Python 3.6 64-bita

TensorFlow styður ekki Python 3.7, svo þú þarft að setja upp útgáfu 3.6.
Það lítur út fyrir að TensorFlow v1.11 styðji ekki lengur Anaconda / Miniconda fyrir smíðar - ég er að fá undarlega villu. Þess vegna nota ég Python sýndarumhverfið til að búa til.

Python 3.6 er hægt að hlaða niður hér. Settu það upp og bættu python.exe staðsetningu við% PATH% breytuna.

Skref 6: Settu upp NVIDIA CUDA 10.0 og cuDNN 7.3 (fyrir GPU hröðun)

Þessi hluti er núverandi ef þú ert með NVIDIA skjákort sem styður CUDA. Annars skaltu sleppa þessum kafla.
Skref fyrir skref uppsetningu á CUDA er fáanleg hér ef þú þarft hjálp. Ég er að afrita þessa handbók en klippa út smáatriði.

Farðu á https://developer.nvidia.com/cuda-downloads og halaðu niður CUDA 10.0 uppsetningarforritinu fyrir Windows [þína útgáfu]. Fyrir mig er útgáfan Windows 10.

Settu það upp í sjálfgefnu möppunni með sjálfgefnu stillingunum, en gerðu VisualStudio samþættingarvalkostinn óvirkan. GPU bílstjóri verður uppfærður og endurræstur ef þörf krefur.

Keyrðu cmd (Win + R) skipunina

Eftirfarandi skipun leitar að útgáfu af nvcc og tryggir að hún sé stillt í stíg umhverfisbreytu.

nvcc - útgáfa

Farðu á https://developer.nvidia.com/cudnn (aðild þarf).

Eftir innskráningu skaltu hlaða niður:

cuDNN v7.3.1 Bókasafn fyrir Windows [útgáfa þín] fyrir mig Windows 10. Farðu í möppuna sem þú sóttir og dregðu út zip-skrána.

Farðu í útputtu möppuna og afritaðu allar skrár og möppur úr cuda möppunni (t.d. bin, include, lib) og límdu þær í „C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 „einn.

Lokaskrefið er að bæta „C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64" við% PATH% umhverfisbreytuna.

Skref 7: stilltu byggingarumhverfið

Byrjaðu VC ++ 2015 skelina fyrir x64 (flýtileið „VS2015 x64 Native Tools stjórn hvetja“) frá upphafsvalmyndinni.

Næst þarftu að búa til, virkja og stilla Python umhverfi. Framkvæmdu eftirfarandi skelskipanir í „VS2015 x64 stjórnun hvetja“ (leiðréttu slóðirnar í samræmi við stöðu þína).

pip3 setja upp -U virtualenv
virtualenv --system-site-pakkar C: \ Notendur \ amsokol \ tensorflow-v1.11
C: \ Notendur \ amsokol \ tensorflow-v1.11 \ Scripts \ active.bat

Skelin þín ætti að líta svona út eftir skipanirnar:

Settu upp lögboðna Python pakka:

pip3 setja upp sex dofið hjól
pip3 setja upp keras_applications == 1.0.5 - no-deps
pip3 setja upp keras_preprocessing == 1.0.3 - no-deps

Keyrðu „pip3 listann“ til að ganga úr skugga um að lögboðnu pakkarnir séu uppsettir:

Það er allt í bili. Ekki loka skálinni.

Skref 8: Klóna TensorFlow frumkóðann og notaðu lögboðna plásturinn

Fyrst þarftu að velja möppuna þar sem þú vilt að TensorFlow kóðinn verði klóna. Í mínu tilfelli er það "C: \ Users \ amsokol \ Development \ tensorflow-build". Aftur að skelinni og hlaupið:

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

Klón kóðinn:

Git klón https://github.com/tensorflow/tensorflow

Checkout nýjasta útgáfa 1.11:

cd tensorflow
git checkout v1.11.0

Nú höfum við heimildir.

Það er BUG í eigin bókasafni þriðja aðila. Við þurfum að laga það áður en við byggjum.
  • Sæktu plásturinn hér og vistaðu hann með skjalanafninu eigen_half.patch í þriðju partý möppunni
  • Bæta við patch_file = clean_dep ("// third_party: eigen_half.patch"), lína við "eigen_archive" hlutann í tensorflow / workspace.bzl skránni.

Niðurstaðan í tensorflow / workspace.bzl skránni ætti að líta svona út:

... tf_http_archive (name = "eigen_archive", urls = ["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", strip_prefix = "eigen-eigen-clean ("// þriðja_aðili: eigen_half.patch"),) ...

Gjört.

Skref 9: stilltu byggingarfæribreyturnar

Gakktu úr skugga um að við séum í frumrótarmöppunni:

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

Keyrðu stillibúnaðinn:

python ./configure.py

Fyrst verður þú beðinn um staðsetningu Python. Ýttu á Enter til að halda sjálfgefnu gildi:

... þú hefur sett upp bazel 0.17.2.
Vinsamlegast tilgreindu staðsetningu Python. [Standard er C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Þú verður þá beðinn um leið að Python bókasafninu. Ýttu á Enter til að halda sjálfgefnu gildi:

Rakning (síðasta símtal síðast): skrá " ", Lína 1, inn AttributeError: Module 'Site' hefur engan eiginleika 'getsitepackages' Fann mögulegar Python bókasafnsstíga: C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-pakkar Vinsamlegast sláðu inn slóð Python bókasafnsins. Staðall er [C: \ Notendur \ amsokol \ tensorflow-v1.11 \ Lib \ síða-pakkar]

Þá verður þú beðinn um stuðning nGraph. Við þurfum þess ekki. Ýttu á "n":

Viltu byggja TensorFlow með nGraph stuðningi? [Y / N]: n n Stuðningur við mynd er ekki virkur fyrir TensorFlow.

Þá biður það um CUDA stuðning:

Viltu byggja TensorFlow með CUDA stuðningi? [Y / N]:

Svaraðu „y“ ef þú vilt nota GPU hröðun. Annars er stutt á „n“.

Ef já fyrir CUDA stillitækið er spurt viðbótar spurninga:
Svaraðu 10.0 sem CUDA SDK útgáfa:
Vinsamlegast tilgreindu CUDA SDK útgáfuna sem þú vilt nota. [Látið autt vera við CUDA 9.0 sjálfgefið]: 10.0
Ýttu á Enter til að hætta við sjálfgefna staðsetningu CUDA verkfærakortsins:
Vinsamlegast tilgreindu staðsetninguna þar sem CUDA 10.0 verkfærakistan er sett upp. Sjá README.md fyrir frekari upplýsingar. [Sjálfgefið er C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Svaraðu 7.3.1 sem cuDNN útgáfu:
Vinsamlegast tilgreindu cuDNN útgáfu. [Láttu autt vera til að nota cuDNN 7.0 sjálfgefið]: 7.3.1
Ýttu á Enter til að hætta við sjálfgefna staðsetningu cuDNN bókasafns:
Vinsamlegast sláðu inn staðinn þar sem cuDNN 7 bókasafnið er sett upp. Sjá README.md fyrir frekari upplýsingar. [Sjálfgefið er C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Næsta spurning varðar CUDA reikniaðgerðir sem hægt er að nota til að smíða. Þú getur fundið tölvugetu tækisins á: https://developer.nvidia.com/cuda-gpus. Ég er með GTX 1070 svo ég svara 6.1:
Bjóddu upp lista yfir Cuda stærðfræðiaðgerðir sem aðgreindar eru með kommum sem þú vilt byggja með. Þú getur fundið tölvugetu tækisins á: https://developer.nvidia.com/cuda-gpus. Athugaðu að hver viðbótarútreikningsaðgerð eykur sköpunartímann og tvöfaldan stærð verulega. [Sjálfgefið er: 3.5.7.0]: 6.1

Næsta spurning er að setja hagræðingarfána. Ég er með 6. kynslóð Intel örgjörva, svo ég svara / arch: AVX2:

Vinsamlegast tilgreindu hagræðingarfána sem nota á við samsetningu ef Basel valkosturinn „--config = opt“ er tilgreindur. [Sjálfgefið er / arch: AVX]: / arch: AVX2

Síðasta spurningin er um Eigen. Svaraðu með „y“. Það dregur verulega saman samsetningu tíma.

Viltu víkja yfir þínum eigin sterku línu fyrir nokkrar C ++ safnanir til að draga úr tímatökunni? [Y / n]: Y Eigen skrifaði sterklega yfir inline.

Uppsetningu lokið. Byggjum.

Skref 10: byggðu TensorFlow úr heimildum

Gakktu úr skugga um að við séum í frumrótarmöppunni:

cd C: \ Notendur \ amsokol \ Development \ tensorflow-build \ tensorflow
Það tekur langan tíma að búa til. Ég mæli eindregið með því að slökkva á vírusvarnarhugbúnaði, þar á meðal Windows Defender Antivirus rauntímavörn.

Framkvæma smíði:

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

Hallaðu þér aftur og slakaðu á í einhvern tíma.

Skref 11: Búðu til TensorFlow hjólaskrá fyrir Python 3.6

Keyrðu skipunina til að búa til python hjólaskrá:

mkdir .. \ út
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ út

Það bregst:

Það er þekkt vandamál. Horfðu á möppuna „bazel-bin \ tensorflow \ tools \ pip_package“. Það inniheldur skrána „simple_console_for_windows.zip“ með enga lengd. Það er vandamálið. Bazel inniheldur 32-bita zip gagnsemi sem mun mistakast í 2GB stærri skrá. Sjá tengla til að fá nánari upplýsingar og lausn:

  • 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

Það eru skref til að laga vandamálið:

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

Opnaðu skrána „simple_console_for_windows.zip-0.params“ og fjarlægðu línuna með „mnist.zip“:

...
runfiles / org_tensorflow / tensorflow / contrib / eager / python / examples / gan / mnist.zip = bazel-out / x64_windows-opt / bin / tensorflow / contrib / eager / python / examples / gan / mnist.zip
...
Það hjálpar mér. Ef það hjálpar þér ekki skaltu einfaldlega fjarlægja aðrar línur með zip skrám (sjá upplýsingar hér). Tilgangurinn með þessari aðgerð er að halda því að simple_console_for_windows.zip sé minna en 2 GB að lengd.

Eyða tómu skránni „simple_console_for_windows.zip“.

Næst skaltu skoða heimamöppuna þína. Þú þarft að finna möppuna sem heitir „_bazel_ "Sjá. Í mínu tilfelli er það" _bazel_amsokol ". Það inniheldur möppur með smíðaskrár. Í mínu tilfelli er það" lx6zoh4k ". Aftur í skel keyrslu (í samræmi við möppunöfnin þín rétt):

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

Búðu til skrána „simple_console_for_windows.zip“ handvirkt:

ytri \ bazel_tools \ tools \ zip \ zipper \ 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

Keyrðu skipunina til að búa til python hjólaskrá:

cd C: \ Notendur \ amsokol \ Development \ tensorflow-build \ tensorflow
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ út

Það býr til skrána tensorflow-1.11.0-cp36-cp36m-win_amd64.whl í möppunni „.. \ out“.

Skref 12: Settu upp TensorFlow hjólaskrána fyrir Python 3.6 og athugaðu niðurstöðuna

Keyrðu skipunina til að setja upp Python hjólaskrána:

pip3 setja upp ... \ out \ tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

Farðu úr Tensorflow skránni

cd ..

Til að athuga niðurhalshandritið hér eða til að keyra það með því að afrita og líma:

Flytja inn Tensorflow sem tf halló = tf.constant ('Halló, TensorFlow!') Session = tf.Session () prenta (session.run (halló))

Ef kerfið framleiðir eftirfarandi er allt í lagi:

Halló TensorFlow!

Framleiðsla mín:

Þú hefur nú sett TensorFlow upp á Windows tölvu.

Láttu mig vita í athugasemdunum hér að neðan ef það virkaði fyrir þig. Eða ef þú hefur einhverja galla. Margar þakkir!