[Përditësimi 1] Krijimi dhe instalimi i TensorFlow GPU / CPU për Windows nga kodi burimor me Bazel dhe Python 3.6

Ky është një azhurnim i historisë time të mëparshme. Çfarë ka të re këtu:

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

Ka udhëzues në faqen zyrtare. Nuk është shumë gjithëpërfshirës, ​​por është i dobishëm disa herë.

Përmbledhje

  1. Instaloni Git për Windows
  2. Instaloni Bazel
  3. Instaloni MSYS2 x64 dhe mjetet e rreshtit të komandës
  4. Instaloni Veglat e Ndërtimit të Visual Studio 2017, duke përfshirë Veglat e Ndërtimit të Visual Studio 2015
  5. Instaloni Python 3.6 64-bit
  6. Instaloni NVIDIA CUDA 10.0 dhe cuDNN 7.3 (për përshpejtimin e GPU)
  7. Konfiguroni mjedisin e ndërtuar
  8. Kloni kodin burimor TensorFlow v1.11 dhe aplikoni patch-in e detyrueshëm
  9. Konfiguroni parametrat e ndërtimit
  10. Ndërtoni TensorFlow nga burimet
  11. Krijoni një skedar rrote TensorFlow për Python 3.6
  12. Instaloni skedarin e rrotave TensorFlow për Python 3.6 dhe kontrolloni rezultatin

Hapi 1: Instaloni Git për Windows

Shkarkoni dhe instaloni Git për Windows. Unë e çoj këtu. Sigurohuni që rruga për në git.exe është shtuar në ndryshoren e mjedisit% PATH%. Po instaloj Git në

C: \ Bin \ Git

Dosje për këtë manual.

Hapi 2: Instaloni MSYS2 x64 dhe Tools Line Command

Shkarkoni dhe instaloni shpërndarjen 64-bit këtu. Bazel përdor grep, patch, unzipand dhe porte të tjera nga mjetet Unix për të ndërtuar burime. Mund të përpiqeni të gjeni binare të pavarura për secilën prej tyre, por unë preferoj të përdor paketën MSYS2. Unë e instaloj atë në

C: \ Bin \ msys64

Dosje për këtë manual. Ju duhet të shtoni një dosje mjetesh në ndryshoren e mjedisit% PATH%. Në rastin tim është "C: \ Bin \ msys64 \ usr \ bin".

Filloni lidhjen "MSYS2 MinGW 64-Bit" nga menyja e fillimit. Për të azhurnuar, ekzekutoni komandën e mëposhtme (rinisni MSYS2 MinGW 64-bit kur të kërkohet):

Pacman Syu

Pastaj drejto:

Pacman -Su

Mjetet e instalimit kërkohen për ndërtimin:

Zbërthej patch Pacman

Mbyllni MSYS2 MinGW shell 64-bit me komandën "dalje". Nuk na duhet më.

Hapi 3: Instaloni Veglat e Ndërtimit të Visual Studio 2017, duke përfshirë Veglat e Ndërtimit të Visual Studio 2015

Ne duhet të instalojmë VC ++ 2015.3 v14.00 (v140) për grupin e veglave desktop nga Visual Studio 2017 Build Tools për të ndërtuar TensorFlow v1.11:

Hapi 4: instaloni Bazel

Shkarkoni Bazelin më të fundit këtu. Shikoni për skedarin bazel- -Windows-x86_64.exe. Unë e provova këtë udhëzues me Bazel 0.17.2. Riemërtoni binarin në bazel.exe dhe zhvendoseni në një direktori në% PATH% në mënyrë që të mund të ekzekutoni Bazel duke shtypur bazel në çdo direktori. Për detaje mbi instalimin e Bazel për Windows x64, ju lutemi referojuni problemeve.

Shtoni ndryshoren globale të mjedisit BAZEL_SH për pozicionin e bashit. Mënyra ime është

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

Shtoni ndryshoren globale të mjedisit BAZEL_VC për grupin e veglave "VC ++ 2015.3 v14.00 (v140) për desktop":

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

Hapi 5: Instaloni Python 3.6 64-bit

TensorFlow nuk e mbështet Python 3.7, kështu që do të duhet të instaloni versionin 3.6.
Duket sikur TensorFlow v1.11 nuk e mbështet më Anaconda / Miniconda për ndërtime - Po marr një gabim të çuditshëm. Kjo është arsyeja pse unë përdor mjedisin virtual Python për të krijuar.

