[1. frissítés] A TensorFlow GPU / CPU for Windows létrehozása és telepítése forráskódból a bazel és a Python 3.6 segítségével

Ez egy frissítés az előző történethez. Mi itt új:

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

Van útmutató a hivatalos oldalon. Nem túl átfogó, de néha hasznos.

összefoglalás

  1. Telepítse a Git for Windows rendszert
  2. Telepítse a Bazel alkalmazást
  3. Telepítse az MSYS2 x64 és a parancssori eszközöket
  4. Telepítse a Visual Studio 2017 összeállítási eszközöket, beleértve a Visual Studio 2015 összeállítási eszközöket
  5. Telepítse a 64 bites Python 3.6-at
  6. Telepítse az NVIDIA CUDA 10.0 és a cuDNN 7.3 szoftvert (GPU gyorsításhoz)
  7. Konfigurálja az építkezési környezetet
  8. Klónozza a TensorFlow v1.11 forráskódját és alkalmazza a kötelező javítást
  9. Konfigurálja az építkezési paramétereket
  10. TensorFlow készítése forrásokból
  11. Hozzon létre TensorFlow kerékfájlt a Python 3.6-hoz
  12. Telepítse a TensorFlow kerékfájlt a Python 3.6-hoz és ellenőrizze az eredményt

1. lépés: Telepítse a Git for Windows rendszert

Töltse le és telepítse a Git for Windows rendszert. Ide viszem. Ügyeljen arra, hogy a git.exe elérési útja hozzáadódjon a% PATH% környezeti változóhoz. Telepítem a Git a

C: \ Bin \ Git

mappa ehhez az oktatóanyaghoz.

2. lépés: Telepítse az MSYS2 x64 és a parancssori eszközöket

Töltse le és telepítse a 64 bites terjesztést itt. A Bazel grep, patch, unzipand csomagokkal használja az Unix-eszközök más portjait a források készítéséhez. Megpróbálhat mindegyikre különálló bináris fájlokat találni, de én inkább az MSYS2 kötetet használom. Telepítem a

C: \ Bin \ msys64

mappa ehhez az oktatóanyaghoz. A% PATH% környezeti változóhoz hozzá kell adnia egy mappát az eszközökkel. Ez az én esetemben: „C: \ Bin \ msys64 \ usr \ bin”.

Indítsa el az „MSYS2 MinGW 64-bit” parancsikont a Start menüből. Futtassa a következő parancsot a frissítéshez (indítsa újra az „MSYS2 MinGW 64-bit” -t, ha az kéri):

pacman -Syu

Ezután futtassa:

pacman -Su

Telepítési eszközökre van szükség az építkezéshez:

pacman -S javítás kicsomagolása

Zárja be az „MSYS2 MinGW 64 bites” parancsértelmezőt az „exit” paranccsal. Nekünk már nincs rá szüksége.

3. lépés: Telepítse a Visual Studio 2017 összeállítási eszközöket, beleértve a Visual Studio 2015 összeállítási eszközöket

Telepítenünk kell a „VC ++ 2015.3 v14.00 (v140) toolet for desktop” verziót a Visual Studio 2017 Build Tools programból a TensorFlow v1.11 összeállításához:

4. lépés: Telepítse a Bazel-t

Töltse le a legújabb Basel-t itt. Keresse meg a bazel- -windows-x86_64.exe fájlt. Kipróbáltam ezt az oktatóanyagot a 0.17.2 bazelrel. Nevezze át a bináris fájlt a bazel.exe fájlra, és helyezze át egy könyvtárba a% PATH% könyvtárban, így a Bazel futtatásához bármilyen könyvtárba beírhatja a bazelet. Lásd a Bazel telepítését a Windows x64 rendszerhez problémák esetén.

Adja hozzá a BAZEL_SH globális környezeti változót a bash helyhez. Az én ösvényem

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

A BAZEL_VC globális környezeti változójának hozzáadása a „VC ++ 2015.3 v14.00 (v140) toolet for desktop” szerszámlánc helyéhez:

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

5. lépés: Telepítse a 64 bites Python 3.6-at

