[Atjaunināt 1] Kā izveidot un instalēt TensorFlow GPU / CPU operētājsistēmai Windows no avota koda, izmantojot Bazel un Python 3.6

Šis ir mana iepriekšējā stāsta atjauninājums. Kas jauns šeit:

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

Ir rokasgrāmata oficiālajā vietnē. Tas nav ļoti izsmeļošs, bet dažreiz noderīgs.

Kopsavilkums

  1. Instalējiet Windows operētājsistēmu Git
  2. Instalējiet Bazel
  3. Instalējiet MSYS2 x64 un komandrindas rīkus
  4. Instalējiet Visual Studio 2017 būvēšanas rīkus, ieskaitot Visual Studio 2015 būvēšanas rīkus
  5. Instalējiet Python 3.6 64 bitus
  6. Instalējiet NVIDIA CUDA 10.0 un cuDNN 7.3 (GPU paātrināšanai)
  7. Konfigurējiet būvēšanas vidi
  8. Klonējiet TensorFlow v1.11 avota kodu un piemērojiet obligāto ielāpu
  9. Konfigurējiet būvēšanas parametrus
  10. Veidojiet TensorFlow no avotiem
  11. Izveidojiet TensorFlow riteņu failu Python 3.6
  12. Instalējiet TensorFlow riteņu failu Python 3.6 un pārbaudiet rezultātu

1. darbība: instalējiet Git operētājsistēmai Windows

Lejupielādējiet un instalējiet sistēmu Git operētājsistēmai Windows. Es to ņemu šeit. Pārliecinieties, ka ceļš uz git.exe ir pievienots% PATH% vides mainīgajam. Es instalēju Git uz

C: \ Bin \ Git

šīs apmācības mape.

2. solis: instalējiet MSYS2 x64 un komandrindas rīkus

Šeit lejupielādējiet un instalējiet 64 bitu izplatīšanu. Bazel izmanto avotu veidošanai grep, patch, unzipand citus Unix rīku portus. Jūs varat mēģināt atrast atsevišķus bināros failus katram no tiem, bet es labāk izvēlos izmantot MSYS2 paketi. Es to instalēju

C: \ bin \ msys64

šīs apmācības mape. Vides mainīgajam% PATH% jāpievieno mape ar rīkiem. Manā gadījumā tas ir “C: \ Bin \ msys64 \ usr \ bin”.

Startējiet saīsni “MSYS2 MinGW 64 bitu” no Start Menu. Palaist šo komandu, lai atjauninātu (ja tas prasa, restartējiet “MSYS2 MinGW 64-bit”):

pacman -Su

Tad palaist:

pacman -Su

Instalēšanai ir nepieciešami instalēšanas rīki:

pacman -S plāksteris unzip

Aizveriet “MSYS2 MinGW 64 bitu” apvalku ar komandu “exit”. Mums tas vairs nav vajadzīgs.

3. darbība: instalējiet Visual Studio 2017 būvēšanas rīkus, ieskaitot Visual Studio 2015 veidošanas rīkus

Lai izveidotu TensorFlow v1.11, no Visual Studio 2017 Build Tools ir jāinstalē “VC ++ 2015.3 v14.00 (v140) toolset for desktop”:

4. solis: instalējiet Bazel

Lejupielādējiet jaunāko Bāzeles šeit. Meklējiet failu bazel- -windows-x86_64.exe. Es esmu izmēģinājis šo apmācību ar rāmīti 0.17.2. Pārdēvējiet bināro uz bazel.exe un pārvietojiet to uz direktoriju% PATH%, lai jūs varētu palaist Bazel, ierakstot bazel jebkurā direktorijā. Problēmu gadījumā skatiet sīkāku informāciju par Bazel instalēšanu operētājsistēmai Windows x64.

Pievienojiet BAZEL_SH globālo vides mainīgo bash atrašanās vietai. Mans ceļš ir

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

Pievienojiet “VC ++ 2015.3 v14.00 (v140) instrumentu kopu darbvirsmai” globālās vides mainīgo BAZEL_VC rīku ķēdes atrašanās vietai:

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

5. darbība: instalējiet Python 3.6 64 bitus

