[Yeniləmə 1] Bazel və Python 3.6 ilə mənbə kodundan Windows üçün TensorFlow GPU / CPU yaratmaq və quraşdırmaq

Bu əvvəlki hekayəmin yeniləməsidir. Burada yeniliklər:

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

Rəsmi saytda bələdçilər var. Çox əhatəli deyil, amma bəzən faydalıdır.

Xülasə

  1. Windows üçün Git'i quraşdırın
  2. Bazel quraşdırın
  3. MSYS2 x64 və komanda xətti alətlərini quraşdırın
  4. Visual Studio 2015 Build Tools daxil olmaqla Visual Studio 2017 Build Tools-u quraşdırın
  5. Python 3.6 64 bit quraşdırın
  6. NVIDIA CUDA 10.0 və cuDNN 7.3 quraşdırın (GPU sürətlənməsi üçün)
  7. Qurma mühitini konfiqurasiya edin
  8. TensorFlow v1.11 mənbə kodunu klonlayın və məcburi yamağı tətbiq edin
  9. Qurma parametrlərini konfiqurasiya edin
  10. Mənbələrdən TensorFlow yaradın
  11. Python 3.6 üçün TensorFlow təkər faylı yaradın
  12. Python 3.6 üçün TensorFlow təkər faylını quraşdırın və nəticəni yoxlayın

Addım 1: Windows üçün Git'i quraşdırın

Windows üçün Git'i yükləyin və quraşdırın. Mən buraya aparıram. Git.exe yolunun% PATH% mühit dəyişəninə əlavə olunduğundan əmin olun. Git-i quraşdırıram

C: \ Bin \ Git

Bu təlimat üçün qovluq.

Addım 2: MSYS2 x64 və Command Line Tools quraşdırın

64 bitlik paylamanı buradan yükləyin. Bazel, mənbələr yaratmaq üçün Unix alətlərindən grep, yamaq, açma və digər portlardan istifadə edir. Hər biri üçün bağımsız ikili sənədləri tapmaq üçün cəhd edə bilərsiniz, amma MSYS2 paketini istifadə etməyi üstün tuturam. Mən onu quraşdırıram

C: \ Bin \ msys64

Bu təlimat üçün qovluq. % PATH% mühit dəyişəninə alətlər qovluğu əlavə etməlisiniz. Mənim vəziyyətimdə "C: \ Bin \ msys64 \ usr \ bin" dir.

Başlanğıc menyusundan "MSYS2 MinGW 64-Bit" bağlantısını başladın. Yeniləmək üçün aşağıdakı əmri işə salın (istənildikdə MSYS2 MinGW 64-biti yenidən başladın):

Pacman Syu

Sonra qaçın:

Pacman -Su

Quruluş üçün quraşdırma alətləri tələb olunur:

Pacman yamağını açın

MSYS2 MinGW 64-bit qabığını "çıx" əmri ilə bağlayın. Artıq buna ehtiyacımız yoxdur.

Adım 3: Visual Studio 2015 Qurmaq Alətləri də daxil olmaqla Visual Studio 2017 Quraşdırma Vasitələrini quraşdırın

TensorFlow v1.11 qurmaq üçün Visual Studio 2017 Build Tools'dan masa üstü alət dəsti üçün VC ++ 2015.3 v14.00 (v140) quraşdırmalıyıq:

Adım 4: Bazel'i quraşdırın

Ən son Baseli buradan yükləyin. Bazel faylını axtarın -windows-x86_64.exe. Bu təlimatı Bazel 0.17.2 ilə sınaqdan keçirdim. İkili sənədin adını bazel.exe olaraq dəyişdirin və onu% PATH% -də bir qovluğa köçürün ki, hər hansı bir qovluğa bazel yazaraq Bazel-i çalışdıra bilərsiniz. Windows X64 üçün Bazel-in quraşdırılması ilə bağlı ətraflı məlumat üçün problemlərə baxın.

Baş mövqeyi üçün qlobal mühit dəyişənini BAZEL_SH əlavə edin. Mənim yolum budur

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

"Masaüstü üçün VC ++ 2015.3 v14.00 (v140)" alət dəsti üçün qlobal mühit dəyişənini BAZEL_VC əlavə edin:

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