A TensorFlow nem támogatja a Python 3.7-et, ezért telepítenie kell a 3.6-os verziót.
Úgy tűnik, hogy a TensorFlow v1.11 nem támogatja az Anaconda / Miniconda fejlesztését - furcsa hibát kapok. Ezért használom a Python virtuális környezetet az építéshez.

A Python 3.6 letölthető itt. Telepítse és adjon helyet a python.exe fájlhoz a% PATH% változóhoz.

6. lépés: Telepítse az NVIDIA CUDA 10.0 és a cuDNN 7.3 (a GPU gyorsításához)

Ez a szakasz akkor érvényes, ha van NVIDIA grafikus kártya, amely támogatja a CUDA-t. Egyébként hagyja ki ezt a részt.
Lásd itt a CUDA lépésről lépésre történő telepítését, ha segítségre van szüksége. Másolom és beillesztem ezt az útmutatót, de néhány részletet kivágtam.

Nyissa meg a https://developer.nvidia.com/cuda-downloads webhelyet, és töltse le a CUDA 10.0 Installer for Windows alkalmazást [az Ön verziója]. Számomra a Windows 10 verziója van.

Telepítse az alapértelmezett helyre az alapértelmezett beállításokkal, de törölje a VisualStudio integrációs opció jelölését. Szükség esetén frissíti a GPU illesztőprogramot, és indítja újra.

Menjen a futtatáshoz (Win + R), írja be a cmd parancsot

A következő parancs ellenőrzi az nvcc verziót, és biztosítja, hogy az elérési út környezeti változójában van-e beállítva.

nvcc - fordítás

Következő lépés: https://developer.nvidia.com/cudnn (tagság szükséges).

A bejelentkezés után töltse le a következőket:

cuDNN v7.3.1 Windows könyvtár [az Ön verziója] nekem Windows 10. Menjen letöltött mappába, és bontsa ki a ZIP-fájlt.

Lépjen be a kibontott mappába, és másolja az összes fájlt és mappát a cuda mappából (pl. Bin, include, lib), és illessze be a „C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0” mappába.

Végül itt hozzá kell adni a “C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extrák \ CUPTI \ libx64” eszközt az% PATH% környezeti változóhoz.

7. lépés: Konfigurálja az építkezési környezetet

Indítsa el a VC ++ 2015 parancsértelmezőt az x64-hez („VS2015 x64 Native Tools Command Prompt” parancsikon) a Start menüből.

Ezután létre kell hoznia, aktiválnia és konfigurálnia kell a Python környezetet. Futtassa az alábbi „VS2015 x64 Native Tools Command Prompt” parancsértelmező parancsaiban (helyek szerint javítson az elérési utakkal).

pip3 install -U virtualenv
virtualenv - rendszer-site-csomagok C: \ Users \ amsokol \ tensorflow-v1.11
C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ activate.bat

A héjának így kell kinéznie, miután a parancsokat alkalmazták:

Telepítse a kötelező Python csomagokat:

A pip3 telepítse a hat számtalan kereket
pip3 install keras_applications == 1.0.5 - no-deps
pip3 install keras_preprocessing == 1.0.3 - no-deps

Futtassa a „pip3 listát” a kötelező csomagok telepítésének biztosítása érdekében:

Ez minden most. Ne zárja be a burkolatot.

8. lépés: Klónozza a TensorFlow forráskódját, és alkalmazza a kötelező javítást

Mindenekelőtt ki kell választania a TensorFlow forráskód klónozására szolgáló mappát. Az én esetemben ez a „C: \ Users \ amsokol \ Development \ tensorflow-build”. Vissza a héjhoz és fuss:

cd C: \ Felhasználók \ amsokol \ Fejlesztés \ tensorflow-build

Klón forráskód:

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

Checkout 1.11 verzió legújabb verziója:

cd tensorflow
git checkout v1.11.0

Most vannak források.

