Windows'da CNTK kurulumu
Visual Studio 2017 kullanarak Windows'ta kaynak kodundan el ile CNTK oluşturmak istiyorsanız, bu sayfa tam size göre.
CNTK derleme ortamı kurmak veya sisteminize CNTK yüklemek için başka bir destek türü arıyorsanız, bunun yerine buraya gitmeniz gerekir.
Not
Bu sayfada, CNTK'nin ana dalı oluşturmaya çalıştığınız varsayılır.
64 bit işletim sistemi
CNTK için 64 bit Windows yüklemesi gerekir. Derleme işlemini Windows 8.1, Windows 10 ve Windows Server 2012 R2 ve sonraki sürümlerde test ettik. Diğer ortamlar resmi olarak desteklenmez. Uyumluluk sorunları için CNTK Üretim Derleme ve Test yapılandırmasını denetleyin.
Ortam Değişkenleri ve Bileşenleri
Sisteminizde CNTK oluşturmak için çeşitli ortam değişkenlerinin tanımlanması ve yapılandırılması gerekir. CNTK'nin Windows derlemesi tarafından kullanılan ortam değişkenlerine genel bakış bu sayfada bulunabilir. Ayrıca, bu sayfa CNTK oluşturmak için gerekli ve isteğe bağlı bileşenlere ve bunların varsayılan yükleme konumlarına genel bir bakış sağlar.
Visual Studio 2017
Windows için Microsoft Visual Studio 2017'yi yükleyin. İndirme bağlantısına buradan ulaşabilirsiniz.
Visual Studio 2017'nin Topluluk Sürümü, CNTK oluşturmak için yeterlidir.
Yükleme işlemi sırasında lütfen 'Evrensel Windows Platformu geliştirme', '.NET masaüstü geliştirme', 'C++ile masaüstü geliştirme' ve 'Python geliştirme' iş yüklerini seçin:
Ayrıca, bileşenler ekranında yüklemenize 'VC++ 2017 sürüm 15.4 v14.11 araç takımı' ve 'UWP için Visual C++ çalışma zamanı' eklediğinizden emin olun:
Son olarak, Desktop C++ [x86 ve x64]' için 'Windows 10 SDK (10.0.16299.0) ekleyin:
Önceden var olan Visual Studio 2017 yüklemesi
Sisteminizde 'VC++ 2017 sürüm 15.4 v14.11 araç takımı', 'UWP için Visual C++ çalışma zamanı' ve 'Masaüstü C++ [x86 ve x64] için Windows 10 SDK '10.0.16299.0' yüklü olmalıdır. Windows "Denetim Masası - Programlar ->> Programlar ve Özellikler' öğesini açın ve yüklü programlar listesinden 'Visual Studio Community 2017' öğesini seçin. Bu işlem Visual Studio kurulumunu yeniden başlatır ve yukarıda belirtilen bileşenlerin sisteminizde yüklü olduğundan emin olmanıza olanak tanır (yukarıdaki resme bakın).
Not
VS2017INSTALLDIR
Ortam değişkeni Visual Studio yükleyicisi tarafından ayarlanmadıysa el ile ayarlayın. Tam yükleme dizini, aşağıdaki desene göre Visual Studio'nun hem sürümüne (bu örnekte 2017) hem de teklifine (Community, Enterprise vb.) bağlıdır: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
.
Visual Studio 2017 Enterprise sürümü için şunu çalıştırın:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
Visual Studio 2017 Community sürümü için şunu çalıştırın:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
Git
CNTK kod tabanıyla çalışmak için Git gereklidir. Aşağıdaki araçları kullanabilirsiniz:
Windows için Git. Bu, CNTK deposundaki listelemeyi açıklamak için bu sayfada kullanacağımız Git için standart komut satırı istemcisidir.
Visual Studio 2017 yüklemesinin bir parçası olarak git istemcisi kullanılabilir. Yerleşik Git istemcisini kullanma hakkında Microsoft Uygulama Yaşam Döngüsü Yönetimi blog gönderisini okuyun.
CNTK GitHub deposuna listeleme
Burada , Windows için Git'i yüklediğiniz varsayılır. Git yükleyicisindeki varsayılan seçenekleri kullanarak Git'i yüklediğinizi varsayıyoruz (Özellikle 'Windows Komut İsteminden Git'i kullan' ve "Windows stili kullanıma al, UNIX stili satır sonlarını işle" seçeneği "Satır sonlarını yapılandırma" istemi etkin.
Dizinde CNTK kaynak kodunun c:\repos\cntk
bir kopyasını oluşturun. Farklı bir konum tercih ederseniz, komutları buna göre ayarlamanız gerekir.
Standart bir Windows komut kabuğu açın ve bu komutu yürütür
c: && md \repos && cd \repos
git clone --recursive https://github.com/Microsoft/cntk
cd cntk
Bu, standart bir derleme için gerekli tüm kaynak kodunu sisteminize yerleştirir. CNTK kodunda değişiklik yapmayı planlıyorsanız Geliştirme ve Test etme hakkındaki bilgileri okumalısınız.
Multiverso alt modülü DataParallelASGD'yi eğitim için etkinleştirmek için kullanılır. DataParallelASGD desteğine ihtiyacınız yoksa ortam değişkenini CNTK_ENABLE_ASGD ekleyin ve değerini false olarak ayarlayın. Örneğin, bunu bir CMD isteminde çalıştırın ve ardından değişikliği almak için CMD kabuklarınızı ve Visual Studio'nuzu yeniden açın:
setx CNTK_ENABLE_ASGD false
MKL
Varsayılan CNTK matematik kitaplığı , Intel Matematik Çekirdek Kitaplığı 'dır (Intel MKL). Yüklemek için bu sayfayı izleyin
MKL-DNN
MKL-DNN kaynağını indirin ve hedef yol olarak MKL_PATH ile derleyin. Windows'da MKL-DNN Kurulumu'ndaki derleme yönergelerini gözden geçirin
Ortam değişkenini
MKL_PATH
dizine ayarlayın, örneğin:
setx MKL_PATH c:\local\mklml-mkldnn-0.14
MS-MPI
Sayfa başlığında yalnızca "Sürüm 7" olarak işaretlenmiş olan bu indirme sayfasından Microsoft MPI(MS-MPI) sürüm 7'yi (7.0.12437.6) yükleyin. İndir düğmesine tıklayın ve ardından hem hem MSMpiSetup.exe
de msmpisdk.msi
öğesini seçin.
Artırmak
Boost Kitaplığı'nı sisteminize yüklemek için şu adımları izleyin:
- Sourceforge'da bu indirme konumundan
msvc-14.0
Boost sürüm 1.60'ı (ikili dosyalara ihtiyacınız var) indirip yükleyin. - Ortam değişkenini
BOOST_INCLUDE_PATH
Boost yüklemenize ayarlayın, örneğin:
setx BOOST_INCLUDE_PATH c:\local\boost_1_60_0-msvc-14.0
- Ortam değişkenini
BOOST_LIB_PATH
Boost kitaplıklarına ayarlayın; örneğin:
setx BOOST_LIB_PATH c:\local\boost_1_60_0-msvc-14.0\lib64-msvc-14.0
- Boost test çerçevesini Visual Studio ile tümleştirmek için Visual Studio Galerisi'nden Visual Studio'da Boost testleri için bir runner yükleyebilirsiniz.
Protobuf
CNTK için derlenmiş bir Protobuf 3.1.0 sürümüne ihtiyacınız vardır. Bu sürümü kendiniz derleyebilir veya Protobuf 3.1.0'ın (bu sayfada açıklanmıştır) önceden hazırlanmış bir sürümünü kullanabilirsiniz. Sisteminizde CNTK için Protobuf kitaplığını oluşturmak istiyorsanız ayrıntıları burada bulabilirsiniz
CNTK için Protobuf'un önceden derlenmiş sürümünü içeren ZIP dosyasını bu konumdan indirin
Arşivi yerel diskinizde bir klasöre ayıklayın; örneğin C:\local\protobuf-3.1.0-vs15
PROTOBUF_PATH
:
setx PROTOBUF_PATH c:\local\protobuf-3.1.0-vs15
GPU'ya Özgü Paketler
Bu bölümde, CNTK'nin NVIDIA GPU'larından yararlanabilmesi için ayarlamanız gereken paketler özetlenmiştir.
CNTK ile herhangi bir GPU kullanmayı düşünmüyorsanız ve yalnızca CPU'yu kullanacaksanız, doğrudan bir sonraki genel bölüme atlayabilirsiniz. Aksi takdirde bu sayfaya geçin.
Bu konuma işaret eden ortam değişkenini CUDNN_PATH
ayarlayın, örneğin:
setx CUDNN_PATH C:\local\cudnn-9.0-v7.0\cuda
Bu konuma işaret eden ortam değişkenini CUB_PATH
ayarlayın, örneğin:
setx CUB_PATH c:\local\cub-1.7.4\
ISTEĞE BAĞLI. Yu -dum.
Python'dan CNTK'den yararlanmak istiyorsanız SWIG'i yüklemeniz gerekir. SWIG ayrıca CNTK Değerlendirme kitaplıklarını (C#/.NET veya Java için) derlemek için de bir gereksinimdir.
Lütfen bu siteden sürümü SWIG 3.0.10
indirin.
Arşivi yerel diskinizde bir klasöre ayıklayın; örneğin C:\local\swigwin-3.0.10
SWIG_PATH
:
setx SWIG_PATH C:\local\swigwin-3.0.10
Hızlı yükleme denetimi: Yukarıdaki yönergeleri izlediyseniz ve aynı yolları kullandıysanız, komut dir C:\local\swigwin-3.0.10\swig.exe
başarılı olur ve bir dosya gösterir.
ISTEĞE BAĞLI. OpenCV
CNTK 2.2 için Açık Kaynak Görüntü İşleme (OpenCV) yüklenmesi gerekir, ancak CNTK 2.3 için isteğe bağlıdır. Diğer adımlar için bu sayfayı izleyin.
OpenCV derleme klasörüne işaret eden ortam değişkenini OPENCV_PATH_V31
ayarlayın, örneğin.
setx OPENCV_PATH_V31 c:\local\Opencv3.1.0\build
Hızlı yükleme denetimi: Yukarıdaki yönergeleri izlediyseniz ve aynı yolları kullandıysanız, komut dir C:\local\Opencv3.1.0\build
başarılı olur.
ISTEĞE BAĞLI. zlib ve libzip
CNTK Görüntü Okuyucusu oluşturmayı planlıyorsanız zlib ve libzip kitaplıklarına ihtiyacınız vardır.
zlib ve libzip
ZLib ve LibZip kaynak kodunda dağıtılır, bu paketleri yeniden derlemeniz gerekir, size kolaylık sağlamak için oluşturduğumuz önceden derlenmiş bir sürümü de kullanabilirsiniz (bu bölümde açıklanmıştır). Kitaplıkları kendiniz oluşturmak için burada ayrıntılı yönergeler bulabilirsiniz
CNTK için libzip/zlib sıkıştırma kitaplığının önceden derlenmiş sürümünü içeren ZIP dosyasını bu konumdan indirin
Arşivi yerel diskinizde bir klasöre ayıklayın; örneğin C:\local\zlib-vs15
ZLIB_PATH
:
setx ZLIB_PATH c:\local\zlib-vs15
Hızlı yükleme denetimi: Yukarıdaki yönergeleri izlediyseniz ve aynı yolları kullandıysanız, komut dir C:\local\zlib-vs15\bin
başarılı olur ve birkaç DLL gösterir.
ISTEĞE BAĞLI. Anaconda Python Yüklemesi
Python desteğiyle CNTK oluşturmayı planlıyorsanız, henüz yapmadıysanız SWIG'i yükleyin. Ayrıca, bir Python ortamına ihtiyacınız olacaktır. Varsayılan Python yüklememiz için Anaconda Python kullanırız.
Anaconda yüklemeniz yoksa: Windows için Anaconda Python'ı yükleyin.
Yükleme programında verilen standart yapılandırmayı izleyebilirsiniz (InstallationType=JustMe; AddToPath=Hayır; RegisterPython=No). Aşağıdakilerde içine Python Anaconda3 4.1.1
C:\local\Anaconda3-4.1.1-Windows-x86_64
yüklediğiniz varsayılır.
ISTEĞE BAĞLI. CNTK UWP Derlemesi
Not
CNTK sürüm 2.1'de yeni.
UWP için CNTK Değerlendirme Kitaplığı'nı oluşturmak istiyorsanız burada açıklanan ek yükleme adımlarını izlemeniz gerekir.
CNTK Python ortamları
CNTK Python 2.7, Python 3.5 ve Python 3.6'yı destekler. Python yüklemenizde CNTK ile çalışmak için ayrılmış bir ortam oluşturmanızı öneririz. Bu şekilde CNTK ve yüklü destekleyici paketler diğer Python projelerini etkilemez. Gerekli Python paketlerinin açıklamasını içeren birkaç dosya (yml
-files) sağlıyoruz. Paketler, CNTK kopyanızın içindeki dizinde scripts\install\windows
bulunur. Lütfen hedeflenen Python sürümünüzle eşleşen dosyayı seçin.
Python sürümü | Dosyaadı |
---|---|
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 |
Örnek olarak adlı cntk-py35
bir ortamda python 3.5 ortamı oluşturuyoruz. Farklı bir ortam adı istiyorsanız lütfen aşağıdaki adımları uygun şekilde ayarlayın. Python 2.7 veya Python 3.6 ortamı oluşturmak istiyorsanız, lütfen YML'nin adını kullanmayı planladığınız Python sürümüyle eşleşecek şekilde ayarlayın.
Aşağıda, CNTK kaynak kodunu GitHub'dan dizinine c:\repos\cntk
kopyaladığınız varsayılır.
- Yeni bir conda ortamı (örneğin
cntk-py35
) oluşturmak ve etkinleştirmek için Windows komut kabuğundan aşağıdaki komutları çalıştırın:
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
Bir ortamınız varsa (ör. cntk-py35
) aşağıdaki komutlarla en son gerekli paketlerle güncelleştirebilirsiniz:
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
Python için CNTK Ortam Değişkenleri
CNTK derlemesine ve CNTK için Python kitaplıklarını derlemeye başlamadan önce ortam değişkenlerini CNTK_PY.._PATH
ayarlamanız/tanımlamanız ve PYTHONPATH
CNTK_PY.. _PATH
Python ortamınız için derleme ortamı değişkenleri ayarlayın (geçerli olan en az birini seçin):
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]
Yükleme işlemini şu ana kadar izlediyseniz bu,
setx CNTK_PY35_PATH C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35
, CNTK_PY35_PATH
, veya CNTK_PY27_PATH
ortam değişkenlerinin değeri CNTK_PY36_PATH
içinde çalıştırılarak belirlenebilirconda ..activate cmd.exe [name-or-path-of-your-environment]
PYTHONPATH
PYTHONPATH
, Python'ın içeri aktarılacak modülleri arayacağı yerlerin yollarını ayarlar. CNTK oluşturuyorsanız, derleme işleminin çıkış yolunu bu ortam değişkenine eklemeniz gerekir. CNTK'yi c:\repos\cntk
kopyaladıysanız bu
setx PYTHONPATH c:\repos\cntk\bindings\python;%PYTHONPATH%
ISTEĞE BAĞLI. Java
CNTK Değerlendirme kitaplığı için Java bağlamalarını oluşturmak için henüz yapmadıysanız SWIG aracını yükleyin. Ayrıca bir Java Geliştirme Seti (JDK) gerekir. Şu anda 64 bit JDK 8 (JDK Sürüm 1.8.0_131) kullanıyoruz.
JAVA_HOME ortam değişkenini Java yükleme dizinine işaret etmek için ayarlayın. Aşağıdaki ayar, JDK 1.8.0_131'i C:\local\jdk1.8.0_131'a yüklediğinizi varsayar:
setx JAVA_HOME "c:\local\jdk1.8.0_131"
Önceki CNTK sürümlerini kaldırma
CNTK Python paketinin herhangi bir sürümünü makinenize daha önce yüklediyseniz, önce PYTHONPATH ortam değişkenindeki CNTK ile ilgili yolları kaldırarak paketi kaldırın. Geçerli değerini görmek için: echo %PYTHONPATH%
komutunu kullanarak setx
PYTHONPATH'i CNTK ile ilgili yollar gidecek şekilde ayarlayın. PythonPATH boşsa boş olsun.
Kaldırma işlemini yapın: pip uninstall cntk
Bu, yükleme bölümünü sonlandırıyor. CNTK oluşturmaya devam edelim
CNTK Oluşturma
Şu anda Visual Studio 2017'de CUDA 9 ile varsayılan VCTools arasında bir uyumluluk sorunu vardır. CNTK, CUDA 9 ile derlemek için VCTools 14.11 gerektirir. Bunu gerçekleştirmek için:
- Komut İstemini Aç
- call "%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.11
Bu, VCTools'ı CUDA 9 uyumlu sürümüne ayarlar. Komut İsteminden, GitHub'dan kopyalanan CNTK projesinin kökünde CNTK.sln dosyasını başlatın. CNTK.sln, VCTools'un varsayılan CUDA9 uyumsuz sürümüyle çalışıyorsa, "1>c:\program files\nvidia gpu computing toolkit\cuda\v9.0\include\crt/host_config.h(133): önemli hata C1189: #error: -- desteklenmeyen Microsoft Visual Studio sürümü! Yalnızca 2012, 2013, 2015 ve 2017 sürümleri desteklenir!"
Ve ortam değişkenini yeni değiştirdiyseniz, zaten açılmış olan herhangi bir Visual Studio örneğini kapatmanız gerekir, aksi takdirde değiştirilen ortam değişkenlerinin içeriği Visual Studio'ya yansıtılmaz.
- Çözüm Gezgini'da CNTK Çözümü'ne sağ tıklayın ve
Properties
- Açılan pencerede seçin
Configuration Properties
ve düğmesine basınConfiguration Manager...
- Configuration Manager istediğiniz yapılandırmayı seçin:
- Hata Ayıklama veya Serbest Bırakma
- GPU veya yalnızca CPU. Yalnızca CPU yapılandırmaları açıkça adlandırılır. Diğer tüm yapılandırmalar GPU kullanımını ifade eder (yani
Release
Yayın anlamına gelir ). GPU etkin modu) - GPU yapılandırmaları için gereken bileşenleri YÜKLEMEDİYSENIZ her zaman yalnızca CPU yapılandırmalarını seçmelisiniz
CNTK çözümünü oluşturun. Derleme işlemi tarafından oluşturulan bileşenler, yüklediğiniz önkoşullara bağlıdır ve ayrıntılar için Windows Ortam Değişkenleri'ni ayrıntılarıyla belirten sayfaya başvurulmalıdır.
Python modülleri oluşturuyorsanız not:
- Python modülleri yalnızca yapılandırmada
Release
oluşturulur - Bu işlem CNTK Python modülünü içinde
bindings\python\cntk
oluşturur ve ayrıca derleme çıkış klasörünüzün bir alt klasöründePython
(örneğin)x64\Release\Python
bir paket.whl
() oluşturur. - Yolunuzun derleme çıkış klasörünü (ör.
x64\Release
) ve dizininiPYTHONPATH
içerdiğindenbindings\python
emin olun. Bu, Pip paketi yüklemesi için gösterilen kurulumun aksine, burada CNTK modülünü Python ortamınızda yüklü bir paket olarak değil, CNTK depo kopyasından yükleyeceğiz, dolayısıyla ayarlamadakiPYTHONPATH
fark da .
CNTK derleme işlevselliğinin testi
CNTK'nin sisteminizde düzgün çalıştığından emin olmak için Merhaba Dünya - Lojistik Regresyon öğreticisinden hızla bir örnek çalıştırabilirsiniz. Bu örnek basit bir ağı eğitmektedir ve CNTK'nin düzgün çalıştığından hızlı bir şekilde emin olmanıza yardımcı olan CPU veya GPU kullanmaya yönlendirilebilir.
Aşağıda CNTK deposunun (Release) derlemesi için bir alt dizin olarak kopyalandığını c:\repos\cntk
ve build\x64\release
kullanıldığını varsayıyoruz.
- Komut İstemini Aç
- CNTK ikili dosyalarının yolunu sağlayın (Ortam Değişkeni aracılığıyla veya aşağıdaki ilk komutu kullanarak Komut İstemi oturumu için) ve dizinine
Tutorials\HelloWorld-LogisticRegression
geçin:
set PATH=C:\repos\cntk\x64\release;%PATH%
cd C:\repos\cntk\Tutorials\HelloWorld-LogisticRegression
İlk olarak örneği deneyin:
cntk configFile=lr_bs.cntk makeMode=false
Örnek çalıştırılırsa , yani hata iletisi yoksa, önce yapılandırmayı okumakla ilgili bir çıkış alırsınız, ardından gerçek ağ eğitiminin çıktısını alırsınız.
GPU ile CNTK deneme
GPU kullanımı için CNTK derlediyseniz aşağıdaki komutu yürüterek GPU kullanmayı deneyin:
cntk configFile=lr_bs.cntk makeMode=false deviceId=auto
Çıkışın başında GPU kullanıldığını onaylayan bir satır görmeniz gerekir:
Model has 9 nodes. Using GPU 0.
GPU kimliğinin farklı olabileceğini unutmayın. deviceId
parametresi, hesaplama için kullanılacak işlemciyi tanımlar.
deviceId=-1
CPU kullanma anlamına gelir. Varsayılan değerdeviceId=X
burada X bir =0 tamsayısı >, GPU X kullanmak, yani GPU 0 vb.deviceId=0
anlamına gelir.deviceId=auto
GPU kullanmak anlamına gelir, GPU'yi otomatik olarak seçin
CNTK Python API'sini deneme
Bir CNTK Python ortamı oluşturduğunuzu varsayıyoruz ( yükleme betiği aracılığıyla veya el ile). Bir komut istemi açın ve CNTK Python ortamınızı ( örneğin, yürüterek) etkinleştirin
activate cntk-py35
Hızlı bir test olarak klasörüne geçin Tutorials\NumpyInterop
ve komutunu çalıştırın python FeedForwardNet.py
. Eğitimden sonra şuna benzer bir çıkış görmeniz gerekir:
Finished Epoch [1]: loss = 0.297748 * 25600 2.383s (10742.8 samples per second)
error rate on an unseen minibatch 0.040000
Visual Studio'da CNTK kaynak kodunda hata ayıklama
- Python Araçları, CNTK ve Visual Studio kullanmak istiyorsanız buraya bakın
- Visual Studio ile CNTK'de BrainScript hatalarını ayıklamak için buradaki adımları izleyin.
CNTK koduna katkıda bulunma
Kodda değişiklik yapmayı planlıyorsanız Geliştirme ve Test hakkındaki bilgileri okumanız gerekir.