Python 3.6 është në dispozicion për shkarkim këtu. Instaloni atë dhe shtoni vendndodhjen python.exe në ndryshoren% PATH%.

Hapi 6: Instaloni NVIDIA CUDA 10.0 dhe cuDNN 7.3 (për përshpejtimin e GPU)

Ky seksion është aktual nëse keni një kartë grafike NVIDIA që mbështet CUDA. Përndryshe, kaloni këtë pjesë.
Një instalim hap pas hapi i CUDA është në dispozicion këtu nëse keni nevojë për ndihmë. Po kopjoj këtë udhëzues, por po heq disa detaje.

Shkoni te https://developer.nvidia.com/cuda-downloads dhe shkarkoni instaluesin CUDA 10.0 për Windows [versioni juaj]. Për mua versioni është Windows 10.

Instaloni atë në direktorinë e paracaktuar me cilësimet e paracaktuara, por çaktivizoni opsionin e integrimit VisualStudio. Drejtuesi i GPU do të azhurnohet dhe do të rindizet nëse është e nevojshme.

Ekzekutoni komandën cmd (Win + R)

Komanda e mëposhtme kontrollon për një version të nvcc dhe siguron që ajo të vendoset në ndryshoren e mjedisit të shtegut.

nvcc - shndërrim

Shkoni në https://developer.nvidia.com/cudnn (kërkohet anëtarësim).

Pas hyrjes, shkarkoni:

cuDNN v7.3.1 Biblioteka për Windows [versioni juaj] për mua Windows 10. Shkoni te dosja që shkarkuat dhe nxirrni skedarin zip.

Shkoni në dosjen e nxjerrë dhe kopjoni të gjithë skedarët dhe dosjet nga dosja e ndryshme (p.sh. bin, përfshijnë, lib) dhe ngjitini ato në "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 "një.

Hapi i fundit është shtimi i "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ ekstra \ CUPTI \ libx64" në ndryshoren e mjedisit% PATH%.

Hapi 7: konfiguroni mjedisin e ndërtuar

Filloni predhën VC ++ 2015 për x64 (shkurtorja "Promo e komandës" VS2015 x64 Native Tools ") nga menyja startuese.

Tjetra, duhet të krijoni, aktivizoni dhe konfiguroni një mjedis Python. Ekzekutoni komandat e mëposhtme shell në "VS2015 x64 Native Tools Command Prompt" (korrigjoni shtigjet sipas pozicioneve tuaja).

instalimi i pip3 -U virtualenv
virtualualenv --system-site-packages C: \ Përdoruesit \ amsokol \ tensorflow-v1.11
C: \ Përdoruesit \ amsokol \ tensorflow-v1.11 \ Skripte \ activ.bat

Shellja juaj duhet të duket kështu pasi të zbatohen komandat:

Instaloni paketat e detyrueshme Python:

pip3 instaloni gjashtë rrota të ngurta
pip3 instaloni keras_applications == 1.0.5 - jo-deps
pip3 instaloni keras_preprocesing == 1.0.3 - jo-deps

Ekzekutoni "listën pip3" për t'u siguruar që paketat e detyrueshme janë instaluar:

Kjo është e gjitha për tani. Mos e mbyllni tasin.

Hapi 8: Klononi kodin burimor TensorFlow dhe aplikoni patch-in e detyrueshëm

Së pari, duhet të zgjidhni dosjen ku dëshironi të klonohet kodi burimor TensorFlow. Në rastin tim është "C: \ Users \ amsokol \ Development \ tensorflow-build". Kthehu tek guaska dhe drejto:

cd C: \ Përdoruesit \ amsokol \ Zhvillimi \ tensorflow-ndërtuar

Kodi burimor i klonit:

Kloni i lëvizjes https://github.com/tensorflow/tensorflow

Dalja në versionin e fundit 1.11:

censurimi i cd
git arka v1.11.0

Tani kemi burime.

Ekziston një BUG në bibliotekën e tyre të palëve të treta. Ne duhet ta rregullojmë atë para se të ndërtojmë.
  • Shkarkoni patch-in këtu dhe ruajeni me emrin e skedarit eigen_half.patch në dosjen third_party
  • Shto patch_file = clean_dep ("// partia e tretë: eigen_half.patch"), rreshti te seksioni "eigen_archive" i skedarit tensorflow / workspace.bzl.

Rezultati në skedarin tensorflow / workspace.bzl duhet të duket kështu:

... 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 ("// partia e tretë: eigen_half.patch"),) ...

