[Päivitys 1] Kuinka rakentaa ja asentaa Windowsille TensorFlow GPU / CPU lähdekoodista käyttämällä bazel- ja Python 3.6 -sovelluksia

Tämä on päivitys edelliselle tarinalleni. Mitä uutta täällä on:

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

Siellä on opas virallisella sivustolla. Se ei ole kovin kattava, mutta joskus hyödyllinen.

Yhteenveto

  1. Asenna Git for Windows
  2. Asenna Bazel
  3. Asenna MSYS2 x64 ja komentorivityökalut
  4. Asenna Visual Studio 2017 Build -työkalut, mukaan lukien Visual Studio 2015 Build -työkalut
  5. Asenna Python 3.6 64-bit
  6. Asenna NVIDIA CUDA 10.0 ja cuDNN 7.3 (GPU-kiihdytykseen)
  7. Määritä rakennusympäristö
  8. Klooni TensorFlow v1.11 -lähdekoodi ja lisää pakollinen korjaustiedosto
  9. Määritä rakennusparametrit
  10. Rakenna TensorFlow lähteistä
  11. Luo TensorFlow-pyörätiedosto Python 3.6: lle
  12. Asenna TensorFlow-pyörätiedosto Python 3.6: lle ja tarkista tulos

Vaihe 1: Asenna Git for Windows

Lataa ja asenna Git for Windows. Otan sen täältä. Varmista, että polku osoitteeseen git.exe on lisätty% PATH% -ympäristömuuttujaan. Asennan Gitin

C: \ Bin \ Gitin

tämän opetusohjelman kansio.

Vaihe 2: Asenna MSYS2 x64 ja komentorivityökalut

Lataa ja asenna 64-bittinen jakelu täältä. Bazel käyttää grep-, patch-, andzipand- ja muita Unix-työkaluportteja rakentamaan lähteitä. Voit yrittää löytää erillisiä binaareja jokaiselle, mutta pidän parempana MSYS2-kimppua. Asennan sen

C: \ Bin \ msys64

tämän opetusohjelman kansio. Sinun on lisättävä kansio työkaluilla% PATH% -ympäristömuuttujaan. Se on minun tapauksessani "C: \ Bin \ msys64 \ usr \ bin".

Käynnistä “MSYS2 MinGW 64-bittinen” pikakuvake Käynnistä-valikosta. Suorita seuraava komento päivittääksesi (käynnistä ”MSYS2 MinGW 64-bit” uudelleen, jos se kysyy):

pacman -Suuri

Suorita sitten:

pacman -Su

Asennustyökalut ovat välttämättömiä rakennusta varten:

pacman -S laastari purkaa

Sulje ”MSYS2 MinGW 64-bit” -kuori “exit” -komennolla. Emme tarvitse sitä enää.

Vaihe 3: Asenna Visual Studio 2017 Build -työkalut, mukaan lukien Visual Studio 2015 Build -työkalut

Meidän on asennettava “VC ++ 2015.3 v14.00 (v140) toolset for desktop” Visual Studio 2017 Build Tools -sovelluksesta TensorFlow v1.11: n rakentamiseksi:

Vaihe 4: Asenna Bazel

Lataa viimeisin Basel täältä. Etsi tiedosto bazel- -windows-x86_64.exe. Olen testannut tämän opetusohjelman paahteella 0.17.2. Nimeä binaari uudelleen nimellä bazel.exe ja siirrä se hakemistoon% PATH%, jotta voit suorittaa Bazelin kirjoittamalla bazel mihin tahansa hakemistoon. Katso ongelmien ilmetessä Windows XP: n Bazel-asennuksen yksityiskohdat.

Lisää BAZEL_SH globaali ympäristömuuttuja bash-sijaintiin. Minun polkuni on

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

Lisää BAZEL_VC globaali ympäristömuuttuja kohtaan “VC ++ 2015.3 v14.00 (v140) toolet for desktop” työkaluketjun sijainti:

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

Vaihe 5: Asenna 64-bittinen Python 3.6

TensorFlow ei tue Python 3.7 -sovellusta, joten sinun on asennettava 3.6-versio.
Näyttää siltä, ​​että TensorFlow v1.11 ei tue Anaconda / Miniconda -sovellusta enää rakennuksessa - saan outoja virheitä. Siksi käytän Python-virtuaaliympäristöä rakentamiseen.

