[Güncelleme 1] Bazel ve Python 3.6 kullanarak Windows için TensorFlow GPU / CPU'yu kaynak koddan nasıl kurar ve kurarım

Bu önceki hikayem için bir güncelleme. Buradaki yenilikler:

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

Resmi sitede rehber var. Çok kapsamlı değil, bazen yararlı olabilir.

özet

  1. Git için Windows yükleyin
  2. Bazel yükleyin
  3. MSYS2 x64 ve komut satırı araçlarını yükleyin
  4. Visual Studio 2015 Yapı Araçlarını içeren Visual Studio 2017 Yapı Araçlarını Kurma
  5. Python 3.6 64-bit yükleyin
  6. NVIDIA CUDA 10.0 ve cuDNN 7.3'ü kurun (GPU hızlandırma için)
  7. Yapı ortamını yapılandır
  8. TensorFlow v1.11 kaynak kodunu kopyalayın ve zorunlu düzeltme ekini uygulayın
  9. Yapı parametrelerini yapılandır
  10. Kaynaklardan TensorFlow oluşturun
  11. Python 3.6 için TensorFlow tekerlek dosyası oluşturun
  12. Python 3.6 için TensorFlow tekerlek dosyasını yükleyin ve sonucu kontrol edin

Adım 1: Git for Windows programını kur

Windows için Git'i indirin ve yükleyin. Onu burada alıyorum. Git.exe yolunun% PATH% ortam değişkenine eklendiğinden emin olun. Git’i

C: \ Bin \ Git

bu eğitim için klasör.

Adım 2: MSYS2 x64 ve komut satırı araçlarını kurun

64 bit dağıtımını buradan indirin ve yükleyin. Bazel, kaynaklar oluşturmak için grep, patch, unzipand ve diğer Unix-tools portlarını kullanır. Her biri için bağımsız ikili dosyalar bulmayı deneyebilirsiniz, ancak MSYS2 paketini kullanmayı tercih ederim. Onu yüklerim

C: \ Bin \ msys64

bu eğitim için klasör. % PATH% ortam değişkenine araçlarla bir klasör eklemelisiniz. Bu benim durumumda “C: \ Bin \ msys64 \ usr \ bin”.

Başlat Menüsünden “MSYS2 MinGW 64-bit” kısayolunu başlatın. Güncellemek için aşağıdaki komutu çalıştırın (isterse “MSYS2 MinGW 64-bit” i yeniden başlatın):

pacman -Syu

O zaman koş:

pacman -Su

Kurulum araçları derleme için gereklidir:

pacman -S yamasını aç

“Çıkış” komutuyla “MSYS2 MinGW 64-bit” kabuğunu kapatın. Daha fazla ihtiyacımız yok.

Adım 3: Visual Studio 2015 Build Tools da dahil olmak üzere Visual Studio 2017 Yapı Araçlarını yükleyin

TensorFlow v1.11'i oluşturmak için Visual Studio 2017 Build Tools'dan “VC ++ 2015.3 v14.00 (v140) masaüstü için araç seti” yüklemeliyiz:

Adım 4: Bazel'i yükleyin

En son Basel'i buradan indirin. Bazel- -windows-x86_64.exe dosyasını bulun. Bu dersi bazel 0.17.2 ile test ettim. İkiliyi bazel.exe olarak yeniden adlandırın ve% PATH% üzerindeki dizine taşıyın, böylece herhangi bir dizine bazel yazarak Bazel'i çalıştırabilirsiniz. Problem durumunda, Windows x64 için Bazel kurulumunun detaylarına bakınız.

Bash konumu için BAZEL_SH global ortam değişkenini ekleyin. Benim yolum

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

“VC ++ 2015.3 v14.00 (v140) masaüstü için araç takımı” aracı zincirinin yeri için BAZEL_VC global ortam değişkenini ekleyin:

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

Adım 5: Python 3.6 64-bit yükleyin

TensorFlow Python 3.7'yi desteklemiyor, bu nedenle 3.6 sürümünü yüklemelisiniz.
Görünüşe göre TensorFlow v1.11, Anaconda / Miniconda yazılımını desteklemiyor. Artık garip hata alıyorum. Bu yüzden Python sanal ortamını derleme için kullanıyorum.