Addım 5: Python 3.6 64 bit quraşdırın

TensorFlow Python 3.7-ni dəstəkləmir, ona görə də 3.6 versiyasını quraşdırmalısınız.
TensorFlow v1.11 artıq quruluşlar üçün Anaconda / Miniconda-nı dəstəkləmir - qəribə bir səhv alıram. Bu səbəbdən Python virtual mühitini yaratmaq üçün istifadə edirəm.

Python 3.6-nı buradan yükləmək mümkündür. Qurun və% PATH% dəyişəninə python.exe yerini əlavə edin.

Addım 6: NVIDIA CUDA 10.0 və cuDNN 7.3 quraşdırın (GPU sürətlənməsi üçün)

CUDA-nı dəstəkləyən bir NVIDIA qrafik kartınız varsa, bu bölmə yenidir. Əks təqdirdə, bu bölməni atlayın.
Yardıma ehtiyacınız varsa, burada CUDA-nın addım-addım quraşdırılması mümkündür. Bu təlimatı kopyalayıram, ancaq bəzi detalları kəsirəm.

Https://developer.nvidia.com/cuda-downloads saytına gedin və Windows üçün CUDA 10.0 yükləyicisini yükləyin [öz versiyanız]. Mənim üçün versiya Windows 10-dur.

Varsayılan parametrlərlə standart qovluğa quraşdırın, lakin VisualStudio inteqrasiya seçimini deaktiv edin. GPU sürücüsü yenilənəcək və lazım olduqda yenidən başlayacaq.

Cmd (Win + R) əmrini işə salın

Aşağıdakı əmr nvcc versiyasını yoxlayır və yol mühiti dəyişənində qurulmasını təmin edir.

nvcc - versiya

Https://developer.nvidia.com/cudnn saytına daxil olun (üzv olmaq lazımdır).

Giriş etdikdən sonra yükləyin:

cuDNN v7.3.1 Windows üçün Kitabxana [sizin versiyanız] mənim üçün Windows 10. Yüklədiyiniz qovluğa gedin və zip sənədini çıxarın.

Çıxarılan qovluğa gedin və cuda qovluğundakı bütün faylları və qovluqları kopyalayın (məsələn, bin, include, lib) və "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0" a yapışdırın. "bir.

Son addım,% PATH% mühit dəyişəninə "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64" əlavə etməkdir.

Adım 7: qurma mühitini konfiqurasiya edin

Başlanğıc menyusundan x64 üçün VC ++ 2015 qabığını başlayın (“VS2015 x64 Native Tools əmr istəyi” qısayolu).

Sonra, bir Python mühiti yaratmalı, aktivləşdirməli və konfiqurasiya etməlisiniz. “VS2015 x64 Native Tools Command Prompt” -dakı aşağıdakı shell əmrlərini yerinə yetirin (yolları mövqelərinizə görə düzəldin).

pip3 install -U virtualenv
virtualenv --system-site-packages C: \ Users \ amsokol \ tensorflow-v1.11
C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ activate.bat

Tətbiq olunan əmrlərdən sonra qabığınız belə olmalıdır:

Məcburi Python paketlərini quraşdırın:

pip3 altı səssiz təkər quraşdırın
pip3 install keras_applications == 1.0.5 --no-deps
pip3 install keras_preprocessing == 1.0.3 --no-deps

Məcburi paketlərin quraşdırıldığından əmin olmaq üçün "pip3 list" i işə salın:

Hələlik hamısı budur. Çanağı bağlamayın.

Adım 8: TensorFlow mənbə kodunu klonlayın və məcburi yamağı tətbiq edin

Əvvəlcə TensorFlow mənbə kodunun klonlaşdırılmasını istədiyiniz qovluğu seçməlisiniz. Mənim vəziyyətimdə "C: \ Users \ amsokol \ Development \ tensorflow-build" dir. Qabığa qayıdın və qaçın:

cd C: \ Users \ amsokol \ Development \ tensorflow-build

Klon mənbə kodu:

Git klon https://github.com/tensorflow/tensorflow

Son versiya 1.11-dən çıxış edin:

CD tensor axını
git checkout v1.11.0

İndi mənbələrimiz var.