Python 3.6 on ladattavissa täältä. Asenna se ja lisää sijainti python.exe-tiedostoon% PATH% -muuttujaan.

Vaihe 6: Asenna NVIDIA CUDA 10.0 ja cuDNN 7.3 (GPU-kiihdytykseen)

Tämä kohta on oikea, jos sinulla on NVIDIA-näytönohjain, joka tukee CUDA: ta. Muussa tapauksessa ohita tämä osa.
Katso CUDA: n askel askeleelta täältä, jos tarvitset apua. Kopioin-liitän tämän oppaan, mutta leikkaan joitain yksityiskohtia.

Siirry osoitteeseen https://developer.nvidia.com/cuda-downloads ja lataa CUDA 10.0 Installer for Windows [oma versio]. Minulle versio on Windows 10.

Asenna se oletusasentoon oletusasetuksilla, mutta poista VisualStudio-integrointivaihtoehdon valinta. Se päivittää GPU-ohjaimen tarvittaessa ja käynnistää uudelleen.

Siirry suorittamaan (Win + R) tyyppi cmd

Seuraava komento tarkistaa nvcc-version ja varmistaa, että se on asetettu polkuympäristömuuttujaan.

nvcc - käännös

Seuraava goto https://developer.nvidia.com/cudnn (Jäsenyys vaaditaan).

Lataa sisäänkirjautumisen jälkeen seuraavat:

cuDNN v7.3.1 -kirjasto Windowsille [oma versio] minulle Windows 10. Siirry ladattu kansioon ja pura zip-tiedosto.

Siirry puretun kansion sisälle ja kopioi kaikki tiedostot ja kansiot cuda-kansiosta (esim. Roskakori, mukaan lukien, lib) ja liitä kansioon “C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0”.

Viimeinen vaihe tässä on lisätä ”C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64”% PATH% -ympäristömuuttujaan.

Vaihe 7: Määritä rakennusympäristö

Käynnistä VC ++ 2015 -kuori x64: lle (“VS2015 x64 Native Tools Command Prompt” -pikakuva) Käynnistä-valikosta.

Seuraavaksi sinun on luotava, aktivoitava ja määritettävä Python-ympäristö. Suorita alla olevat VS2015 x64 Native Tools Command Prompt -kuorikomennot (oikeat polut sijaintisi mukaan).

pip3 install -U virtualenv
virtualenv - systeemisivusto-paketit C: \ Users \ amsokol \ tensorflow-v1.11
C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ activate.bat

Kuoresi pitäisi näyttää siltä, ​​että komennot on annettu:

Asenna pakolliset Python-paketit:

pip3 asentaa kuusi rengaspyörä
pip3 install keras_applications == 1.0.5 - no-deps
pip3 install keras_preprocessing == 1.0.3 - no-deps

Suorita “pip3 list” varmistaaksesi pakollisten pakettien asennuksen:

Tässä kaikki tältä erää. Älä sulje koteloa.

Vaihe 8: Klooni TensorFlow-lähdekoodi ja asenna pakollinen korjaustiedosto

Ensinnäkin sinun on valittava kansio, johon TensorFlow-lähdekoodi kloonataan. Se on minun tapauksessani "C: \ Users \ amsokol \ Development \ tensorflow-build". Takaisin kuori ja ajo:

cd C: \ Käyttäjät \ amsokol \ Kehitys \ tensorflow-build

Kloonin lähdekoodi:

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

Kassalle viimeisin versio 1.11:

cd tensorflow
git kassalle v1.11.0

Nyt meillä on lähteitä.

