[განახლება 1] Windows- ისთვის TensorFlow GPU / CPU- ის შექმნა და დაინსტალირება საწყისი კოდექსიდან Bazel და Python 3.6

ეს არის ჩემი წინა ამბის განახლება. რა არის აქ ახალი:

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

ოფიციალურ საიტზე არის სახელმძღვანელო. ეს არ არის ძალიან ყოვლისმომცველი, მაგრამ ზოგჯერ სასარგებლოა.

Შემაჯამებელი

  1. დააინსტალირეთ Git Windows- ისთვის
  2. დააინსტალირეთ Bazel
  3. დააინსტალირეთ MSYS2 x64 და ბრძანების ხაზის ინსტრუმენტები
  4. დააინსტალირეთ Visual Studio 2017 Build Tools, მათ შორის Visual Studio 2015 Build Tools
  5. დააინსტალირეთ Python 3.6 64-ბიტიანი
  6. დააინსტალირეთ NVIDIA CUDA 10.0 და cuDNN 7.3 (GPU აჩქარებისთვის)
  7. კონფიგურაცია სამშენებლო გარემოში
  8. Clone TensorFlow v1.11 კოდის კოდი და გამოიყენეთ სავალდებულო პატჩი
  9. მშენებლობის პარამეტრების კონფიგურაცია
  10. ააშენეთ TensorFlow წყაროებიდან
  11. შექმენით TensorFlow ბორბლის ფაილი Python 3.6– სთვის
  12. დააინსტალირეთ TensorFlow ბორბლის ფაილი Python 3.6– სთვის და შეამოწმეთ შედეგი

ნაბიჯი 1: დააინსტალირეთ Git Windows- ისთვის

ჩამოტვირთეთ და დააინსტალირეთ Git Windows- ისთვის. მე მას აქ მივყავარ. დარწმუნდით, რომ git.exe- ის გზა დაემატა% PATH% გარემოს ცვლადს. მე ვაყენებ Git- ს

C: \ Bin \ Git

საქაღალდე ამ სახელმძღვანელოსთვის.

ნაბიჯი 2: დააინსტალირეთ MSYS2 x64 და ბრძანების ხაზის ინსტრუმენტები

ჩამოტვირთეთ და დააინსტალირეთ 64-ბიტიანი განაწილება აქ. Bazel იყენებს grep, patch, unzipand და სხვა პორტებს Unix– ის ინსტრუმენტებიდან წყაროების შესაქმნელად. შეგიძლიათ სცადოთ იპოვოთ ცალკეული ბინარები თითოეული მათგანისთვის, მაგრამ მე მირჩევნია გამოვიყენო MSYS2 პაკეტი. მე ვაყენებ მას

C: \ Bin \ msys64

საქაღალდე ამ სახელმძღვანელოსთვის. თქვენ უნდა დაამატოთ ინსტრუმენტების საქაღალდე% PATH% გარემოს ცვლადს. ჩემს შემთხვევაში ეს არის "C: \ Bin \ msys64 \ usr \ bin".

საწყისი მენიუდან დაიწყეთ ბმული "MSYS2 MinGW 64-Bit". განახლებისთვის, აწარმოეთ შემდეგი ბრძანება (მოთხოვნის შემთხვევაში, გადატვირთეთ MSYS2 MinGW 64-ბიტიანი):

პაკმან სიუ

შემდეგ გაუშვით:

პაკმანი -სუ

მშენებლობისთვის საჭიროა ინსტალაციის ინსტრუმენტები:

გახსენით Pacman პატჩი

დახურეთ MSYS2 MinGW 64-Bit-Shell ბრძანებით "გასვლა". ეს აღარ გვჭირდება.

ნაბიჯი 3: დააინსტალირეთ Visual Studio 2017 Build Tools, მათ შორის Visual Studio 2015 Build Tools

ჩვენ უნდა დავაინსტალიროთ VC ++ 2015.3 v14.00 (v140) Visual Studio 2017 Build Tools– დან დესკტოპის ხელსაწყოებისთვის, TensorFlow v1.11– ის ასაშენებლად:

ნაბიჯი 4: დააინსტალირეთ Bazel