Bërë

Hapi 9: konfiguroni parametrat e ndërtimit

Sigurohuni që jemi në dosjen rrënjë të kodit burim:

cd C: \ Përdoruesit \ amsokol \ Zhvillim \ tensorflow-ndërtuar \ tensorflow

Drejtoni konfiguruesin:

python. / konfiguro.py

Së pari do t'ju kërkohet vendndodhja e Python. Shtypni Enter për të mbajtur vlerën e paracaktuar:

... keni instaluar bazel 0.17.2.
Ju lutemi specifikoni vendndodhjen e Python. [Standardi është C: \ Përdoruesit \ amsokol \ tensorflow-v1.11 \ Skripte \ python.exe]:

Më pas do t'ju kërkohet rruga për në bibliotekën Python. Shtypni Enter për të mbajtur vlerën e paracaktuar:

Ndjekja (thirrja e fundit e fundit): skedari " ", Linja 1, në Gabimi i atributit: Moduli 'Site' nuk ka atribut 'getsitepackages' Gjeten shtigje të mundshme të bibliotekës Python: C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages Ju lutemi shkruani rrugën e dëshiruar të bibliotekës Python. Standardi është [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages]

Atëherë do t'ju kërkohet mbështetje nga nGraph. Nuk na duhet. Shtypni "n":

Dëshironi të ndërtoni TensorFlow me mbështetjen nGraph? [Y / N]: n Mbështetja e grafikut nuk është aktivizuar për TensorFlow.

Pastaj kërkon mbështetjen e CUDA:

Dëshironi të ndërtoni TensorFlow me mbështetjen e CUDA? [Y / N]:

Përgjigjuni "y" nëse doni të përdorni përshpejtimin e GPU. Përndryshe, shtypni "n".