Python 3.6 buradan indirebilirsiniz. Kurun ve python.exe'ye% PATH% değişkenine konum ekleyin.

Adım 6: NVIDIA CUDA 10.0 ve cuDNN 7.3'ü kurun (GPU hızlandırma için)

CUDA'yı destekleyen NVIDIA Grafik Kartınız varsa bu bölüm geçerlidir. Aksi halde bu bölümü atlayın.
Yardıma ihtiyacınız olursa, CUDA'nın adım adım kurulumuna bakın. Bu kılavuzu kopyalayıp yapıştırıyorum ama bazı detayları kesiyorum.

Https://developer.nvidia.com/cuda-downloads adresine gidin ve Windows için CUDA 10.0 Installer'ı indirin [sürümünüz]. Benim için, sürüm Windows 10'dur.

Varsayılan ayarlarla varsayılan konuma kurun ancak VisualStudio entegrasyon seçeneğinin işaretini kaldırın. Gerekirse GPU sürücünüzü günceller ve yeniden başlatır.

Koşmaya başla (Win + R) cmd yazın

Aşağıdaki komut nvcc sürümünü kontrol edecek ve yol ortam değişkeninde ayarlandığından emin olacaktır.

nvcc --version

Sıradaki https://developer.nvidia.com/cudnn 'e (Üyelik gerekli).

Giriş yaptıktan sonra aşağıdakileri indirin:

cuDNN v7.3.1 Windows için Kitaplık [sürümünüz] benim için Windows 10. İndirilen klasöre gidin ve zip dosyasını çıkartın.

Ayıklanan klasörün içine gidin ve tüm dosyaları ve klasörü cuda klasöründen (örn. Bin, include, lib) kopyalayın ve “C: \ Program Files \ NVIDIA GPU Hesaplama Araç Takımı \ CUDA \ v10.0” a yapıştırın.

Buradaki son adım,% PATH% ortam değişkenine “C: \ Program Files \ NVIDIA GPU Hesaplama Araç Takımı \ CUDA \ v10.0 \ extras \ CUPTI \ libx64” eklemesidir.

Adım 7: Yapı ortamını yapılandırın

Başlat Menüsü'nden x64 (“VS2015 x64 Yerel Araçlar Komut İstemi” kısayolu) için VC ++ 2015 kabuğunu başlatın.

Daha sonra Python ortamını yaratmanız, etkinleştirmeniz ve yapılandırmanız gerekir. Aşağıdaki “VS2015 x64 Yerel Araçlar Komut İstemi” kabuğu komutlarının içinde çalıştırın (konumlarınıza göre yolları doğrulayın).

pip3 kurulum -U virtualenv
virtualenv - sistem-site-paketleri C: \ Users \ amsokol \ tensorflow-v1.11
C: \ Users \ amsokol \ tensorflow-v1.11 \ komut dosyaları \ activate.bat

Komutlar uygulandıktan sonra kabuğunuz şöyle görünmelidir:

Zorunlu Python paketlerini kurun:

pip3 altı numpy tekerlek yüklemek
pip3 yükleme keras_applications == 1.0.5 - no-deps
pip3 yükleme keras_preprocessing == 1.0.3 - no-deps

Zorunlu paketlerin yüklendiğinden emin olmak için “pip3 list” çalıştırın:

Şimdilik bu kadar. Kabuğunu kapatmayın.

Adım 8: TensorFlow kaynak kodunu klonlayın ve zorunlu yamayı uygulayın

Öncelikle, TensorFlow kaynak kodunun klonlanacağı klasörü seçmelisiniz. Benim durumumda “C: \ Users \ amsokol \ Development \ tensorflow-build” ifadesidir. Kabuğa geri dön ve koş:

cd C: \ Kullanıcılar \ amsokol \ Geliştirme \ tensorflow-build

Kaynak kodunu kopyala:

git klonu https://github.com/tensorflow/tensorflow

1.11 sürümünün son sürümü:

cd tensorflow
git ödeme v1.11.0

Şimdi kaynaklarımız var.

