[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ə
- Windows üçün Git'i quraşdırın
- Bazel quraşdırın
- MSYS2 x64 və komanda xətti alətlərini quraşdırın
- Visual Studio 2015 Build Tools daxil olmaqla Visual Studio 2017 Build Tools-u quraşdırın
- Python 3.6 64 bit quraşdırın
- NVIDIA CUDA 10.0 və cuDNN 7.3 quraşdırın (GPU sürətlənməsi üçün)
- Qurma mühitini konfiqurasiya edin
- TensorFlow v1.11 mənbə kodunu klonlayın və məcburi yamağı tətbiq edin
- Qurma parametrlərini konfiqurasiya edin
- Mənbələrdən TensorFlow yaradın
- Python 3.6 üçün TensorFlow təkər faylı yaradın
- 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!