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

Սա իմ նախորդ պատմության թարմացումն է: Ի՞նչ նորություններ կան այստեղ ՝
- TensorFlow v1.11
- CUDA v10.0
- cuDNN v7.3
Պաշտոնական կայքում կան ուղեցույցներ: Դա շատ ընդգրկուն չէ, բայց երբեմն օգտակար է:
Ամփոփում
- Տեղադրեք Git- ը Windows- ի համար
- Տեղադրեք Bazel- ը
- Տեղադրեք MSYS2 x64 և հրամանի տող գործիքները
- Տեղադրեք Visual Studio 2017 Build Tools- ը, ներառյալ Visual Studio 2015 Build Tools- ը
- Տեղադրեք Python 3.6 64-բիթ
- Տեղադրեք NVIDIA CUDA 10.0 և cuDNN 7.3 (GPU արագացման համար)
- Կազմաձևեք կառուցապատման միջավայրը
- Կլոնավորեք TensorFlow v1.11 կոդն ու կիրառեք պարտադիր կարկատակը
- Կազմաձևեք կառուցվածքի պարամետրերը
- Կառուցեք TensorFlow- ը աղբյուրներից
- Ստեղծեք TensorFlow անիվի ֆայլ Python 3.6-ի համար
- Տեղադրեք 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 համակարգչում:
Տեղեկացրեք ինձ ստորև բերված մեկնաբանություններում, եթե դա ձեզ համար է օգտակար: Կամ եթե ունեք թերություններ: Շատ շնորհակալություն!