Aracılığıyla paylaş


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:

im1

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:

im1

Son olarak, Desktop C++ [x86 ve x64]' için 'Windows 10 SDK (10.0.16299.0) ekleyin:

im1

Ö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:

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

    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.exede msmpisdk.msi öğesini seçin.

Artırmak

Boost Kitaplığı'nı sisteminize yüklemek için şu adımları izleyin:

  • Sourceforge'da bu indirme konumundanmsvc-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-vs15PROTOBUF_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.10SWIG_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-vs15ZLIB_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.1C:\local\Anaconda3-4.1.1-Windows-x86_64yü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-py35bir 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\cntkkopyaladığı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_PATHiç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 veProperties
  • Açılan pencerede seçin Configuration Properties ve düğmesine basın Configuration 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ünde Python (örneğin) x64\Release\Pythonbir paket.whl () oluşturur.
  • Yolunuzun derleme çıkış klasörünü (ör. x64\Release) ve dizinini PYTHONPATH içerdiğinden bindings\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 ayarlamadaki PYTHONPATHfark 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ğer
  • deviceId=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.