ჩამოტვირთეთ უახლესი ბაზელი აქ. მოძებნეთ ფაილი bazel- -windows-x86_64.exe. მე გამოვცადე ეს სახელმძღვანელო Bazel 0.17.2-ით. ორობითი სახელი გადაარქვით bazel.exe- ზე და გადაიტანეთ დირექტორიაში% PATH% ისე, რომ შეძლოთ Bazel- ის გაშვება ნებისმიერი დირექტორიაში bazel- ის აკრეფით. Windows x64- ისთვის Bazel- ის ინსტალაციის შესახებ დეტალებისთვის იხილეთ პრობლემები.

Bash პოზიციისთვის დაამატეთ გლობალური გარემოს ცვლადი BAZEL_SH. ჩემი გზა არის

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

დაამატეთ გლობალური გარემოს ცვლადი BAZEL_VC ინსტრუმენტთა ნაკრებისთვის "VC ++ 2015.3 v14.00 (v140) დესკტოპისთვის":

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

ნაბიჯი 5: დააინსტალირეთ Python 3.6 64-ბიტიანი

TensorFlow არ უჭერს მხარს Python 3.7-ს, ამიტომ თქვენ უნდა დააყენოთ 3.6 ვერსია.
როგორც ჩანს, TensorFlow v1.11 აღარ უჭერს Anaconda / Miniconda- ს მშენებლობისთვის - უცნაურ შეცდომას ვღებულობ. ამიტომ მე ვიყენებ Python ვირტუალურ გარემოს შესაქმნელად.

Python 3.6 შეგიძლიათ ჩამოტვირთოთ აქ. დააინსტალირეთ და დაამატეთ python.exe ადგილმდებარეობა% PATH% ცვლადში.

ნაბიჯი 6: დააინსტალირეთ NVIDIA CUDA 10.0 და cuDNN 7.3 (GPU აჩქარებისთვის)

ეს სექცია განახლებულია, თუ გაქვთ NVIDIA გრაფიკული ბარათი, რომელიც მხარს უჭერს CUDA- ს. წინააღმდეგ შემთხვევაში, გამოტოვეთ ეს სექცია.
CUDA- ს ეტაპობრივი ინსტალაცია აქ შეგიძლიათ, თუ დახმარება გჭირდებათ. მე ვაკოპირებ ამ სახელმძღვანელოს, მაგრამ ვჭრი ზოგიერთ დეტალს.

გადადით https://developer.nvidia.com/cuda-downloads და ჩამოტვირთეთ CUDA 10.0 ინსტალერი Windows- ისთვის [თქვენი ვერსია]. ჩემთვის ვერსია არის Windows 10.

დააინსტალირეთ ის სტანდარტულ დირექტორიაში, ნაგულისხმევი პარამეტრებით, მაგრამ გამორთეთ VisualStudio ინტეგრაციის ვარიანტი. GPU– ს დრაივერი განახლდება და საჭიროების შემთხვევაში განახლდება.

გაუშვით ბრძანება cmd (Win + R)

შემდეგი ბრძანება ამოწმებს nvcc ვერსიას და უზრუნველყოფს მის დაყენებას ბილიკის გარემოს ცვლადში.

nvcc - შებრუნება

გადადით https://developer.nvidia.com/cudnn (წევრობა აუცილებელია).

სისტემაში შესვლის შემდეგ გადმოწერეთ:

cuDNN v7.3.1 ბიბლიოთეკა Windows- ისთვის [თქვენი ვერსია] ჩემთვის Windows 10. გადადით თქვენს გადმოწერილ საქაღალდეში და ამოიღეთ zip ფაილი.

გადადით მოპოვებულ საქაღალდეში და დააკოპირეთ ყველა ფაილი და საქაღალდე სხვადასხვა საქაღალდიდან (მაგ., Bin, include, lib) და ჩასვით "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 "ერთი.

საბოლოო ეტაპია "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64" დაამატოთ% PATH% გარემოს ცვლადი.

ნაბიჯი 7: მშენებლობის გარემოს კონფიგურაცია

დაიწყეთ VC ++ 2015 ჭურვი x64– ისთვის (მალსახმობი „VS2015 x64 Native Tools ბრძანების სტრიქონი“) საწყისი მენიუდან.

შემდეგ, თქვენ უნდა შექმნათ, გააქტიუროთ და დააკონფიგურიროთ Python გარემო. შეასრულეთ შემდეგი ბრძანებების ბრძანებები "VS2015 x64 Native Tools Command Prompt" (შეასწორეთ ბილიკები თქვენი პოზიციების შესაბამისად).