Eigen-kolmannen osapuolen kirjastossa on BUG. Meidän on korjattava se ennen rakentamista.
  • Lataa korjaus täältä ja tallenna tiedostonimellä eigen_half.patch kolmannen osapuolen kansioon
  • Lisää patch_file = clean_dep (“// kolmas_party: eigen_half.patch”), rivi eigen_archive-osioon tensorflow / workspace.bzl-tiedostoon.

Tuloksen tensorflow / workspace.bzl -tiedostossa tulisi olla tällainen:

...
tf_http_archive (
  nimi = "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 ("// kolmas_osapuoli: eigen.BUILD"),
  patch_file = clean_dep ("// kolmas osapuoli: eigen_half.patch"),
)
...

Tehty.

Vaihe 9: Määritä rakennusparametrit

Varmista, että olemme lähdekoodin juurihakemistossa:

cd C: \ Käyttäjät \ amsokol \ Kehitys \ tensorflow-build \ tensorflow

Suorita konfiguraattori:

python ./configure.py

Ensin se kysyy Pythonin sijaintia. Paina Enter, jos haluat jättää oletusarvon:

...
Olet asentanut bazel 0.17.2 -sovelluksen.
Määritä pythonin sijainti. [Oletusasetus on C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Sitten se kysyy Python-kirjaston polkujen sijaintia. Paina Enter, jos haluat jättää oletusarvon:

Jäljitys (viimeisin puhelu viimeksi):
  Tiedosto "", rivi 1, 
AttributeError: moduulilla 'site' ei ole määrää 'getitepackages'
Löytyneet mahdolliset Python-kirjaston polut:
  C: \ Users \ amsokol \ tensorflow-v1.11 \ lib \ sivustoihin paketteja
Anna haluttu Python-kirjaston polku käytettäväksi. Oletusasetus on [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-paketit]

Sitten se kysyy nGraph-tuesta. Emme tarvitse sitä. Paina “n”:

Haluatko rakentaa TensorFlow nGraph-tuella? [v / N]: n
TensorFlow ei tue nGraph-tukea.

Sitten se kysyy CUDA-tuesta:

Haluatko rakentaa TensorFlow CUDA-tuella? [Y / N]:

Vastaa “y”, jos aiot käyttää GPU-kiihtyvyyttä. Muussa tapauksessa paina “n”.

Jos Kyllä, CUDA-konfiguraattori asettaa lisäkysymyksiä:
Vastaus 10.0 CUDA SDK -versiona:
Määritä haluamasi CUDA SDK -versio. [Jätä tyhjäksi oletusasetukseksi CUDA 9.0]: 10.0
Paina Enter, jos haluat poistua CUDA-työkalusarjan oletuspaikasta:
Määritä sijainti, johon CUDA 10.0 -työkalupaketti on asennettu. Katso lisätietoja kohdasta README.md. [Oletusasetus on C: / Ohjelmatiedostot / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Vastaus 7.3.1 cuDNN-versiona:
Määritä käytettävä cuDNN-versio. [Jätä tyhjä oletusarvoon cuDNN 7.0]: 7.3.1
Paina Enter, kun haluat poistua cuDNN-kirjaston oletuspaikasta:
Määritä sijainti, johon cuDNN 7 -kirjasto on asennettu. Katso lisätietoja kohdasta README.md. [Oletusasetus on C: / Ohjelmatiedostot / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Seuraava kysymys liittyy CUDA-laskentaominaisuuksiin, joita voidaan rakentaa. Löydät laitteesi laskentakyvyn osoitteessa https://developer.nvidia.com/cuda-gpus. Minulla on GTX 1070, minkä vuoksi vastaan ​​6.1:
Määritä luettelo pilkuilla erotetusta Cuda-laskentaominaisuudesta, jonka kanssa haluat rakentaa.
Löydät laitteesi laskentakyvyn osoitteessa https://developer.nvidia.com/cuda-gpus.
Huomaa, että jokainen lisälaskentakyky lisää merkittävästi rakennusaikaa ja binaarikokoa. [Oletus on: 3.5,7.0]: 6.1

Seuraava kysymys on optimointilippujen asettaminen. Minulla on 6. sukupolven Intel-prosessori, minkä vuoksi vastaan ​​/ kaari: AVX2:

Määritä optimointiliput, joita käytetään kokoamisen aikana, kun paisutusvaihtoehto "--config = opt" on määritetty [Oletus on / arch: AVX]: / arch: AVX2

Viimeinen kysymys koskee eigeniä. Vastaa “y”. Se vähentää kääntämisaikaa dramaattisesti.

Haluatko ohittaa jonkin C ++ -kokoonpanon ominaisvahvan rivin, jotta käännösaika lyhenee? [Ky / n]: v
Eigen vahva linja korvattu.

Kokoonpano valmis. Annetaan rakentaa.

Vaihe 10: Rakenna TensorFlow lähteistä

Varmista, että olemme lähdekoodin juurihakemistossa:

cd C: \ Käyttäjät \ amsokol \ Kehitys \ tensorflow-build \ tensorflow
Rakentaminen vie kauan. Suosittelen virustorjuntaohjelmien, myös Windows Defender Antivirus, reaaliaikaisen suojauksen poistamista käytöstä.

Suorita rakennus:

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

Istu alas ja rentoudu joskus.

Vaihe 11: Luo TensorFlow-pyörätiedosto Python 3.6: lle

Suorita komento luodaksesi Python-pyörätiedoston:

mkdir .. \ ulos
ruutulaatikko \ tensorflow \ työkalut \ pip_paketti \ build_pip_pakkaus .. \ ulos

Se epäonnistuu:

On tunnettu ongelma. Katso ”bazel-bin \ tensorflow \ tools \ pip_package” -kansio. Se sisältää nollapituisen ”simple_console_for_windows.zip” -tiedoston. Tämä on ongelma. Bazel sisältää 32-bittisen zip-apuohjelman, joka epäonnistuu 2 Gt: n tiedostossa. Katso linkit lisätietoja ja kiertotapaa:

  • 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

Ongelmat voidaan korjata seuraavasti:

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

Avaa “simple_console_for_windows.zip-0.params”-tiedosto ja poista rivi sisältää “mnist.zip”:

...
runfiles / org_tensorflow / tensorflow / contrib / innokkaasti / python / esimerkkejä / gan / mnist.zip = Bazel-out / x64_windows-opt / bin / tensorflow / contrib / innokkaasti / python / esimerkkejä / gan / mnist.zip
...
Se auttaa minua. Jos se ei auta, poista vain muut rivit zip-tiedostoilla (katso yksityiskohdat täältä). Tämän toiminnan tarkoituksena on tehdä ”simple_console_for_windows.zip” -pituudesta alle 2 Gt.

Poista tyhjä “simple_console_for_windows.zip” tiedosto.

Seuraavaksi tarkastellaan kotikansiota. Sinun täytyy nähdä kansio, jolla on nimi, kuten ”_bazel_ ”. Se on minun tapauksessani ”_bazel_amsokol”. Se sisältää kansion rakennustiedostoilla. Se on minun tapauksessani “lx6zoh4k”. Takaisin kuorituksen suorittamiseen (korjaa kansiosi mukaan):

cd C: \ Käyttäjät \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

Luo ”simple_console_for_windows.zip” tiedosto manuaalisesti:

ulkoiset \ ruudun työkalut \ työkalut \ zip \ vetoketju \ 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

Suorita komento luodaksesi Python-pyörätiedoston:

cd C: \ Käyttäjät \ amsokol \ Kehitys \ tensorflow-build \ tensorflow
ruutulaatikko \ tensorflow \ työkalut \ pip_paketti \ build_pip_pakkaus .. \ ulos

Se luo tensorflow-1.11.0-cp36-cp36m-win_amd64.whl-tiedoston ”.. \ out” -kansioon.

Vaihe 12: Asenna TensorFlow-pyörätiedosto Python 3.6: lle ja tarkista tulos

Suorita komento Python-pyörätiedoston asentamiseksi:

pip3 asentaa .. \ out \ tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

Jätä "tensorflow" -hakemisto (virheitä tapahtuu joskus ajaessaan Python-skriptejä Tensoflow-lähdekoodikansiossa - en tiedä syytä):

cd ..

Voit tarkistaa latauskomentosarjan täältä tai kopioi-liitä ja suorita:

tuo tensorflow tf: nä
hei = tf.constant ('Hei, TensorFlow!')
session = tf.Session ()
Tulosta (session.run (hei))

Jos järjestelmä tuottaa seuraavat tiedot, kaikki on kunnossa:

Hei, TensorFlow!

Omat tulokset:

Olet asentanut TensorFlow nyt onnistuneesti Windows-koneeseen.

Kerro minulle alla olevissa kommenteissa, jos se toimi sinulle. Tai jos sinulla on virheitä. Kiitos!