Nëse po për konfiguruesin CUDA, bëhen pyetje shtesë:
Përgjigju 10.0 si CUDA SDK version:
Ju lutemi tregoni versionin CUDA SDK që dëshironi të përdorni. [Lëreni bosh për të paracaktuar në CUDA 9.0]: 10.0
Shtypni Enter për të dalë nga vendndodhja e paracaktuar e paketës së mjeteve CUDA:
Ju lutemi specifikoni vendin ku është instaluar paketa e mjeteve CUDA 10.0. Shihni README.md për më shumë informacion. [Default është C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Përgjigja 7.3.1 si version i cuDNN:
Ju lutemi tregoni versionin e dëshiruar cuDNN. [Lëreni bosh për të përdorur cuDNN 7.0 si parazgjedhje]: 7.3.1
Shtypni Enter për të dalë nga vendndodhja e paracaktuar e bibliotekës cuDNN:
Ju lutemi shkruani vendin ku është instaluar biblioteka cuDNN 7. Shihni README.md për më shumë informacion. [Default është C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Pyetja tjetër ka të bëjë me funksionet aritmetike CUDA që mund të përdoren për të ndërtuar. Kapacitetin informatik të pajisjes suaj mund ta gjeni në: https://developer.nvidia.com/cuda-gpus. Unë kam GTX 1070 kështu që unë përgjigjem 6.1:
Siguroni një listë të funksioneve të matematikës Cuda të ndara me presje me të cilat dëshironi të ndërtoni. Kapacitetin informatik të pajisjes suaj mund ta gjeni në: https://developer.nvidia.com/cuda-gpus. Ju lutemi vini re se secili funksion shtesë i llogaritjes rrit kohën e krijimit dhe madhësinë binare në mënyrë të konsiderueshme. [Default është: 3.5.7.0]: 6.1

Pyetja tjetër është të vendosni flamuj të optimizimit. Unë kam një CPU të gjeneratës së 6-të Intel, kështu që përgjigjem / harkoj: AVX2:

Ju lutemi specifikoni flamuj të optimizimit që do të përdoren gjatë përpilimit nëse specifikohet opsioni i Bazelit "--config = opt". [Default është / hark: AVX]: / hark: AVX2

Pyetja e fundit ka të bëjë me Eigen. Përgjigju me "y". Zvogëlon në mënyrë drastike kohën e përpilimit.

Dëshironi të anashkaloni linjën tuaj të fortë për disa përmbledhje C ++ për të zvogëluar kohën e përpilimit? [Y / n]: Y Eigen mbishkruhet fuqishëm në linjë.

Konfigurimi ka përfunduar. Le të ndërtojmë.

Hapi 10: ndërtoni TensorFlow nga burimet

Sigurohuni që jemi në dosjen rrënjë të kodit burim:

cd C: \ Përdoruesit \ amsokol \ Zhvillim \ tensorflow-ndërtuar \ tensorflow
Duhet shumë kohë për të krijuar. Unë fuqimisht rekomandoj të fikni softuerin antivirus duke përfshirë mbrojtjen e Windows Defender Antivirus në kohë reale.

Ekzekutoni ndërtimin:

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

Uluni dhe relaksohuni për ca kohë.

Hapi 11: krijoni një skedar rrote TensorFlow për Python 3.6

Drejtoni komandën për të krijuar një skedar Python Wheel:

mkdir .. \ jashtë
bazel-bin \ tensorflow \ mjetet \ pip_package \ build_pip_package .. \ jashtë

Dështon:

Ekziston një problem i njohur. Shikoni dosjen "bazel-bin \ tensorflow \ tools \ pip_package". Ai përmban skedarin "simple_console_for_windows.zip" me gjatësi zero. Ky eshte problemi. Bazel përfshin një program zip 32-bit që do të dështojë në një skedar më të madh 2 GB. Shihni lidhjet për detaje dhe zgjidhjet:

  • 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

Ka hapa për të rregulluar problemin:

CD \ bazel-bin \ tensorflow \ mjetet \ pip_paketa

Hapni skedarin "simple_console_for_windows.zip-0.params" dhe hiqni rreshtin me "mnist.zip":

...
runfiles / org_tensorflow / tensorflow / kontribut / i etur / python / shembuj / gan / mnist.zip = bazel-out / x64_windows-opt / bin / tensorflow / kontribut / i etur / python / shembuj / gan / mnist.zip
...
Më ndihmon. Nëse nuk ju ndihmon, thjesht hiqni linjat e tjera me skedarë zip (shih detajet këtu). Qëllimi i këtij aktiviteti është të mbajë simple_console_for_windows.zip të jetë më pak se 2 GB në gjatësi.

Fshini skedarin bosh "simple_console_for_windows.zip".

Tjetra, hidhni një vështrim në dosjen tuaj të shtëpisë. Ju duhet të gjeni dosjen me emrin "_bazel_ "Shihni. Në rastin tim është" _bazel_amsokol ". Përmban dosje me skedarë të ndërtimit. Në rastin tim është" lx6zoh4k ". Kthehuni në guaskën e ekzekutimit (sipas emrave të dosjeve tuaja saktë):

cd C: \ Përdoruesit \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

Krijoni skedarin "simple_console_for_windows.zip" manualisht:

i jashtëm \ bazel_tools \ mjetet \ zip \ zinxhir \ zinxhir.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 / thjeshtë_konsolë për Windows.zip-0.paramet

Drejtoni komandën për të krijuar një skedar Python Wheel:

cd C: \ Përdoruesit \ amsokol \ Zhvillim \ tensorflow-ndërtuar \ tensorflow
bazel-bin \ tensorflow \ mjetet \ pip_package \ build_pip_package .. \ jashtë

Krijon skedarin tensorflow-1.11.0-cp36-cp36m-win_amd64.whl në dosjen ".. \ out".

Hapi 12: instaloni skedarin e rrotave TensorFlow për Python 3.6 dhe kontrolloni rezultatin

Ekzekutoni komandën për të instaluar skedarin Python Wheel:

instalimi i pip3 .. \ out \ tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

Dilni nga drejtoria Tensorflow

cd ..

Për të kontrolluar skenarin e shkarkimit këtu ose ekzekutoni atë duke kopjuar dhe ngjitur:

Importo Tensorflow si tf hello = tf.constant ('Përshëndetje, TensorFlow!') Sesioni = tf.Session () shtypi (session.run (hello))

Nëse sistemi jep rezultatet e mëposhtme gjithçka është në rregull:

Përshëndetje TensorFlow!

Prodhimi im:

Tani keni instaluar me sukses TensorFlow në një kompjuter Windows.

Më tregoni në komentet më poshtë nëse ka punuar për ju. Ose nëse keni ndonjë të metë. Shumë faleminderit!