[2. 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.12
  • CUDA v10.0
  • cuDNN v7.4
  • bazel 0,19,0
  • Apache Ignite támogatás

Van útmutató a hivatalos oldalon. Nem túl átfogó, de nagyon 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.4 szoftvert (a GPU gyorsításához)
  7. Konfigurálja az építkezési környezetet
  8. Klónozza a TensorFlow v1.12 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 eszközről a TensorFlow v1.11 összeállításához:

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

Töltse le a legfrissebb Bázeli itt. Keresse meg a bazel- -windows-x86_64.exe fájlt. Kipróbáltam ezt az oktatóanyagot a 0.19.0 bazel-rel. 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.
Anaconda / Minicondais nem hivatalosan támogatja a forrásokból származó építkezéseket. 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.4 (GPU gyorsításhoz)

Ez a szakasz akkor érvényes, ha rendelkezik NVIDIA grafikus kártyával, 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őprogramját, é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 útvonal-környezeti változó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.4.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.12
C: \ Users \ amsokol \ tensorflow-v1.12 \ 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. Ez az én esetemben: „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

Pénztár az 1.12 verzió legújabb verziója:

cd tensorflow
git checkout v1.12.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_nevek.patch fájlnévvel a third_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 szakaszhoz 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",
    build_file = clean_dep ("// harmadik_party: eigen.BUILD"),
    sha256 = "d956415d784fa4e42b6a2a45c32556d6aec9d0a3d8ef48baee2522ab762556a9",
    strip_prefix = "eigen-eigen-fd6845384b86",
    URL = [
„Https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/fd6845384b86.tar.gz”
„Https://bitbucket.org/eigen/eigen/get/fd6845384b86.tar.gz”
    ],
    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ítve van a 0.19.0 bazel.
Kérjük, adja meg a python helyét. [Alapértelmezés: C: \ Users \ amsokol \ tensorflow-v1.12 \ 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 nem tartozik a 'getitepackages' attribútum
Talált lehetséges Python könyvtár útvonalak:
  C: \ Users \ amsokol \ tensorflow-v1.12 \ 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.12 \ Lib \ site-csomagok]

Aztán megkérdezi az Apache Ignite támogatást. Nyomja meg az „y” gombot, ha szüksége van rá:

Fel szeretné építeni a TensorFlow-ot az Apache Ignite támogatással? [I / N]: y

Aztán megkérdezi az XLA JIT támogatását. Nyomja meg az „n” gombot:

Fel szeretné építeni a TensorFlow-t az XLA JIT támogatással? [igen / nem]: n
Az XLA JIT támogatás bekapcsolása összeállítási hibát vet fel: „A„ // tensorflow / fordító / tf2xla: cpu_function_runtime ”szabály C ++ fordítása sikertelen”. Még nem találtam javítást.

Aztán megkérdezi a ROCm támogatást. Nincs szükség rá, ha a CUDA támogatást választjuk. Nyomja meg az „n” gombot:

A TensorFlow-ot ROCm támogatással kívánja építeni? [igen / nem]: n

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]:
Az alapértelmezett cuDNN 7 értékre hagyásához nyomja meg az Enter billentyűt:
Kérjük, adja meg a használni kívánt cuDNN verziót. [Hagyja üresen az alapértelmezett cuDNN 7 értéket]:
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álja 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.

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

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

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

Van egy BUG a bazelben 0,19,0. Lásd itt a részleteket. A javításhoz hozzá kell adnunk az „import <út_út >> /tensorflow/tools/bazel.rc” karakterláncot a (fájl elrejtése) „ /tensorflow/.bazelrc” felső sorához. Az én esetemben a „C: /Users/amsokol/Development/tensorflow-build/tensorflow/.bazelrc” fájl:
import C: /Hasznók/amsokol/Development/tensorflow-build/tensorflow/tools/bazel.rc
importálás C: /Users/amsokol/Development/tensorflow-build/tensorflow/.tf_configure.bazelrc

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 egy ideig.

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

Tensorflow-1.12.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.12.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 Python parancsfájl futtatásával biztosíthatja a telepített TensorFlow verzióját is:

# TensorFlow és tf.keras
import tensorflow mint tf
a tensorflow import kerasból
print (tf .__ version__)
print (keras .__ version__)

A következő kimenetet kell kapnia:

1.12.0
2.1.6-tf

A TensorFlow 1.12 telepítése sikeresen megtörtént 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!