[Թարմացում 1] Bazel- ի և Python 3.6-ի աղբյուրի կոդից Windows- ի համար TensorFlow GPU / CPU- ի ստեղծում և տեղադրում

Սա իմ նախորդ պատմության թարմացումն է: Ի՞նչ նորություններ կան այստեղ ՝

  • 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. Կլոնավորեք 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-բիթանոց կեղևը «ելք» հրամանով: Դա մեզ այլեւս պետք չէ:

Քայլ 3. Տեղադրեք Visual Studio 2017-ի կառուցման գործիքները, ներառյալ Visual Studio 2015-ի կառուցման գործիքները

Մենք պետք է տեղադրենք 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- ի միջոցով: Վերանվանեք binary– ը bazel.exe և տեղափոխեք այն% PATH% ցուցակում, որպեսզի կարողանաք գործարկել Bazel ՝ ցանկացած գրացուցակում մուտքագրելով bazel Windows x64- ի համար Bazel- ը տեղադրելու մանրամասների համար խնդրում ենք այցելել խնդիրներ:

Բաշի դիրքի համար ավելացրեք BAZEL_SH գլոբալ միջավայրի փոփոխականը: Իմ ճանապարհն է

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

«VC ++ 2015.3 v14.00 (v140) աշխատասեղանի համար» գործիքակազմի համար ավելացրեք BAZEL_VC գլոբալ միջավայրի փոփոխականը.

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 ֆայլը:

Գնացեք արդյունահանվող պանակ և պատճենեք բոլոր ֆայլերն ու պանակները տարբեր թղթապանակից (օրինակ ՝ աղբարկղ, ներառեք, lib) և տեղադրեք դրանք «C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 «մեկը

Վերջնական քայլը% PATH% միջավայրի փոփոխականին ավելացնել «C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ extras \ CUPTI \ libx64»:

Քայլ 7. Կազմաձևեք կառուցապատման միջավայրը

Սկսելու ցանկից սկսեք x64- ի համար VC ++ 2015 վահանակը («VS2015 x64 Native Tools հրամանի տող» դյուրանցում):

Հաջորդը, դուք պետք է ստեղծեք, ակտիվացնեք և կազմաձևեք Python միջավայր: Կատարեք հետևյալ վահանակի հրամանները «VS2015 x64 Native Tools հրամանի տողում» (շտկեք ուղիները ՝ ըստ ձեր դիրքի):

pip3 տեղադրեք -U վիրտուալենվ
virtualenv --system-site-packages C: \ Users \ amsokol \ tensorflow-v1.11
C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ activ.bat

Ձեր վահանակը պետք է այսպիսի տեսք ունենա ՝ կիրառված հրամաններից հետո.

Տեղադրեք Python- ի պարտադիր փաթեթները.

pip3 տեղադրեք վեց անպիտան անիվ
pip3 տեղադրել keras_applications == 1.0.5 - no-deps
pip3 տեղադրել keras_preprocessing == 1.0.3 - no-deps

Գործարկեք «pip3 ցուցակը» ՝ համոզվելու համար, որ պարտադիր փաթեթները տեղադրված են.

Առայժմ այսքանը: Մի փակեք ամանը:

Քայլ 8. Կլոնավորեք TensorFlow աղբյուրի կոդը և կիրառեք պարտադիր կարկատակը

Նախ, անհրաժեշտ է ընտրել այն թղթապանակը, որտեղ ցանկանում եք կլոնավորել TensorFlow աղբյուրի կոդը: Իմ դեպքում դա «C: \ Users \ amsokol \ Development \ tensorflow-build» է: Վերադառնալ պատյան և վազել.

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

Կլոնի աղբյուրի կոդը ՝

Git կլոն https://github.com/tensorflow/tensorflow

