Nastavení CNTK ve Windows
Pokud chcete vytvořit ručně CNTK ze zdrojového kódu ve Windows pomocí sady Visual Studio 2017, je tato stránka za vás.
Pokud hledáte jinou podporu k nastavení prostředí sestavení CNTK nebo instalaci CNTK do systému, měli byste místo toho přejít sem .
Poznámka
Tato stránka předpokládá, že se pokoušíte sestavit hlavní větev CNTK.
64bitový operační systém
CNTK vyžaduje 64bitovou instalaci Windows. Proces sestavení jsme otestovali na Windows 8.1, Windows 10 a Windows Server 2012 R2 a novějších verzích. Jiná prostředí nejsou oficiálně podporována. V případě problémů s kompatibilitou zkontrolujte konfiguraci produkčního sestavení a testu CNTK.
Proměnné prostředí a komponenty
Sestavení CNTK ve vašem systému vyžaduje definici a konfiguraci různých proměnných prostředí. Přehled proměnných prostředí používaných sestavením CNTK systému Windows najdete na této stránce. Tato stránka navíc poskytuje přehled požadovaných a volitelných komponent pro sestavování CNTK a jejich výchozího umístění instalace.
Visual Studio 2017
Nainstalujte Microsoft Visual Studio 2017 pro Windows. Odkaz na stažení najdete tady.
Komunitní verze sady Visual Studio 2017 je dostatečná k sestavení CNTK.
Během procesu instalace vyberte úlohy vývoj pro Univerzální platforma Windows, Vývoj desktopových aplikací .NET, Vývoj desktopových aplikací s C++a Vývoj v Pythonu:
Kromě toho na obrazovce jednotlivých komponent nezapomeňte do instalace přidat sadu nástrojů VC++ 2017 verze 15.4 v14.11 a modul runtime Visual C++ pro UPW:
Nakonec přidejte sadu Windows 10 SDK (10.0.16299.0) pro Desktop C++ [x86 a x64]:
Instalace sady Visual Studio 2017
Musíte mít sadu nástrojů VC++ 2017 verze 15.4 v14.11, visual C++ runtime pro UPW a sadu Windows 10 SDK (10.0.16299.0) pro Desktop C++ [x86 a x64] nainstalovanou ve vašem systému. Chcete-li zkontrolovat, že se jedná o systém Windows Ovládací panely –> Programy –> Programy a funkce, a v seznamu nainstalovaných programů vyberte Visual Studio Community 2017. Tím se znovu spustí instalace sady Visual Studio a umožní vám zajistit, aby byly ve vašem systému nainstalované výše uvedené komponenty (viz obrázek výše).
Poznámka
Pokud VS2017INSTALLDIR
instalační program sady Visual Studio nenastavil proměnnou prostředí, nastavte ji ručně. Přesný instalační adresář závisí na verzi (2017 v tomto případě) a nabídce sady Visual Studio (Community, Enterprise atd.) podle následujícího vzoru: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
.
Pro edici Visual Studio 2017 Enterprise spusťte:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
Pro Visual Studio 2017 Community edition spusťte:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
Git
Git je nutný k práci se základní kódovou základnou CNTK. Můžete použít následující nástroje:
Git pro Windows. Toto je standardní klient příkazového řádku pro Git, který použijeme na této stránce k popisu zařazení do úložiště CNTK.
Klient Gitu je k dispozici jako součást instalace sady Visual Studio 2017. Přečtěte si blogový příspěvek Microsoft Application Lifecycle Management o používání integrovaného klienta Git.
Zařazení do úložiště CNTK GitHub
Tady předpokládáme, že jste nainstalovali Git pro Windows. Předpokládáme, že jste git nainstalovali pomocí výchozích možností v instalačním programu Gitu (zejména použití Gitu z příkazového řádku Systému Windows a s možností Rezervovat styl Windows, potvrdit konce řádků ve stylu UNIX na příkazovém řádku je povoleno.
Vytvořte klon zdrojového kódu CNTK v c:\repos\cntk
adresáři. Pokud dáváte přednost jinému umístění, budete muset odpovídajícím způsobem upravit příkazy.
Otevřete standardní příkazové prostředí windows a spusťte tento příkaz.
c: && md \repos && cd \repos
git clone --recursive https://github.com/Microsoft/cntk
cd cntk
Tím se vloží veškerý požadovaný zdrojový kód pro standardní sestavení do vašeho systému. Pokud plánujete provádět úpravy kódu CNTK, měli byste si přečíst informace o vývoji a testování.
Podmodule Multiverso slouží k povolení DataParallelASGD pro trénování. Pokud nepotřebujete podporu DataParallelASGD, přidejte proměnnou prostředí CNTK_ENABLE_ASGD a nastavte její hodnotu na false. Spusťte to například v příkazovém řádku CMD a pak znovu otevřete prostředí CMD a Visual Studio, abyste tuto změnu získali:
setx CNTK_ENABLE_ASGD false
MKL
Výchozí matematická knihovna CNTK je knihovna Intel Math Kernel Library (Intel MKL). Pokud ji chcete nainstalovat, postupujte podle této stránky .
MKL-DNN
Stáhněte si zdroj MKL-DNN a build s MKL_PATH jako cílovou cestu. Kontrola pokynů k sestavení v instalačním programu MKL-DNN ve Windows
Nastavte proměnnou
MKL_PATH
prostředí do adresáře, například:
setx MKL_PATH c:\local\mklml-mkldnn-0.14
MS-MPI
Nainstalujte z této stránky ke stažení verzi 7 (7.0.12437.6) microsoft MPI (MS-MPI) označenou jednoduše jako "Verze 7" v názvu stránky. Klikněte na tlačítko Stáhnout a pak vyberte obě msmpisdk.msi
a MSMpiSetup.exe
.
Zvýšit
Pokud chcete nainstalovat knihovnu Boost do systému, postupujte takto:
- Stáhněte a nainstalujte Boost verze 1.60 (potřebujete
msvc-14.0
binární soubory) z tohoto umístění pro stažení na Sourceforge. - Nastavte proměnnou
BOOST_INCLUDE_PATH
prostředí na instalaci Boost, například:
setx BOOST_INCLUDE_PATH c:\local\boost_1_60_0-msvc-14.0
- Nastavte proměnnou
BOOST_LIB_PATH
prostředí na knihovny Boost, například:
setx BOOST_LIB_PATH c:\local\boost_1_60_0-msvc-14.0\lib64-msvc-14.0
- Pokud chcete integrovat testovací architekturu Boost do sady Visual Studio, můžete nainstalovat runner pro testy Boost v sadě Visual Studio z galerie sady Visual Studio.
Protobuf
Potřebujete verzi Protobuf 3.1.0 zkompilovanou pro CNTK. Tuto verzi můžete zkompilovat sami nebo můžete použít již připravenou verzi Protobuf 3.1.0 (popsanou na této stránce). Pokud chcete vytvořit knihovnu Protobuf pro CNTK ve vašem systému, najdete podrobnosti tady.
Stáhněte soubor ZIP obsahující předkompilovanou verzi Protobuf pro CNTK z tohoto umístění.
Extrahujte archiv do složky na místním disku, např. na C:\local\protobuf-3.1.0-vs15
a nastavte proměnnou PROTOBUF_PATH
prostředí odkazující na toto umístění, například:
setx PROTOBUF_PATH c:\local\protobuf-3.1.0-vs15
Balíčky specifické pro GPU
Tato část popisuje balíčky, které potřebujete nastavit, aby CNTK využívala grafické procesory NVIDIA.
Pokud nemáte v úmyslu používat žádné GPU s CNTK a budete spoléhat pouze na procesor, můžete přeskočit přímo na další obecnou část. V opačném případě přejděte na tuto stránku.
Nastavte proměnnou CUDNN_PATH
prostředí odkazující na toto umístění, například:
setx CUDNN_PATH C:\local\cudnn-9.0-v7.0\cuda
Nastavte proměnnou CUB_PATH
prostředí odkazující na toto umístění, například:
setx CUB_PATH c:\local\cub-1.7.4\
VOLITELNÉ. SWIG.
Pokud chcete využít CNTK z Pythonu, budete muset nainstalovat SWIG. SWIG je také požadavek na sestavení knihoven hodnocení CNTK (pro C#/.NET nebo Java).
Stáhněte si prosím verzi SWIG 3.0.10
z tohoto webu.
Extrahujte archiv do složky na místním disku, např. na C:\local\swigwin-3.0.10
a nastavte proměnnou SWIG_PATH
prostředí odkazující na toto umístění, například:
setx SWIG_PATH C:\local\swigwin-3.0.10
Rychlá kontrola instalace: Pokud jste postupovali podle výše uvedených pokynů a použili stejné cesty, příkaz dir C:\local\swigwin-3.0.10\swig.exe
bude úspěšný a zobrazí jeden soubor.
VOLITELNÉ. OpenCV
CNTK 2.2 vyžaduje instalaci open source Počítačové zpracování obrazu (OpenCV), ale pro CNTK 2.3 je nepovinný. Další kroky najdete na této stránce .
Nastavte proměnnou OPENCV_PATH_V31
prostředí odkazující na složku sestavení OpenCV, např.
setx OPENCV_PATH_V31 c:\local\Opencv3.1.0\build
Rychlá kontrola instalace: Pokud jste postupovali podle výše uvedených pokynů a použili stejné cesty, příkaz dir C:\local\Opencv3.1.0\build
bude úspěšný.
VOLITELNÉ. zlib a libzip
Pokud plánujete sestavit čtečku obrázků CNTK , potřebujete knihovny zlib a libzip .
zlib a libzip
ZLib a LibZip jsou distribuovány ve zdrojovém kódu, budete muset tyto balíčky znovu zkompilovat, můžete také použít předkompilovanou verzi, kterou jsme vytvořili pro usnadnění práce (popsané v této části). Pokud chcete vytvořit knihovny sami, najdete tady podrobné pokyny.
Stáhněte soubor ZIP obsahující předkompilovanou verzi knihovny komprese libzip/zlib pro CNTK z tohoto umístění.
Extrahujte archiv do složky na místním disku, např. na C:\local\zlib-vs15
a nastavte proměnnou ZLIB_PATH
prostředí odkazující na toto umístění, například:
setx ZLIB_PATH c:\local\zlib-vs15
Rychlá kontrola instalace: Pokud jste postupovali podle výše uvedených pokynů a použili stejné cesty, příkaz dir C:\local\zlib-vs15\bin
bude úspěšný a zobrazí několik knihoven DLL.
VOLITELNÉ. Instalace Pythonu anaconda
Pokud plánujete sestavit CNTK s podporou Pythonu, nainstalujte SWIG , pokud jste to ještě neudělali. Budete také potřebovat prostředí Pythonu. Pro výchozí instalaci Pythonu používáme Anaconda Python.
Pokud nemáte instalaci Anaconda: nainstalujte Anaconda Python pro Windows.
Můžete postupovat podle standardní konfigurace uvedené v instalačním programu (InstallationType=JustMe; AddToPath=Ne; RegisterPython=Ne). V následujícím příkladu předpokládáme, že jste nainstalovali Python Anaconda3 4.1.1
do C:\local\Anaconda3-4.1.1-Windows-x86_64
.
VOLITELNÉ. Sestavení CNTK PRO UPW
Poznámka
Novinka v CNTK verze 2.1.
Pokud chcete vytvořit knihovnu hodnocení CNTK pro UPW, musíte postupovat podle dalších kroků instalace popsaných tady.
Prostředí PYTHONu CNTK
CNTK podporuje Python 2.7, Python 3.5 a Python 3.6. Doporučujeme vytvořit vyhrazené prostředí v instalaci Pythonu pro práci s CNTK. Tímto způsobem CNTK a nainstalované podpůrné balíčky nebudou mít vliv na žádný jiný projekt Pythonu. Poskytujeme několik souborů (yml
-souborů) obsahujících popis požadovaných balíčků Pythonu. Balíčky se nacházejí v scripts\install\windows
adresáři uvnitř klonu CNTK. Vyberte soubor odpovídající cílové verzi Pythonu.
Python version (Verze Pythonu) | Název_souboru |
---|---|
Python 2.7 | conda-windows-cntk-py27-environment.yml |
Python 3.5 | conda-windows-cntk-py35-environment.yml |
Python 3.6 | conda-windows-cntk-py36-environment.yml |
Jako příklad vytvoříme prostředí Pythonu 3.5 v prostředí s názvem cntk-py35
. Pokud chcete jiný název prostředí, upravte následující kroky odpovídajícím způsobem. Pokud chcete vytvořit prostředí Pythonu 2.7 nebo Pythonu 3.6, upravte název YML tak, aby odpovídal verzi Pythonu, kterou chcete použít.
Následující předpokládá, že jste naklonovali zdrojový kód CNTK z GitHubu do adresáře c:\repos\cntk
.
- Pokud chcete vytvořit nové prostředí conda (např.
cntk-py35
) a aktivovat ho, spusťte z příkazového prostředí Windows následující příkazy:
cd C:\local\Anaconda3-4.1.1-Windows-x86_64\scripts
conda env create --file c:\repos\cntk\scripts\install\windows\conda-windows-cntk-py35-environment.yml --name cntk-py35
activate C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35
Pokud máte prostředí (např. cntk-py35
), můžete ho aktualizovat nejnovějšími požadovanými balíčky pomocí následujících příkazů:
cd C:\local\Anaconda3-4.1.1-Windows-x86_64\scripts
conda env update --file c:\repos\cntk\scripts\install\windows\conda-windows-cntk-py35-environment.yml --name cntk-py35
activate C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35
Proměnné prostředí CNTK pro Python
Před zahájením sestavení CNTK a sestavením knihoven Pythonu pro CNTK je potřeba nastavit nebo definovat proměnné CNTK_PY.._PATH
prostředí a PYTHONPATH
CNTK_PY.. _PATH
Nastavení proměnných prostředí sestavení pro prostředí Pythonu (zvolte aspoň jednu, která platí):
setx CNTK_PY36_PATH [paths for your Python 3.6 environment]
setx CNTK_PY35_PATH [paths for your Python 3.5 environment]
setx CNTK_PY27_PATH [paths for your Python 2.7 environment]
Pokud jste dosud postupovali po instalaci, znamenalo by to
setx CNTK_PY35_PATH C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35
Hodnotu proměnné CNTK_PY36_PATH
prostředí , , CNTK_PY35_PATH
nebo CNTK_PY27_PATH
prostředí lze určit spuštěním v conda ..activate cmd.exe [name-or-path-of-your-environment]
PYTHONPATH
PYTHONPATH
nastaví cesty k místům, kde Python vyhledá moduly pro import. Pokud vytváříte CNTK, musíte do této proměnné prostředí přidat výstupní cestu procesu sestavení. Pokud jste naklonovali CNTK do c:\repos\cntk
tohoto, bude
setx PYTHONPATH c:\repos\cntk\bindings\python;%PYTHONPATH%
VOLITELNÉ. Java
Pokud chcete vytvořit vazby Java pro knihovnu hodnocení CNTK, nainstalujte nástroj SWIG , pokud jste to ještě neudělali. Vyžaduje se také sada Java Development Kit (JDK). V současné době používáme 64bitovou verzi JDK 8 (verze JDK 1.8.0_131).
Nastavte proměnnou prostředí JAVA_HOME tak, aby odkazovat na adresář instalace Javy. Následující nastavení předpokládá, že jste nainstalovali sadu JDK 1.8.0_131 na C:\local\jdk1.8.0_131:
setx JAVA_HOME "c:\local\jdk1.8.0_131"
Odinstalace předchozích verzí CNTK
Pokud jste na svém počítači nainstalovali jakoukoli verzi balíčku PYTHON CNTK, odinstalujte ho tak, že nejprve odeberete všechny cesty související s CNTK v proměnné prostředí PYTHONPATH. Proveďte: echo %PYTHONPATH%
pokud chcete zobrazit jeho aktuální hodnotu, a pak pomocí setx
příkazu nastavte PYTHONPATH tak, aby související cesty CNTK byly pryč. Pokud se tím pythonPATH vyprázdní, tak to může být.
Proveďte odinstalaci: pip uninstall cntk
Tím se dokončí část instalace. Pojďme pokračovat v sestavování CNTK
Sestavení CNTK
V současné době existuje problém s kompatibilitou mezi CUDA 9 a výchozími VCTools v sadě Visual Studio 2017. CNTK k sestavení pomocí CUDA 9 vyžaduje VCTools 14.11. Postup:
- Otevřít příkazový řádek
- volání %VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.11
Tím nastavíte VCTools na verzi kompatibilní s CUDA 9. Z příkazového řádku spusťte CNTK.sln v kořenovém adresáři klonovaného projektu CNTK z GitHubu. Pokud CNTK.sln běží s výchozí verzí CUDA9 nekompatibilní verze nástroje VCTools, dojde k chybám sestavení, jako je 1>c:\program files\nvidia gpu computing toolkit\cuda\v9.0\include\crt/host_config.h(133): závažná chyba C1189: #error: -- nepodporovaná verze sady Microsoft Visual Studio! Podporují se pouze verze 2012, 2013, 2015 a 2017!"
Pokud jste právě změnili a proměnnou prostředí, měli byste zavřít všechny již otevřené instance sady Visual Studio, jinak se obsah změněných proměnných prostředí neprojeví v sadě Visual Studio.
- V Průzkumník řešení klikněte pravým tlačítkem na řešení CNTK a vyberte
Properties
- V otevřeném okně vyberte
Configuration Properties
a stiskněteConfiguration Manager...
tlačítko - V Configuration Manager vyberte požadovanou konfiguraci:
- Ladění nebo vydání
- Gpu nebo procesor jen pro procesor. Konfigurace jen pro procesor jsou explicitně pojmenované. Všechny ostatní konfigurace znamenají využití GPU (tj.
Release
znamená vydání. Režim s podporou GPU) - Pokud jste nenainstalovali komponenty požadované pro konfigurace GPU, měli byste vždy vybrat konfigurace jen pro procesor.
Sestavte řešení CNTK. Komponenty vytvořené procesem sestavení závisí na nainstalovaných požadavcích. Podrobnosti o stránce s podrobnostmi o proměnných prostředí systému Windows by se měly zobrazit.
Pokud vytváříte poznámku k modulům Pythonu:
- Moduly Pythonu
Release
se vytvářejí jenom v konfiguraci. - Tím se vytvoří modul PYTHONu CNTK uvnitř
bindings\python\cntk
a také vytvoří balíček (.whl
) v podsložcePython
výstupní složky sestavení (např.x64\Release\Python
) - Ujistěte se,
x64\Release
že cesta obsahuje výstupní složku sestavení (např. ) a adresářPYTHONPATH
bindings\python
. To je na rozdíl od nastavení zobrazené pro instalaci balíčku Pip, zde načteme modul CNTK z klonu úložiště CNTK, ne jako nainstalovaný balíček ve vašem prostředí Pythonu, a proto také rozdíl v nastaveníPYTHONPATH
.
Testování funkcí sestavení CNTK
Abyste měli jistotu, že CNTK funguje ve vašem systému správně, můžete rychle spustit příklad z kurzu Hello World – logistická regrese. Tento příklad vytrénuje jednoduchou síť a dá se směrovat na použití procesoru nebo GPU, což vám pomůže rychle zajistit správné fungování CNTK.
Níže předpokládáme, že se úložiště CNTK naklonuje c:\repos\cntk
a build\x64\release
používá se jako podadresář sestavení (Release).
- Otevřít příkazový řádek
- Zadejte cestu k binárním souborům CNTK (prostřednictvím proměnné prostředí nebo relace příkazového řádku pomocí následujícího prvního příkazu) a přejděte do
Tutorials\HelloWorld-LogisticRegression
adresáře:
set PATH=C:\repos\cntk\x64\release;%PATH%
cd C:\repos\cntk\Tutorials\HelloWorld-LogisticRegression
Nejprve zkuste příklad:
cntk configFile=lr_bs.cntk makeMode=false
Pokud se ukázka spustí, tj. pokud neexistují žádné chybové zprávy, zobrazí se výstup související nejprve se čtením konfigurace a výstupem skutečného trénování sítě.
Vyzkoušení CNTK s GPU
Pokud jste vytvořili CNTK pro využití GPU, zkuste použít GPU spuštěním následujícího příkazu:
cntk configFile=lr_bs.cntk makeMode=false deviceId=auto
Na začátku výstupu byste měli vidět řádek, který potvrzuje použití GPU:
Model has 9 nodes. Using GPU 0.
Všimněte si, že ID GPU se může lišit. Parametr deviceId
definuje, jaký procesor se má použít pro výpočty.
-
deviceId=-1
znamená použití procesoru. Výchozí hodnota -
deviceId=X
kde X je celé číslo >=0 znamená použití GPU X, tj.deviceId=0
znamená GPU 0 atd. -
deviceId=auto
znamená použití GPU, automatické výběr GPU
Vyzkoušení rozhraní CNTK Python API
Předpokládáme, že jste vytvořili prostředí PYTHONu CNTK (buď prostřednictvím instalačního skriptu , nebo ručně. Otevřete příkazový řádek a aktivujte prostředí Pythonu CNTK, například spuštěním příkazu
activate cntk-py35
Jako rychlá změna testu do Tutorials\NumpyInterop
složky a spuštění python FeedForwardNet.py
. Po trénování by se měl zobrazit výstup podobný tomuto:
Finished Epoch [1]: loss = 0.297748 * 25600 2.383s (10742.8 samples per second)
error rate on an unseen minibatch 0.040000
Ladění zdrojového kódu CNTK v sadě Visual Studio
- Pokud chcete používat nástroje Python Tools, CNTK a Visual Studio, podívejte se sem.
- Pokud chcete ladit BrainScript v CNTK pomocí sady Visual Studio, postupujte následovně.
Přispívání do kódu CNTK
Pokud plánujete úpravy kódu, měli byste si přečíst informace o vývoji a testování.