[1-жаңыртуу] Windows үчүн TensorFlow GPU / CPU түзүү жана орнотуу Bazel жана Python 3.6 менен баштапкы коддон.

Бул менин мурунку окуямды жаңыртуу. Бул жерде эмне жаңылык:

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

Расмий сайтта гиддер бар. Бул өтө ар тараптуу эмес, бирок кээде пайдалуу.

Кыскача маалымат

  1. Windows үчүн Git орнотуңуз
  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. Python 3.6 үчүн TensorFlow дөңгөлөк файлын түзүңүз
  12. Python 3.6 үчүн TensorFlow дөңгөлөк файлын орнотуп, натыйжасын текшериңиз

1-кадам: Windows үчүн Git орнотуу

Windows үчүн Gitти жүктөп жана орнотуңуз. Мен аны ушул жерге алып барам. Git.exe жолунун% PATH% чөйрөсүнүн өзгөрмөсүнө кошулгандыгын текшериңиз. Мен Gitти орнотуп жатам

C: \ Bin \ Git

Бул окуу куралы үчүн папка.

2-кадам: MSYS2 x64 жана Command Line Tools орнотуу

64-бит бөлүштүрүүнү бул жерден жүктөп жана орнотуңуз. Базель булактарды куруу үчүн Unix шаймандарынан алынган grep, patch, unzipand жана башка портторду колдонот. Алардын ар бири үчүн өз алдынча экилик файлдарды табууга аракет кылсаңыз болот, бирок мен MSYS2 топтомун колдонгум келет. Мен аны орнотом

C: \ Bin \ msys64

Бул окуу куралы үчүн папка. Сиз куралдар папкасын% PATH% чөйрөсүнүн өзгөрмөсүнө кошушуңуз керек. Менин ишимде ал "C: \ Bin \ msys64 \ usr \ bin".

Баштоо менюсу аркылуу "MSYS2 MinGW 64-Bit" шилтемесин баштаңыз. Жаңыртуу үчүн төмөнкү буйрукту аткарыңыз (талап кылынганда MSYS2 MinGW 64-битти өчүрүп-күйгүзүңүз):

Pacman Syu

Андан кийин чуркаңыз:

Пакман -Су

Курулуш үчүн орнотуу куралдары талап кылынат:

Пакман патчынын ордун ачыңыз

MSYS2 MinGW 64-бит кабыгын "чыгуу" буйругу менен жабыңыз. Мындан ары бизге кереги жок.

3-кадам: Visual Studio 2017 Build Tools, анын ичинде Visual Studio 2015 Build Tools орнотуу

TensorFlow v1.11ди куруу үчүн Visual Studio 2017 Build Tools программасынан иш стол куралы үчүн VC ++ 2015.3 v14.00 (v140) орнотушубуз керек:

4-кадам: Bazel орнотуу

Акыркы Базелди бул жерден жүктөп алыңыз. Bazel- файлын изде -windows-x86_64.exe. Бул окуу куралын Bazel 0.17.2 менен сынап көрдүм. Базардын аталышын bazel.exe деп өзгөртүп,% PATH% каталогуна жылдырыңыз, ошондо каалаган каталогго bazel терип Bazel иштей аласыз. Windows x64 үчүн Bazel орнотуу жөнүндө кененирээк маалымат алуу үчүн көйгөйлөрдү караңыз.

Баш позициясы үчүн BAZEL_SH глобалдык чөйрөсүнүн өзгөрмөсүн кошуңуз. Менин жолум

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

"VC ++ 2015.3 v14.00 (v140) desktop" үчүн инструменттер топтому үчүн 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 ылдамдашы үчүн)

Эгер сизде CUDA колдогон NVIDIA графикалык картасы болсо, бул бөлүм жаңыртылды. Болбосо, бул бөлүмдү өткөрүп жиберүү керек.
Эгерде сизге жардам керек болсо, анда CUDAны этап-этабы менен орнотууга болот. Мен бул колдонмону көчүрүп жатам, бирок айрым деталдарын кестим.

Https://developer.nvidia.com/cuda-downloads дарегине өтүп, Windows үчүн CUDA 10.0 орноткучун жүктөп алыңыз [сиздин версияңыз]. Мен үчүн версиясы Windows 10.

Аны демейки каталогго демейки орнотуулар менен орнотуңуз, бирок VisualStudio интеграциялоо параметрин өчүрүңүз. GPU драйвери жаңыртылып, керек болсо, кайра башталат.

Cmd (Win + R) командасын иштетүү

Төмөнкү команда nvcc нускасын текшерип, анын жол чөйрөсүнүн өзгөрмөчөсүндө орнотулгандыгын камсыз кылат.

nvcc - версия

Https://developer.nvidia.com/cudnn дарегине өтүңүз (мүчөлүк талап кылынат).

Киргенден кийин, жүктөп алыңыз:

cuDNN v7.3.1 Windows үчүн китепкана [сиздин версияңыз] мен үчүн Windows 10. Жүктөп алган папкаңызга барып, zip файлын чыгарып алыңыз.