Checkout- ի վերջին տարբերակը `1.11:

cd tensorflow
git checkout v1.11.0

Այժմ մենք ունենք աղբյուրներ:

Իրենց երրորդ կողմի գրադարանում կա ՍԽԱԳ: Մենք պետք է շտկենք այն կառուցելուց առաջ:
  • Ներբեռնեք կարկատանն այստեղ և պահեք այն eigen_half.patch ֆայլի անունով երրորդ_կուսակցական թղթապանակում
  • Ավելացնել patch_file = clean_dep ("// third_party: eigen_half.patch"), տող tensorflow / workspace.bzl ֆայլի "eigen_archive" բաժնում:

Tensorflow / workspace.bzl ֆայլի արդյունքը պետք է ունենա այսպիսի տեսք.

... 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 ("// երրորդ_կուսակցություն. eigen_half.patch"),) ...

Կատարած.

Քայլ 9. Կազմաձևեք կառուցվածքի պարամետրերը

Համոզվեք, որ մենք գտնվում ենք սկզբնաղբյուրի արմատային թղթապանակում.

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

Գործարկել կազմաձևիչը.

python ./configure.py

Նախ ձեզնից կխնդրեն Python- ի գտնվելու վայրը: Սեղմեք Enter ՝ կանխադրված արժեքը պահելու համար.

... դուք տեղադրել եք բազել 0.17.2:
Խնդրում ենք նշել Python- ի գտնվելու վայրը: [Ստանդարտը ՝ C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Դրանից հետո ձեզնից կխնդրեն դեպի Python գրադարան տանող ուղին: Սեղմեք Enter ՝ կանխադրված արժեքը պահելու համար.

Հետևում (վերջին զանգի վերջին). Ֆայլ " ", Տող 1, ներս AttributeError. «Կայքը» մոդուլը չունի «getitepackages»: Գտնվել են Python- ի գրադարանի հնարավոր ուղիները. Ստանդարտը [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages]

Դրանից հետո ձեզանից օգնություն կխնդրեն nGraph- ից: Դա մեզ պետք չէ: Սեղմեք «n» ՝

Youանկանու՞մ եք կառուցել TensorFlow nGraph- ի աջակցությամբ: [Y / N]: n n Գրաֆիկական աջակցությունը ակտիվացված չէ TensorFlow- ի համար:

Այնուհետև այն հարցնում է CUDA- ի աջակցությունը.

Wantանկանու՞մ եք կառուցել 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-ին.
Տրամադրեք ստորակետերով առանձնացված Կուդա մաթեմատիկական գործառույթների ցուցակ, որոնց հետ ցանկանում եք կառուցել: Ձեր սարքի հաշվարկային կարողությունը կարող եք գտնել ՝ https://developer.nvidia.com/cuda-gpus: Խնդրում ենք նկատի ունենալ, որ յուրաքանչյուր լրացուցիչ հաշվարկման գործառույթ զգալիորեն մեծացնում է ստեղծման ժամանակը և երկուական չափը: [Լռելյայն է. 3.5.7.0]: 6.1

Հաջորդ հարցը օպտիմալացման դրոշներ սահմանելն է: Ես ունեմ 6-րդ սերնդի Intel պրոցեսոր, ուստի պատասխանում եմ / աղեղ: AVX2:

Նշեք օպտիմիզացման դրոշները, որոնք պետք է օգտագործվեն կազմման ընթացքում, եթե նշված է «--config = opt» Բազելի տարբերակը: [Լռելյայն է / կամար: AVX]: / կամար: AVX2

Վերջին հարցը վերաբերում է Այգենին: Պատասխանեք «y» - ով: Այն կտրուկ նվազեցնում է կազմման ժամանակը:

Wantանկանու՞մ եք վերացնել ձեր սեփական ամուր շարադրանքը որոշ C ++ կազմումների համար ՝ կազմման ժամանակը կրճատելու համար: [Y / n]. Y Eigen- ը խստորեն վերաշարադրեց տողերը:

Կազմաձևումն ավարտված է: Եկեք կառուցենք:

Քայլ 10. կառուցեք TensorFlow- ը աղբյուրներից

Համոզվեք, որ մենք գտնվում ենք սկզբնաղբյուրի արմատային թղթապանակում.

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
Ստեղծագործելը երկար ժամանակ է պահանջում: Խորհուրդ եմ տալիս անջատել հակավիրուսային ծրագրակազմը, ներառյալ Windows Defender Antivirus- ի իրական ժամանակում պաշտպանությունը:

Կատարել կառուցել:

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

Նստեք և հանգստացեք որոշ ժամանակ:

Քայլ 11. Ստեղծեք TensorFlow անիվի ֆայլ Python 3.6-ի համար

Գործարկեք հրահանգը Python Wheel ֆայլ ստեղծելու համար.

mkdir .. \ դուրս
bazel-bin \ tensorflow \ գործիքներ \ pip_package \ build_pip_package .. \ դուրս

Դա ձախողվում է.

Հայտնի խնդիր կա: Նայեք «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/cresing-pip-package-for-tensorflow-with-gpu-support-results-in-0-byte-simple-co

Խնդիրը լուծելու համար կան քայլեր.

Սկավառակ \ bazel-bin \ tensorflow \ գործիքներ \ 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 / ներդրում / փափագ / python / օրինակներ / gan / mnist.zip
...
Դա ինձ օգնում է: Եթե ​​դա ձեզ չի օգնում, պարզապես հեռացրեք այլ տողեր zip ֆայլերով (տե՛ս մանրամասները այստեղ): Այս գործունեության նպատակն է պարզ_console_for_windows.zip- ի երկարությունը 2 ԳԲ-ից պակաս պահել:

Deleteնջել դատարկ ֆայլը «simple_console_for_windows.zip»:

Հաջորդը, նայեք ձեր տան պանակին: Դուք պետք է գտնեք «_bazel_» անունով պանակը «Տեսեք. Իմ դեպքում դա« _bazel_amsokol »է: Այն պարունակում է պանակներ ՝ կառուցող ֆայլերով: Իմ դեպքում ՝« lx6zoh4k »: Վերադառնալ վազքի պատյան (ըստ ձեր թղթապանակի անվանումների ճիշտ է).

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

Ձեռքով ստեղծեք «simple_console_for_windows.zip» ֆայլը.

արտաքին \ bazel_tools \ գործիքներ \ zip \ կայծակաճարմանդ \ zipper.exe vcC bazel-out / x64_windows-opt / bin / tensorflow / գործիքներ / pip_package / simple_console_for_windows.zip @ bazel-out / x64_windows-opt / bin / tensorflow / գործիքներ / pip_package / simple_console_for_windows.zip-0.params

Գործարկեք հրահանգը Python Wheel ֆայլ ստեղծելու համար.

cd C: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
bazel-bin \ tensorflow \ գործիքներ \ pip_package \ build_pip_package .. \ դուրս

Այն ստեղծում է ".. \ դուրս" թղթապանակում tensorflow-1.11.0-cp36-cp36m-win_amd64.whl ֆայլը:

Քայլ 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!') Session = tf.Session () տպագիր (session.run (բարև))

Եթե ​​համակարգը տալիս է հետևյալը, ամեն ինչ կարգին է.

Ողջույն TensorFlow:

Իմ արդյունքը

Այժմ դուք հաջողությամբ տեղադրել եք TensorFlow- ը Windows համակարգչում:

Տեղեկացրեք ինձ ստորև բերված մեկնաբանություններում, եթե դա ձեզ համար է օգտակար: Կամ եթե ունեք թերություններ: Շատ շնորհակալություն!