Van egy BUG a harmadik fél saját könyvtárában. Meg kell javítanunk, mielőtt építenénk.
  • Töltse le itt a javítást, és mentse a saját_neve_pat.fájlnévvel a harmadik_party mappába
  • Adja hozzá a patch_file = clean_dep fájlt (“// harmadik_party: eigen_half.patch”), a sor a nem saját_archívum szakaszba a tensorflow / workspace.bzl fájlhoz.

A tensorflow / workspace.bzl fájl eredményének a következőnek kell lennie:

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

Kész.

9. lépés: Konfigurálja az építkezési paramétereket

Győződjön meg arról, hogy a forráskód gyökérmappájában vagyunk:

cd C: \ felhasználók \ amsokol \ fejlesztés \ tensorflow-build \ tensorflow

Konfigurátor futtatása:

python ./configure.py

Először megkérdezi Python helyét. Az alapértelmezett érték meghagyásához nyomja meg az Enter billentyűt:

...
Telepítette a 0.17.2 bazel-t.
Kérjük, adja meg a python helyét. [Alapértelmezés: C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Aztán megkérdezi a Python könyvtárak elérési útját. Az alapértelmezett érték meghagyásához nyomja meg az Enter billentyűt:

Traceback (legutóbbi hívás utolsó):
  A "" fájl 1. sora a 
AttributeError: a 'site' modulnak nincs attribútuma: 'getitepackages'
Talált lehetséges Python könyvtár útvonalak:
  C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages
Adja meg a használni kívánt Python könyvtár elérési útját. Alapértelmezés: [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-csomag]

Aztán megkérdezi az nGraph támogatást. Nincs rá szükség. Nyomja meg az „n” gombot:

Építeni akarja a TensorFlow-ot nGraph támogatással? [igen / nem]: n
Nincs nGraph támogatás engedélyezve a TensorFlow számára.

Aztán megkérdezi a CUDA támogatást:

A TensorFlow-ot CUDA támogatással kívánja felépíteni? [Y / n]:

Válaszoljon „y” -ra, ha GPU-gyorsítást fog használni. Egyébként nyomja meg az „n” gombot.

Ha igen, akkor a CUDA konfigurátor további kérdéseket tesz fel:
Válasz 10.0 CUDA SDK verzióként:
Kérjük, adja meg a használni kívánt CUDA SDK verziót. [Hagyja üresen az alapértelmezett értéket a CUDA 9.0-ra]: 10.0
Az Enter megnyomásával hagyhatja el az alapértelmezett CUDA eszközkészlet helyét:
Kérjük, adja meg a CUDA 10.0 eszközkészlet telepítésének helyét. További részletek: README.md. [Alapértelmezés: C: / Programfájlok / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Válasz a 7.3.1-re cuDNN verzióként:
Kérjük, adja meg a használni kívánt cuDNN verziót. [Hagyja üresen hagyni az alapértelmezett cuDNN 7.0 értéket]: 7.3.1
Az Enter megnyomásával hagyhatja el az alapértelmezett cuDNN könyvtárhelyet:
Kérjük, adja meg a cuDNN 7 könyvtár telepítésének helyét. További részletek: README.md. [Alapértelmezés: C: / Programfájlok / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
A következő kérdés a CUDA számítási képességeiről szól, amelyekkel építeni lehet. Az eszköz számítási képességét a következő címen találhatja meg: https://developer.nvidia.com/cuda-gpus. Megvan a GTX 1070, ezért válaszolok a 6.1-re:
Kérjük, adja meg a vesszővel elválasztott Cuda számítási képességek listáját, amelyet használni szeretne.
Az eszköz számítási képességét a következő címen találhatja meg: https://developer.nvidia.com/cuda-gpus.
Felhívjuk figyelmét, hogy minden további számítási képesség jelentősen növeli az összeállítási időt és a bináris méretet. [Alapértelmezés: 3.5,7.0]: 6.1

A következő kérdés az optimalizálási zászlók beállítása. Nekem van a 6. generációs Intel processzorom, ezért válaszolok / archívok: AVX2:

Kérjük, határozza meg az optimalizálási zászlókat, amelyeket az összeállítás során használni kell, amikor a "--config = opt" "bazel" opció megadásakor történik [Alapértelmezés: / arch: AVX]: / arch: AVX2

Az utolsó kérdés a neménről szól. Válasz: „y”. Ez drasztikusan csökkenti a fordítási időt.

Szeretne felülírni a C ++ kompozíciók saját erősségű inline-jét a fordítási idő csökkentése érdekében? [I / N]: y
Eigen erős vonal felülbírálva.

A konfiguráció kész. Építhetünk.

10. lépés: A TensorFlow készítése forrásokból

Győződjön meg arról, hogy a forráskód gyökérmappájában vagyunk:

cd C: \ felhasználók \ amsokol \ fejlesztés \ tensorflow-build \ tensorflow
Az építkezés hosszú időt vesz igénybe. Erősen javaslom, hogy kapcsolja ki a víruskereső szoftvert, beleértve a Windows Defender Antivirus valós idejű védelmet.

Futtatás:

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

Dőljön hátra és pihenjen valamikor.

11. lépés: Hozzon létre TensorFlow kerékfájlt a Python 3.6-hoz

Futtassa a parancsot Python kerékfájl létrehozásához:

mkdir .. \ ki
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

Kudarcot vall:

Van egy ismert probléma. Nézze meg a „bazel-bin \ tensorflow \ tools \ pip_package” mappát. Nulla hosszúságú „simple_console_for_windows.zip” fájlt tartalmaz. Ez a probléma. A Bazel 32 bites ZIP-segédprogramot tartalmaz, amely meghiúsul a 2 GB-os nagyobb fájl esetén. Lásd a linkeket a részletekért és a megoldáshoz:

  • 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 probléma megoldására van néhány lépés:

cd. \ bazel-bin \ tensorflow \ eszközök \ pip_csomag

Nyissa meg az „simple_console_for_windows.zip-0.params” fájlt, és távolítsa el az „mnist.zip” sort:

...
runfiles / org_tensorflow / tensorflow / contrib / mohó / python / példák / gan / mnist.zip = Bazel-out / x64_windows-opt / bin / tensorflow / contrib / mohó / python / példák / gan / mnist.zip
...
Ez segít nekem. Abban az esetben, ha ez nem segít, csak más sorokat távolíthat el ZIP-fájlokkal (a részleteket itt olvashatja). Ennek a tevékenységnek az a célja, hogy az „simple_console_for_windows.zip” hossza 2 GB-nál rövidebb legyen.

Törölje az üres “simple_console_for_windows.zip” fájlt.

Ezután nézd meg az otthoni mappát. Látnia kell a “_bazel_ ” névű mappát. Az én esetemben a „_bazel_amsokol”. Mappát tartalmaz építési fájlokkal. Ez az én esetemben „lx6zoh4k”. Vissza a futtatás héjához (javítsa ki a mappanevek szerint):

cd C: \ felhasználók \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

Hozzon létre manuálisan az „simple_console_for_windows.zip” fájlt:

külső \ bazel_tools \ eszközök \ zip \ cipzár \ 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

Futtassa a parancsot Python kerékfájl létrehozásához:

cd C: \ felhasználók \ amsokol \ fejlesztés \ tensorflow-build \ tensorflow
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

Tensorflow-1.11.0-cp36-cp36m-win_amd64.whl fájlt hoz létre a „.. \ out” mappában.

12. lépés: Telepítse a TensorFlow kerékfájlt a Python 3.6-ra és ellenőrizze az eredményt

Futtassa a parancsot a Python kerékfájl telepítéséhez:

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

Hagyja el a „tensorflow” könyvtárat (hibák előfordulnak, amikor Python-parancsfájlokat futtatok a Tensoflow forráskód mappájában - nem tudom az okot):

CD ..

A letöltési szkript ellenőrzéséhez itt, vagy másolás-beillesztés és futtatáshoz:

import tensorflow mint tf
hello = tf.constant ('Hello, TensorFlow!')
session = tf.Session ()
print (session.run (helló))

Ha a rendszer a következőket adja ki, akkor minden rendben:

Üdvözlet, TensorFlow!

Kimenetem:

A TensorFlow sikeresen telepítette a Windows gépen.

Az alábbi megjegyzésekben tudassa velem, ha működött az Ön számára. Vagy ha hibázott. Köszönöm!