Чыгарылган папкага өтүп, бардык файлдарды жана папкаларды cuda папкасынан көчүрүп алыңыз (мис., Bin, include, 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-кадам: куруу чөйрөсүн конфигурациялоо

VC ++ 2015 кабыгын x64 үчүн баштаңыз ("VS2015 x64 Native Tools командасынын чакырыгы" жарлыгы) баштоо менюсунан.

Андан кийин, Python чөйрөсүн түзүп, активдештирип, конфигурациялашыңыз керек. "VS2015 x64 Native Tools Command Prompt" бөлүмүндө төмөнкү раковиналык буйруктарды аткарыңыз (жолдоруңузга жараша жолду тууралаңыз).

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

Берилген буйруктардан кийин сиздин кабык ушундай болушу керек:

Милдеттүү Python топтомдорун орнотуңуз:

pip3 орнотулган алты дөңгөлөктү орнотуу
pip3 install keras_applications == 1.0.5 --no-deps
pip3 install keras_preprocessing == 1.0.3 --no-deps

Милдеттүү таңгактар ​​орнотулгандыгын текшерүү үчүн "pip3 list" жүргүзүңүз:

Азырынча ушунун бардыгы. Табакты жаппаңыз.

8-кадам: TensorFlow баштапкы кодун клондоп, милдеттүү патчту колдонуңуз

Алгач, TensorFlow баштапкы кодун клондоштура турган папканы тандашыңыз керек. Менин ишимде ал "C: \ Users \ amsokol \ Development \ tensorflow-build". Кайра кабыкка чуркап:

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

Клондун баштапкы коду:

Git clone 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 (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_prefix ("// үчүнчү партия: eigen_half.patch"),) ...

Бүттү.

9-кадам: куруу параметрлерин жөндөө

Баштапкы код тамыры папкасында экенибизди текшериңиз:

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

Конфигураторду иштетүү:

python ./configure.py

Алгач сизден Pythonдун ордун сурашат. Демейки маанини сактоо үчүн Enter баскычын басыңыз:

... сиз bazel 0.17.2 орноттуңуз.
Python жайгашкан жерин көрсөтүңүз. [Стандарт C: \ Users \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Андан кийин сизден Python китепканасына жол суралат. Демейки маанини сактоо үчүн Enter баскычын басыңыз:

Көз салуу (акыркы чалуу акыркы): файл " ", Line 1, in AttributeError: 'Site' модулунда 'getsitepackages' атрибуту жок, мүмкүн болгон Python китепканасынын жолдору табылды: C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages Сураныч, каалаган Python китепкана жолун киргизиңиз. Стандарт бул [C: \ Users \ amsokol \ tensorflow-v1.11 \ Lib \ site-packages]

Андан кийин nGraph колдоосу суралат. Бизге анын кереги жок. "N" баскычын басыңыз:

NGraph колдоосу менен TensorFlow кургуңуз келеби? [Y / N]: n nGraph колдоо TensorFlow үчүн иштетилген эмес.

Андан кийин CUDA колдоосун сурайт:

CUDA колдоосу менен TensorFlow кургуңуз келеби? [Y / N]:

GPU ылдамдануусун колдонууну кааласаңыз, "y" деп жооп бериңиз. Болбосо, "n" баскычын басыңыз.

Эгер CUDA конфигуратору үчүн ооба болсо, кошумча суроолор берилет:
CUDA SDK версиясы катары 10.0 жооп:
Сураныч, колдонууну каалаган CUDA SDK версиясын көрсөтүңүз. [CUDA 9.0 үчүн демейки боюнча бош калтырыңыз]: 10.0
Демейки CUDA инструменттеринин жайгашкан жеринен чыгуу үчүн Enter баскычын басыңыз:
Сураныч, 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
Демейки cuDNN китепканасынын жайгашкан жеринен чыгуу үчүн Enter баскычын басыңыз:
Сураныч, 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 математикалык функцияларынын үтүр менен бөлүнгөн тизмесин бериңиз. Түзмөгүңүздүн эсептөө мүмкүнчүлүгүн төмөнкү даректен таба аласыз: 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: \ Users \ amsokol \ Development \ tensorflow-build \ tensorflow
Аны жаратуу үчүн көп убакыт талап кылынат. Антивирустук программаны, анын ичинде Windows Defender Antivirus реалдуу убакыт режиминде коргоону өчүрүүнү сунуш кылам.

Курулушту аткаруу:

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

Бир аз отуруп эс алыңыз.

11-кадам: Python 3.6 үчүн TensorFlow дөңгөлөк файлын түзүү

Python Wheel файлын түзүү үчүн буйрукту аткарыңыз:

mkdir .. \ out
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-results-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: \ Users \ 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 / simple_console_for_windows.zip-0.params

Python Wheel файлын түзүү үчүн буйрукту аткарыңыз:

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

Бул tensorflow-1.11.0-cp36-cp36m-win_amd64.whl файлын ".. \ out" папкасында жаратат.

12-кадам: Python 3.6 үчүн TensorFlow колесо файлын орнотуп, натыйжасын текшериңиз

Python Wheel файлын орнотуу үчүн буйрукту аткарыңыз:

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

Tensorflow каталогунан чыгыңыз

CD ..

Жүктөө сценарийин бул жерден текшерүү же көчүрүп, чаптоо менен иштетүү үчүн:

Tensorflow tf салам = tf.constant ('Салам, TensorFlow!') Катары импорттоо Session = tf.Session () print (session.run (салам))

Эгер система төмөнкүнү чыгарса, бардыгы жакшы:

Салам TensorFlow!

Менин чыгышым:

Эми Windows компьютерине TensorFlow орноттуңуз.

Эгер ал сиз үчүн иштеген болсо, төмөндөгү комментарийлерде мага кабарлаңыз. Же сизде кандайдыр бир кемчиликтер болсо. Чоң рахмат!