pip3 ინსტალაცია -U ვირტუალურ
virtualenv --system-site-packages C: \ Users \ amsokol \ tensorflow-v1.11
C: \ მომხმარებლები \ amsokol \ tensorflow-v1.11 \ სკრიპტები \ activ.bat

თქვენი ჭურვი ასე უნდა გამოიყურებოდეს ბრძანებების გამოყენების შემდეგ:

დააინსტალირეთ Python- ის სავალდებულო პაკეტები:

pip3 დააინსტალირეთ ექვსი numpy საჭე
pip3 დააინსტალირეთ keras_applications == 1.0.5 - no-deps
pip3 დააინსტალირეთ keras_preprocessing == 1.0.3 - no-deps

გაუშვით "pip3 სია", რომ დარწმუნდეთ, რომ სავალდებულო პაკეტებია დაინსტალირებული:

ახლა ეს ყველაფერი. არ დახუროთ თასი.

ნაბიჯი 8: Clone TensorFlow კოდის კოდი და გამოიყენეთ სავალდებულო პატჩი

პირველ რიგში, უნდა აირჩიოთ საქაღალდე, სადაც გსურთ TensorFlow კოდის კლონირება. ჩემს შემთხვევაში ეს არის "C: \ Users \ amsokol \ Development \ tensorflow-build". დაუბრუნდით გარსს და გაუშვით:

cd C: \ მომხმარებლები \ amsokol \ განვითარების \ tensorflow-build

კლონის კოდის კოდი:

Git კლონი https://github.com/tensorflow/tensorflow

გადახდა უახლესი ვერსია 1.11:

cd tensorflow
git checkout v1.11.0

ახლა წყაროები გვაქვს.

მათ მესამე მხარის ბიბლიოთეკაში არის BUG. ჩვენ უნდა გამოვასწოროთ მშენებლობის დაწყებამდე.
  • ჩამოტვირთეთ პატჩი აქ და შეინახეთ ფაილის სახელით eigen_half.patch მესამე_პარტის საქაღალდეში
  • დაამატეთ patch_file = clean_dep ("// third_party: eigen_half.patch"), სტრიქონი tensorflow / workspace.bzl ფაილის "eigen_archive" განყოფილებაში.

Tensorflow / workspace.bzl ფაილში მიღებული შედეგი უნდა გამოიყურებოდეს შემდეგნაირად:

... tf_http_archive (სახელი = "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_prefix = "eigen-e ("// მესამე_ მხარე: eigen_half.patch"),) ...

Შესრულებულია.

ნაბიჯი 9: მშენებლობის პარამეტრების კონფიგურაცია

დარწმუნდით, რომ ჩვენ ვართ კოდის ძირეულ საქაღალდეში:

cd C: \ მომხმარებლები \ amsokol \ განვითარების \ tensorflow-build \ tensorflow

აწარმოეთ კონფიგურატორი:

python ./configure.py

ჯერ მოგეთხოვებათ Python- ის ადგილმდებარეობა. დააჭირეთ Enter- ს, რომ შეინარჩუნოთ ნაგულისხმევი მნიშვნელობა:

... თქვენ დააინსტალირეთ bazel 0.17.2.
გთხოვთ მიუთითოთ პითონის ადგილმდებარეობა. [სტანდარტული არის C: \ მომხმარებლები \ amsokol \ tensorflow-v1.11 \ სკრიპტები \ python.exe]:

შემდეგ მოგეთხოვებათ პითონის ბიბლიოთეკისკენ მიმავალი გზა. დააჭირეთ Enter- ს, რომ შეინარჩუნოთ ნაგულისხმევი მნიშვნელობა:

თვალთვალი (ბოლო ზარი ბოლო): ფაილი " ", სტრიქონი 1, შემოსული AttributeError: მოდულს 'Site' არ აქვს ატრიბუტი 'getitepackages' ნაპოვნია Python- ის ბიბლიოთეკის შესაძლო ბილიკები: C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages გთხოვთ შეიყვანოთ Python- ის ბიბლიოთეკის სასურველი გზა. სტანდარტულია [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages]

შემდეგ თქვენ მოგეთხოვებათ nGraph- ის მხარდაჭერა. ჩვენ ეს არ გვჭირდება. დააჭირეთ "n" - ს:

გსურთ ააშენოთ TensorFlow nGraph მხარდაჭერით? [Y / N]: n n გრაფიკული მხარდაჭერა არ არის გააქტიურებული TensorFlow- სთვის.