TensorFlow neatbalsta Python 3.7, tāpēc jums jāinstalē 3.6 versija.
Izskatās, ka TensorFlow v1.11 neatbalsta Anaconda / Miniconda, lai tā vairāk tiktu veidota - man rodas dīvaina kļūda. Tāpēc būvniecībai izmantoju Python virtuālo vidi.

Python 3.6 ir pieejams lejupielādei šeit. Instalējiet to un pievienojiet atrašanās vietai python.exe mainīgajam% PATH%.

6. darbība: Instalējiet NVIDIA CUDA 10.0 un cuDNN 7.3 (GPU paātrināšanai)

Šī sadaļa ir aktuāla, ja jums ir NVIDIA grafikas karte, kas atbalsta CUDA. Pretējā gadījumā izlaidiet šo sadaļu.
Ja nepieciešama palīdzība, skatiet soli pa solim CUDA instalēšanu šeit. Es kopēju-ielīmēju šo rokasgrāmatu, bet sagrieztu dažas detaļas.

Dodieties uz vietni https://developer.nvidia.com/cuda-downloads un lejupielādējiet CUDA 10.0 Installer for Windows [jūsu versija]. Man versija ir Windows 10.

Instalējiet to noklusējuma vietā ar noklusējuma iestatījumiem, bet noņemiet atzīmi no VisualStudio integrācijas opcijas. Tas atjauninās jūsu GPU draiveri, ja nepieciešams, un atsāknēšana.

Pāriet uz palaist (Win + R) tipa cmd

Šī komanda pārbaudīs nvcc versiju un pārliecinās, ka tā ir iestatīta ceļa vides mainīgajā.

nvcc - pārvēršana

Nākamais goto https://developer.nvidia.com/cudnn (nepieciešama dalība).

Pēc pieteikšanās lejupielādējiet:

cuDNN v7.3.1 Library for Windows [jūsu versija] for me Windows 10. Dodieties lejupielādēt mapi un izvilkt zip failu.

Iet iekšā izvilktajā mapē un nokopējiet visus failus un mapes no cuda mapes (piemēram, atkritumu tvertnē, iekļaujiet, lib) un ielīmējiet uz “C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0”.

Pēdējais solis šeit ir vides mainīgajam% PATH% pievienot “C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64”.

7. darbība. Konfigurējiet izveidošanas vidi

Startējiet VC ++ 2015 apvalku x64 (saīsne “VS2015 x64 Native Tools Command Prompt”) no Start Menu.

Tālāk jums jāizveido, jāaktivizē un jākonfigurē Python vide. Palaist iekšpusē esošajās “VS2015 x64 Native Tools Command Prompt” čaulas komandās (pareizie ceļi atbilstoši jūsu atrašanās vietai).

pip3 instalēt -U virtualenv
virtualenv - sistēma-vietne-pakotnes C: \ Lietotāji \ amsokol \ tensorflow-v1.11
C: \ Lietotāji \ amsokol \ tensorflow-v1.11 \ Skripti \ aktivizēt.bat

Jūsu čaulai vajadzētu izskatīties šādi pēc komandu pielietošanas:

Instalējiet obligātās Python paketes:

pip3 uzstādīt sešu nervozs riteni
pip3 instalēt keras_applications == 1.0.5 - ne-deps
pip3 instalēt keras_preprocessing == 1.0.3 - ne-deps

Palaidiet “pip3 list”, lai nodrošinātu obligāto pakotņu instalēšanu:

Tas pagaidām ir viss. Neaizveriet apvalku.

8. darbība: Klonējiet TensorFlow avota kodu un uzlieciet obligāto ielāpu

Vispirms jāizvēlas mape, kurā klonēt TensorFlow avota kodu. Manā gadījumā tā ir “C: \ Users \ amsokol \ Development \ tensorflow-build”. Atpakaļ uz apvalku un palaist:

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

Klona avota kods:

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

Izrakstīšanās jaunākā no 1.11 versijas:

cd tensorflow
Git Checkout v1.11.0

Tagad mums ir avoti.

