[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
- Asenna Git for Windows
- Asenna Bazel
- Asenna MSYS2 x64 ja komentorivityökalut
- Asenna Visual Studio 2017 Build -työkalut, mukaan lukien Visual Studio 2015 Build -työkalut
- Asenna Python 3.6 64-bit
- Asenna NVIDIA CUDA 10.0 ja cuDNN 7.3 (GPU-kiihdytykseen)
- Määritä rakennusympäristö
- Klooni TensorFlow v1.11 -lähdekoodi ja lisää pakollinen korjaustiedosto
- Määritä rakennusparametrit
- Rakenna TensorFlow lähteistä
- Luo TensorFlow-pyörätiedosto Python 3.6: lle
- 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-
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_
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!