Eigen üçüncü taraf kütüphanesinde bir HATA var. İnşa etmeden önce düzeltmeliyiz.
  • Yamayı buradan indirin ve dosya adını eigen_half.patch ile üçüncü_party klasörüne kaydedin
  • Patch_file = clean_dep (“// third_party: eigen_half.patch”) ekleyin, tensorflow / workspace.bzl dosyasına giden eigen_archive bölümüne gidin.

Tensorflow / workspace.bzl dosyasındaki sonuç şöyle olmalıdır:

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

Bitti.

Adım 9: Yapı parametrelerini yapılandırın

Kaynak kod kök klasöründe olduğumuza emin olun:

cd C: \ Kullanıcılar \ amsokol \ Geliştirme \ tensorflow-build \ tensorflow

Yapılandırıcıyı çalıştır:

python ./configure.py

İlk önce Python'un yerini sorar. Varsayılan değerden çıkmak için Enter tuşuna basın:

...
Bazel 0.17.2 kurulu.
Lütfen python'un yerini belirtin. [Varsayılan: C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Sonra Python kütüphane yollarının yerini sorar. Varsayılan değerden çıkmak için Enter tuşuna basın:

Geri izleme (en son yapılan arama):
  Dosya "", satır 1, 
AttributeError: 'site' modülü 'getsitepackages' özelliğine sahip değil
Mümkün Python kütüphane yolları bulundu:
  C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site paketleri
Lütfen kullanmak istediğiniz Python kütüphane yolunu girin. Varsayılan: [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site paketleri]

Sonra nGraph desteği hakkında sorar. İhtiyacımız yok. “N” ye basın:

NGraph desteğiyle TensorFlow oluşturmak ister misiniz? [y / N]: n
TensorFlow için hiçbir nGraph desteği etkinleştirilmez.

Sonra CUDA desteği hakkında sorular sorar:

TensorFlow'u CUDA desteğiyle oluşturmak ister misiniz? [Y / H]:

GPU hızlandırma kullanacaksanız “y” cevabını verin. Aksi takdirde “n” ye basın.

CUDA için Evet durumunda, yapılandırıcı ek sorular sorar:
CUDA SDK sürümü olarak 10.0 cevabı:
Lütfen kullanmak istediğiniz CUDA SDK sürümünü belirtin. [Varsayılanı boş bırakarak CUDA 9.0]: 10.0
Varsayılan CUDA araç kiti konumunu bırakmak için Enter tuşuna basın:
Lütfen CUDA 10.0 araç setinin kurulu olduğu yeri belirtin. Daha fazla bilgi için README.md adresine bakın. [Varsayılan C: / Program Dosyaları / NVIDIA GPU Hesaplama Araç Takımı / CUDA / v10.0]:
7.3.1 cuDNN versiyonu olarak cevaplandır:
Lütfen kullanmak istediğiniz cuDNN sürümünü belirtin. [CuDNN 7.0 için varsayılanı boş bırakın]: 7.3.1
Varsayılan cuDNN kitaplığı konumundan çıkmak için Enter tuşuna basın:
Lütfen cuDNN 7 kütüphanesinin kurulu olduğu yeri belirtin. Daha fazla bilgi için README.md adresine bakın. [Varsayılan C: / Program Dosyaları / NVIDIA GPU Hesaplama Araç Takımı / CUDA / v10.0]:
Sonraki soru, inşa edilecek CUDA hesaplama yetenekleriyle ilgilidir. Cihazınızın işlem kapasitesini şu adreste bulabilirsiniz: https://developer.nvidia.com/cuda-gpus. Ben GTX 1070’im var.
Lütfen oluşturmak istediğiniz virgülle ayrılmış Cuda hesaplama yeteneklerinin bir listesini belirtin.
Cihazınızın işlem kapasitesini şu adreste bulabilirsiniz: https://developer.nvidia.com/cuda-gpus.
Her ek hesaplama özelliğinin, oluşturma sürenizi ve ikili boyutunuzu önemli ölçüde artırdığını lütfen unutmayın. [Varsayılan: 3.5,7.0]: 6.1

Sonraki soru optimizasyon bayraklarını ayarlamak. 6. Gen Intel işlemcime sahibim, bu yüzden cevapladım / arşivdim: AVX2:

Lütfen "--config = opt" bazel seçeneği belirtildiğinde derleme sırasında kullanılacak optimizasyon bayraklarını belirtin [Varsayılan: / arch: AVX]: / arch: AVX2

Son soru öze ile ilgili. “Y” cevabını verin. Derleme süresini önemli ölçüde azaltır.

Derleme süresini azaltmak için bazı C ++ derlemeleri için eigen inline komutunu geçersiz kılmak ister misiniz? [Y / n]: y
Eigen güçlü satır içi geçersiz kılındı.

Yapılandırma tamamlandı. Hadi yapalım.

Adım 10: Kaynaklardan TensorFlow'u oluşturun

Kaynak kod kök klasöründe olduğumuza emin olun:

cd C: \ Kullanıcılar \ amsokol \ Geliştirme \ tensorflow-build \ tensorflow
İnşa etmek uzun zaman alıyor. Windows Defender Antivirus gerçek zamanlı korumasını içeren antivirüs yazılımını kapatmanızı şiddetle tavsiye ederim.

Derlemeyi çalıştır:

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

Arkanıza yaslanın ve bir süre rahatlayın.

Adım 11: Python 3.6 için TensorFlow tekerlek dosyası oluşturun

Python tekerlek dosyası oluşturmak için komutu çalıştırın:

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

Başarısız:

Bilinen bir sorun var. “Bazel-bin \ tensorflow \ tools \ pip_package” klasörüne bakın. Sıfır uzunluklu “simple_console_for_windows.zip” dosyasını içerir. Sorun bu. Bazel, 2GB daha büyük dosya için başarısız olan 32 bitlik zip yardımcı programını içerir. Ayrıntılar ve geçici çözüm için bağlantılara bakın:

  • 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

Sorunu çözmek için adımlar vardır:

cd. \ bazel-bin \ tensorflow \ tools \ pip_package

“Simple_console_for_windows.zip-0.params” dosyasını açın ve “mnist.zip” içeren satırı kaldırın:

...
runfiles / org_tensorflow / tensorflow / contrib / istekli / piton / örnekler / gan / mnist.zip = Bazel aşımı / x64_windows-opt / bin / tensorflow / contrib / istekli / piton / örnekler / Gan / mnist.zip
...
Bana yardım ediyor. Faydası bulunmuyorsa, sadece zip dosyaları olan diğer satırları kaldırmanız yeterli (burada ayrıntılara bakın). Bu aktivitenin amacı “simple_console_for_windows.zip” uzunluğunu 2GB'tan daha az yapmaktır.

Boş “simple_console_for_windows.zip” dosyasını silin.

Sonra ana klasörünüze bakın. Adı “_bazel_ ” gibi bir klasör görmelisiniz. Benim durumumda “_bazel_amsokol”. Derleme dosyaları içeren bir klasör içerir. Benim durumumda "lx6zoh4k" dir. Koşuya geri dön (klasör adlarına göre düzelt):

cd C: \ Kullanıcılar \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

“Simple_console_for_windows.zip” dosyasını manuel olarak oluşturun:

harici \ bazel_tools \ tools \ zip \ fermuar \ 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

Python tekerlek dosyası oluşturmak için komutu çalıştırın:

cd C: \ Kullanıcılar \ amsokol \ Geliştirme \ tensorflow-build \ tensorflow
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

“.. \ out” klasöründe tensorflow-1.11.0-cp36-cp36m-win_amd64.whl dosyası oluşturur.

Adım 12: Python 3.6 için TensorFlow tekerlek dosyasını kurun ve sonucu kontrol edin

Python tekerlek dosyasını yüklemek için komutu çalıştırın:

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

“Tensorflow” dizinini bırakın (bazen Tensoflow kaynak kodu klasörü içindeki Python komut dosyalarını çalıştırdığımda hatalar oluyor - nedenini bilmiyorum):

cd ..

Burada indirme betiğini kontrol etmek veya kopyalayıp yapıştırıp çalıştırmak için:

tensorflow'u tf olarak içe aktar
hello = tf.constant ('Merhaba, TensorFlow!')
session = tf.Session ()
Baskı (session.run (merhaba))

Sistem aşağıdakileri verirse, her şey yolunda demektir:

Merhaba, TensorFlow!

Çıktım:

Windows makinede TensorFlow uygulamasını başarıyla yüklediniz.

Sizin için işe yarayıp yaramadığını bana yorumlarda bildirin. Ya da herhangi bir hata varsa. Teşekkürler!