Üçüncü şəxslərin kitabxanasında bir BUG var. Tikmədən əvvəl düzəltməliyik.
  • Yamanı buradan yükləyin və eigen_half.patch fayl adı ilə üçüncü_party qovluğunda saxlayın
  • Patch_file = clean_dep ("// third_party: eigen_half.patch"), tensorflow / workspace.bzl faylının "eigen_archive" bölümünə sətir əlavə edin.

Tensorflow / workspace.bzl faylındakı nəticə belə olmalıdır:

... tf_http_archive (name = "eigen_archive", urls = ["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", strip_preen -en = " ("// üçüncü_ tərəf: eigen_half.patch"),) ...

Bitdi

Adım 9: qurma parametrlərini konfiqurasiya edin

Mənbə kodu kök qovluğunda olduğumuza əmin olun:

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow

Konfiquratoru işə salın:

python ./configure.py

Əvvəlcə Pythonun yeri istənəcək. Varsayılan dəyəri saxlamaq üçün Enter düyməsini basın:

... bazel 0.17.2 quraşdırmısınız.
Zəhmət olmasa Python yerini göstərin. [Standart C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe] dir:

Bundan sonra Python kitabxanasına gedən yol istənəcəkdir. Varsayılan dəyəri saxlamaq üçün Enter düyməsini basın:

İzləmə (son zəng son): fayl " ", Sətir 1, in AttributeError: 'Site' modulunda 'getsitepackages' atributu yoxdur; mümkün Python kitabxana yolları tapıldı: C: ​​\ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages Zəhmət olmasa istədiyiniz Python kitabxana yolunu daxil edin. Standart [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages]

Sonra nGraph dəstəyi istənəcəkdir. Buna ehtiyacımız yoxdur. "N" düyməsinə basın:

NGraph dəstəyi ilə TensorFlow qurmaq istərdinizmi? [Y / N]: n n qrafik dəstəyi TensorFlow üçün aktivləşdirilməyib.

Sonra CUDA dəstəyi istənir:

CUDA dəstəyi ilə TensorFlow qurmaq istəyirsiniz? [Y / N]:

GPU sürətləndirməsindən istifadə etmək istəyirsinizsə "y" cavabını verin. Əks təqdirdə, "n" düyməsini basın.

CUDA konfiquratoru üçün evet olarsa, əlavə suallar soruşulur:
10.0-ı CUDA SDK versiyası olaraq cavablandırın:
Xahiş edirəm istifadə etmək istədiyiniz CUDA SDK versiyasını göstərin. [CUDA 9.0-a standart olaraq boş qoyun]: 10.0
Varsayılan CUDA alət dəsti yerindən çıxmaq üçün Enter düyməsini basın:
Xahiş edirəm CUDA 10.0 alət dəstinin quraşdırıldığı yeri göstərin. Daha çox məlumat üçün README.md saytına baxın. [Varsayılan C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Cavab 7.3.1 cuDNN versiyası olaraq:
Xahiş edirəm istədiyiniz cuDNN versiyasını göstərin. [Varsayılan olaraq cuDNN 7.0 istifadə etmək üçün boş buraxın]: 7.3.1
Varsayılan cuDNN kitabxana yerindən çıxmaq üçün Enter düyməsini basın:
Zəhmət olmasa cuDNN 7 kitabxanasının quraşdırıldığı yeri daxil edin. Daha çox məlumat üçün README.md saytına baxın. [Varsayılan C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Növbəti sual, qurmaq üçün istifadə edilə bilən CUDA arifmetik funksiyaları ilə əlaqədardır. Cihazınızın hesablama qabiliyyətini aşağıdakı linkdən tapa bilərsiniz: https://developer.nvidia.com/cuda-gpus. GTX 1070 var, buna görə 6.1 cavab verirəm:
Qurmaq istədiyiniz vergüllə ayrılmış Cuda riyaziyyat funksiyalarının siyahısını verin. Cihazınızın hesablama qabiliyyətini aşağıdakı linkdən tapa bilərsiniz: https://developer.nvidia.com/cuda-gpus. Xahiş edirik unutmayın ki, hər əlavə hesablama funksiyası yaradılış müddətini və ikili ölçünü xeyli artırır. [Varsayılan: 3.5.7.0]: 6.1

Növbəti sual optimallaşdırma bayraqlarını təyin etməkdir. 6-cı nəsil Intel CPU-ya sahibəm, buna görə cavab verirəm / arch: AVX2:

Zəhmət olmasa "--config = opt" Basel seçimi göstərildiyi təqdirdə tərtib zamanı istifadə ediləcək optimallaşdırma bayraqlarını göstərin. [Varsayılan / arch: AVX]: / arch: AVX2

Son sual Özgə aiddir. "Y" ilə cavab verin. Kompilyasiya müddətini kəskin şəkildə azaldır.

Tərtib müddətini azaltmaq üçün bəzi C ++ kompilyasiyaları üçün öz güclü sətirinizi ləğv etmək istəyirsiniz? [Y / n]: Y Xüsusi satır üstü çox yazılmışdır.

Konfiqurasiya tamamlandı. Gəlin quraq.

Adım 10: TensorFlow mənbələrdən qurun

Mənbə kodu kök qovluğunda olduğumuza əmin olun:

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
Yaratmaq çox vaxt aparır. Windows Defender Antivirus real vaxt qoruması da daxil olmaqla antivirus proqramını söndürməyi məsləhət görürəm.

Quruluşu icra edin:

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

Bir az geri oturun və rahatlayın.

Adım 11: Python 3.6 üçün TensorFlow təkər faylı yaradın

Python Wheel faylı yaratmaq üçün əmri işə salın:

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

Uğursuz:

Məlum bir problem var. "Bazel-bin \ tensorflow \ tools \ pip_package" qovluğuna baxın. Sıfır uzunluqda "simple_console_for_windows.zip" faylını ehtiva edir. Problem budur. Bazel, 2 GB daha böyük bir faylda uğursuz olacaq 32 bit zip proqramını ehtiva edir. Ətraflı məlumat və keçid yolu üçün linklərə baxı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

Problemi həll etmək üçün addımlar var:

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

"Simple_console_for_windows.zip-0.params" sənədini açın və sətri "mnist.zip" ilə silin:

...
runfiles / org_tensorflow / tensorflow / contrib / eager / python / sample / gan / mnist.zip = bazel-out / x64_windows-opt / bin / tensorflow / contrib / eager / python / sample / gan / mnist.zip
...
Bu mənə kömək edir. Sizə kömək etmirsə, sadəcə zip faylları ilə digər sətirləri silin (ətraflı məlumatı burada oxuyun). Bu fəaliyyətin məqsədi simple_console_for_windows.zip-in uzunluğunun 2 GB-dan az olmasını təmin etməkdir.

Boş faylı "simple_console_for_windows.zip" silin.

Sonra ev qovluğuna nəzər yetirin. "_Bazel_" adlı qovluğu tapmalısınız "Baxın. Mənim vəziyyətimdə" _bazel_amsokol "dur. İçərisində qurma faylları olan qovluqlar var. Mənim vəziyyətimdə" lx6zoh4k "dir. Bir işin qabığına qayıdın (qovluq adlarınıza uyğun olaraq):

cd C: \ Users \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

"Simple_console_for_windows.zip" faylını əl ilə yaradın:

xarici \ bazel_tools \ tools \ zip \ zipper \ 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 Wheel faylı yaratmaq üçün əmri işə salın:

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

".. \ out" qovluğunda tensorflow-1.11.0-cp36-cp36m-win_amd64.whl faylını yaradır.

Adım 12: Python 3.6 üçün TensorFlow təkər faylını quraşdırın və nəticəni yoxlayın

Python Wheel faylını quraşdırmaq üçün əmri işə salın:

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

Tensorflow qovluğundan çıxın

CD ..

Yükləmə skriptini buraya yoxlamaq və ya kopyalayıb yapışdıraraq işlədin:

Tensorflow'u tf salam = tf.constant ('Salam, TensorFlow!') Olaraq idxal edin. Sessiya = tf.Session () print (session.run (salam))

Sistem aşağıdakıları verirsə, hər şey qaydasındadır:

Salam TensorFlow!

Mənim çıxışım:

İndi TensorFlow'u bir Windows kompüterinə müvəffəqiyyətlə qurdunuz.

Sizin üçün işləsə, aşağıdakı şərhlərdə mənə bildirin. Və ya hər hansı bir qüsurunuz varsa. Çox təşəkkür edirik!