Trešās puses bibliotēkā ir BUG. Pirms būvēšanas tas ir jālabo.
  • Lejupielādējiet plāksteri šeit un saglabājiet ar faila nosaukumu eigen_half.patch mapē third_party
  • Pievienojiet patch_file = clean_dep (“// third_party: eigen_half.patch”), rinda līdz eigen_archive sadaļai tensorflow / workspace.bzl failam.

Rezultātam failā tensorflow / workspace.bzl jābūt šādam:

...
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 ("// trešais_partijs: eigen.BUILD"),
  patch_file = clean_dep ("// trešais_partijs: eigen_half.patch"),
)
...

Gatavs.

9. darbība: konfigurējiet būvēšanas parametrus

Pārliecinieties, ka atrodamies avota koda saknes mapē:

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

Palaist konfigurētāju:

python ./configure.py

Vispirms tiek jautāts par Python atrašanās vietu. Nospiediet Enter, lai atstātu noklusējuma vērtību:

...
Jums ir instalēta vietne 0.17.2.
Lūdzu, norādiet pitonas atrašanās vietu. [Noklusējums ir C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Tad tā jautā Python bibliotēkas ceļu atrašanās vietu. Nospiediet Enter, lai atstātu noklusējuma vērtību:

Izsekošana (pēdējais zvans pēdējais):
  Fails "", 1. rinda, 
AttributeError: modulim “site” nav atribūta “getsitepackages”
Atrasti iespējamie Python bibliotēkas ceļi:
  C: \ Lietotāji \ amsokol \ tensorflow-v1.11 \ Lib \ vietņu paketes
Lūdzu, ievadiet vēlamo Python bibliotēkas ceļu, ko izmantot. Noklusējums ir [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-Paketes]

Tad tas jautā par nGraph atbalstu. Mums tas nav vajadzīgs. Nospiediet “n”:

Vai vēlaties izveidot TensorFlow ar nGraph atbalstu? [jā / n]: n
TensorFlow netiks iespējots nGraph atbalsts.

Tad tas jautā par CUDA atbalstu:

Vai vēlaties izveidot TensorFlow ar CUDA atbalstu? [jā / n]:

Atbildiet “y”, ja plānojat izmantot GPU paātrinājumu. Pretējā gadījumā nospiediet “n”.

Gadījumā, ja jā, CUDA konfigurators uzdod papildu jautājumus:
Atbilde uz 10.0 kā CUDA SDK versija:
Lūdzu, norādiet CUDA SDK versiju, kuru vēlaties izmantot. [Atstājiet tukšu, lai pēc noklusējuma iestatītu CUDA 9.0]: 10.0
Nospiediet Enter, lai atstātu CUDA rīkkopa noklusējuma atrašanās vietu:
Lūdzu, norādiet vietu, kur ir instalēts CUDA 10.0 rīkkopa. Plašāku informāciju skatiet README.md. [Noklusējums ir C: / Program Files / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Atbilde uz 7.3.1 kā cuDNN versija:
Lūdzu, norādiet cuDNN versiju, kuru vēlaties izmantot. [Atstājiet tukšu pēc noklusējuma uz cuDNN 7.0]: 7.3.1
Nospiediet Enter, lai atstātu noklusējuma cuDNN bibliotēkas atrašanās vietu:
Lūdzu, norādiet vietu, kur ir instalēta cuDNN 7 bibliotēka. Plašāku informāciju skatiet README.md. [Noklusējums ir C: / Program Files / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Nākamais jautājums ir par CUDA aprēķināšanas iespējām, ar kurām veidot. Ierīces aprēķināšanas iespējas varat atrast vietnē https://developer.nvidia.com/cuda-gpus. Man ir GTX 1070, tāpēc es atbildu uz 6.1:
Lūdzu, norādiet ar komatu atdalītu Cuda skaitļošanas iespēju sarakstu, kuru vēlaties izveidot.
Ierīces aprēķināšanas iespējas varat atrast vietnē https://developer.nvidia.com/cuda-gpus.
Lūdzu, ņemiet vērā, ka katra papildu aprēķināšanas iespēja ievērojami palielina jūsu veidošanas laiku un bināro lielumu. [Noklusējums ir: 3.5,7.0]: 6.1

Nākamais jautājums ir iestatīt optimizācijas karodziņus. Man ir 6. paaudzes Intel centrālais procesors, tāpēc es atbildu / arku: AVX2:

Lūdzu, norādiet optimizācijas karodziņus, kas jāizmanto kompilācijas laikā, kad ir norādīta bazel opcija "--config = opt". [Noklusējums ir / arch: AVX]: / arch: AVX2

Pēdējais jautājums ir par Eigen. Atbilde “y”. Tas dramatiski samazina kompilēšanas laiku.

Vai vēlaties ignorēt spēcīgu C ++ kompilācijas inline, lai samazinātu kompilācijas laiku? [Y / n]: y
Eirēna spēcīgā līnija tika ignorēta.

Konfigurācija ir pabeigta. Ļauj būvēt.

10. darbība: izveidojiet TensorFlow no avotiem

Pārliecinieties, ka atrodamies avota koda saknes mapē:

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
Veidošana prasa ilgu laiku. Es ļoti iesakām izslēgt pretvīrusu programmatūru, ieskaitot Windows Defender Antivirus aizsardzību reāllaikā.

Palaist būvēšanu:

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

Sēdēt un atpūsties kādu laiku.

11. darbība: izveidojiet TensorFlow riteņu failu Python 3.6

Palaist komandu Python wheel faila izveidošanai:

mkdir .. \ ārā
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

Tas neizdodas:

Ir zināma problēma. Apskatiet mapi “bazel-bin \ tensorflow \ tools \ pip_package”. Tas satur nulles garuma failu “simple_console_for_windows.zip”. Tā ir problēma. Bazel satur 32 bitu zip utilītu, kas neizdodas, ja fails ir lielāks par 2 GB. Skatiet saites, lai iegūtu sīkāku informāciju un risinājumu:

  • 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

Problēmas novēršanai ir jāveic šādas darbības:

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

Atveriet failu “simple_console_for_windows.zip-0.params” un noņemiet rindiņu ar “mnist.zip”:

...
palaistie faili / org_tensorflow / tensorflow / hozzájár / eager / python / piemēri / gan / mnist.zip = bazel-out / x64_windows-opt / bin / tensorflow / hozzájár / eager / python / piemēri / gan / mnist.zip
...
Man tas palīdz. Ja tas nepalīdz, vienkārši noņemiet citas rindas ar zip failiem (sīkāku informāciju skatiet šeit). Šīs aktivitātes mērķis ir padarīt “simple_console_for_windows.zip” garumu mazāku par 2 GB.

Izdzēsiet tukšu failu “simple_console_for_windows.zip”.

Tālāk apskatīsim jūsu mājas mapi. Jums jāredz mape ar nosaukumu, piemēram, “_bazel_ ”. Manā gadījumā tas ir “_bazel_amsokol”. Tajā ir mape ar veidotiem failiem. Manā gadījumā tas ir “lx6zoh4k”. Atpakaļ uz korporācijas izpildi (labojiet atbilstoši mapes nosaukumiem):

cd C: \ lietotāji \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

Manuāli izveidojiet “simple_console_for_windows.zip” failu:

ārējais \ bazel_tools \ tools \ zip \ rāvējslēdzējs \ 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

Palaist komandu Python wheel faila izveidošanai:

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

Tas mapē “.. \ out” izveido tensorflow-1.11.0-cp36-cp36m-win_amd64.whl failu.

12. darbība: Instalējiet TensorFlow riteņu failu Python 3.6 un pārbaudiet rezultātu

Palaist komandu Python wheel faila instalēšanai:

pip3 instalēt .. \ out \ tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

Atstājiet direktoriju “tensorflow” (kļūdas rodas dažreiz, palaižot Python skriptus Tensoflow avota koda mapē - es nezinu iemeslu):

CD ..

Lai šeit pārbaudītu lejupielādes skriptu vai kopētu, ielīmētu un palaistu:

importēt tensorflow kā tf
sveiki = tf.constant ('Sveiki, TensorFlow!')
sesija = tf.Sesija ()
drukāt (session.run (hello))

Ja sistēma izvada šādus datus, tad viss ir kārtībā:

Labdien, TensorFlow!

Mana produkcija:

Tagad esat veiksmīgi instalējis TensorFlow Windows mašīnā.

Paziņojiet man komentāros zemāk, ja tas jums izdevās. Vai arī, ja ir kādas kļūdas. Paldies!