შემდეგ ის ითხოვს CUDA– ს მხარდაჭერას:

გსურთ TensorFlow- ის აშენება CUDA- ს მხარდაჭერით? [Y / N]:

უპასუხეთ "y" თუ გსურთ გამოიყენოთ GPU აჩქარება. წინააღმდეგ შემთხვევაში, დააჭირეთ "n" - ს.

თუ დიახ CUDA კონფიგურატორისთვის, დაისმება დამატებითი კითხვები:
10.0 უპასუხე, როგორც CUDA SDK ვერსია:
გთხოვთ, მიუთითოთ CUDA SDK ვერსია, რომლის გამოყენებაც გსურთ. [ნაგულისხმევად დატოვე CUDA 9.0]: 10.0
დააჭირეთ Enter- ს CUDA ნაგულისხმევი ინსტრუმენტარიუმის ადგილმდებარეობის გასასვლელად:
გთხოვთ, მიუთითოთ ადგილი, სადაც დაინსტალირებულია CUDA 10.0 ინსტრუმენტარიუმი. დამატებითი ინფორმაციისთვის იხილეთ README.md. [ნაგულისხმევია: C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
პასუხი 7.3.1 როგორც cuDNN ვერსია:
გთხოვთ მიუთითოთ სასურველი cuDNN ვერსია. [დატოვეთ ცარიელი, რომ გამოიყენოთ cuDNN 7.0 სტანდარტულად]: 7.3.1
დააჭირეთ Enter- ს, რომ გამოხვიდეთ cuDNN ბიბლიოთეკის ნაგულისხმევი მდებარეობიდან:
გთხოვთ, შეიყვანოთ ადგილი, სადაც დაინსტალირებულია cuDNN 7 ბიბლიოთეკა. დამატებითი ინფორმაციისთვის იხილეთ README.md. [ნაგულისხმევია: C: / Programs / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
შემდეგი კითხვა ეხება CUDA- ს არითმეტიკულ ფუნქციებს, რომელთა გამოყენებაც შეიძლება აშენდეს. თქვენი მოწყობილობის გამოთვლითი სიმძლავრის ნახვა შეგიძლიათ შემდეგზე: https://developer.nvidia.com/cuda-gpus. მე მაქვს GTX 1070, ამიტომ ვპასუხობ 6.1-ს:
მოგვაწოდეთ Cuda– სგან გამოყოფილი Cuda მათემატიკის ფუნქციების სია, რომელთა გამოყენებით გსურთ აშენება. თქვენი მოწყობილობის გამოთვლითი სიმძლავრის ნახვა შეგიძლიათ შემდეგზე: https://developer.nvidia.com/cuda-gpus. გთხოვთ გაითვალისწინოთ, რომ ყოველი დამატებითი გაანგარიშების ფუნქცია მნიშვნელოვნად ზრდის შექმნის დროს და ორობით ზომას. [ნაგულისხმევია: 3.5.7.0]: 6.1

შემდეგი კითხვა არის ოპტიმიზაციის დროშების დაყენება. მე -6 თაობის Intel CPU მაქვს, ამიტომ ვპასუხობ / თაღლითობ: AVX2:

გთხოვთ, მიუთითოთ ოპტიმიზაციის დროშები, რომლებიც უნდა იქნას გამოყენებული შედგენისას, თუ მითითებულია ბაზელის ვარიანტი "--config = opt". [ნაგულისხმევი არის / arch: AVX]: / arch: AVX2

ბოლო კითხვა ეხება აიგენს. პასუხი "y" - ით. ეს მკვეთრად ამცირებს შედგენის დროს.

გსურთ გადახედოთ საკუთარ ძლიერ შინაარსს C ++ კრებულებისთვის, რომ შეამციროთ შედგენის დრო? [Y / n]: Y Eigen მკაცრად გადაიწერა შინაარსობრივად.

კონფიგურაცია დასრულებულია. ავაშენოთ.

ნაბიჯი 10: ააშენეთ TensorFlow წყაროებიდან

დარწმუნდით, რომ ჩვენ ვართ კოდის ძირეულ საქაღალდეში:

cd C: \ მომხმარებლები \ amsokol \ განვითარების \ tensorflow-build \ tensorflow
შექმნას დიდი დრო სჭირდება. გირჩევთ ანტივირუსული პროგრამის გამორთვას, მათ შორის Windows Defender Antivirus რეალურ დროში დაცვით.

შეასრულე მშენებლობა:

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

იჯექით და დაისვენეთ გარკვეული დროით.

ნაბიჯი 11: შექმენით TensorFlow ბორბლის ფაილი Python 3.6-ისთვის

გაუშვით ბრძანება, რომ შექმნათ პითონის ბორბლის ფაილი:

მკდირი .. \ გარეთ
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

ეს ვერ ხერხდება:

ცნობილი პრობლემაა. გადახედეთ საქაღალდეს "bazel-bin \ tensorflow \ tools \ pip_package". იგი შეიცავს ფაილს "simple_console_for_windows.zip" ნულოვანი სიგრძით. Ეს პრობლემაა. Bazel მოიცავს 32-ბიტიან zip პროგრამას, რომელიც ვერ გამოვა 2 გბაიტიან ფაილზე. დეტალური ინფორმაციისთვის იხილეთ ბმულები:

  • https://github.com/tensorflow/tensorflow/issues/20332
  • https://stackoverflow.com/questions/52394305/creating-pip-package-for-tensorflow-with-gpu-support-result-in-0-byte-simple-co

არსებობს ნაბიჯები პრობლემის მოსაგვარებლად:

CD \ bazel-bin \ tensorflow \ tools \ pip_package

გახსენით ფაილი "simple_console_for_windows.zip-0.params" და წაშალეთ სტრიქონი "mnist.zip" - ით:

...
runfiles / org_tensorflow / tensorflow / contrib / eager / python / მაგალითები / gan / mnist.zip = bazel-out / x64_windows-opt / bin / tensorflow / contrib / eager / python / მაგალითები / gan / mnist.zip
...
ეს მეხმარება. თუ ეს არ გამოგადგებათ, უბრალოდ წაშალეთ სხვა ხაზები zip ფაილებით (იხილეთ დეტალები აქ). ამ აქტივობის მიზანია, რომ simple_console_for_windows.zip არ იყოს სიგრძე 2 გბ-ზე ნაკლები.

წაშალეთ ცარიელი ფაილი "simple_console_for_windows.zip".

შემდეგ, გადახედეთ თქვენს სახლის საქაღალდეს. თქვენ უნდა იპოვოთ საქაღალდე სახელწოდებით "_bazel_ "იხილეთ. ჩემს შემთხვევაში ეს არის" _bazel_amsokol ". იგი შეიცავს საქაღალდეებს, რომლებსაც აშენებენ ფაილებს. ჩემს შემთხვევაში ეს არის" lx6zoh4k ". დაუბრუნდით გაშვების გარსს (თქვენი საქაღალდის სახელწოდების შესაბამისად):

cd C: \ მომხმარებლები \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

ხელით შექმენით ფაილი "simple_console_for_windows.zip":

გარე \ 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 / მარტივი_ კონსოლი_ Windows- ისთვის.zip-0.params

გაუშვით ბრძანება, რომ შექმნათ პითონის ბორბლის ფაილი:

cd C: \ მომხმარებლები \ amsokol \ განვითარების \ tensorflow-build \ tensorflow
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

ეს ქმნის tensorflow-1.11.0-cp36-cp36m-win_amd64.whl ფაილს საქაღალდეში ".. \ out".

ნაბიჯი 12: დააინსტალირეთ TensorFlow ბორბლის ფაილი Python 3.6– სთვის და შეამოწმეთ შედეგი

გაუშვით ბრძანება Python Wheel ფაილის ინსტალაციისთვის:

pip3 ინსტალაცია .. \ out \ tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

გამოდით Tensorflow დირექტორიადან

cd ..

ჩამოტვირთვის სკრიპტის შესამოწმებლად ან ასლის და ჩასმაში გასაშვებად:

Tensorflow- ის იმპორტირება როგორც tf hello = tf.constant ('გამარჯობა, TensorFlow!') სესია = tf.Session () ბეჭდვა (session.run (hello))

თუ სისტემა გამოდის შემდეგს, ყველაფერი კარგად არის:

გამარჯობა TensorFlow!

ჩემი გამომავალი:

თქვენ წარმატებით დააინსტალირეთ TensorFlow Windows კომპიუტერზე.

შემატყობინეთ ქვემოთ მოცემულ კომენტარებში, თუ ის თქვენთვის მუშაობს. ან თუ რაიმე ნაკლი გაქვთ. Დიდი მადლობა!