Меню Рубрики

Theano gpu windows 10

Установка Keras и Theano на Windows 10 с поддержкой GPU. Часть 1

Machine Learning/Data Mining/Big Data

Оглавление

Есть, конечно, много руководств, которые помогут вам настроить систему для глубокого обучение (Deep Learning) на базе Linux или Mac OS (в том числе и с Tensorflow, который, к сожалению, не может быть легко установлен на Windows), и лишь немногие устанавливают все это для Windows 10. Большинство просто работают под виртуальной машиной Ubuntu запущенной на Windows, или используют Docker. И потому мы решили исправить эту проблему.

В процессе поиска мы наткнулись на множество недостоверной или устаревшей информации, но в итоге смогли создать пошаговое руководство для последних стабильных версий Theano и Keras. Используя их вместе, мы получаем одну из самых простых и быстрых конфигураций для глубокого обучения работающую под Windows.

Если вы решили сделать установку данной конфигурации Deep Learning на Windows 10, то это статья для вас.

Зависимости

Это полный список инструментов и библиотек, которые мы используем для глубокого обучения в Windows 10:

  1. Visual Studio 2013 Community Edition Update 4
    1. Используется как компилятор C/C++ (не как IDE)
  2. CUDA 7.5.18 (64-bit)
    1. Необходима для поддержки математических библиотек, использующих GPU. Также нам нужны драйвера видеокарты и компилятор CUDA
  3. MinGW-w64 (5.3.0)
    1. Нужен как Unix компилятор и средство сборки (g++/gcc, make. ) под Windows
  4. Anaconda (64-bit) и Python 2.7 (Anaconda2-4.1.0)
    1. Дистрибутив Python, который нам поможет установить NumPy, SciPy и другие научные библиотеки
  5. Theano 0.8.2
    1. Используется для работы с математическими выражениями и многомерными массивами
  6. Keras 1.0.5
    1. Используется для глубокого обучения (Deep Learning), работающего поверх Theano
  7. OpenBLAS 0.2.14 (Опционально)
    1. Оптимизированные реализации многих алгоритмов линейной алгебры
  8. cuDNN v5
    1. Используется для ускорения работы сверточных нейронных сет

Оборудование

  1. Dell Precision T7500, 96GB RAM
    1. Intel Xeon E5605 @ 2.13 GHz (2 процессора 8 ядер)
  2. NVIDIA GeForce Titan X, 12GB RAM
    1. Версия драйвера: 10.18.13.5390 Beta (ForceWare 353.90) / Win 10 64

Установка

Мы будем устанавливать наши инструменты и библиотеки в c:\toolkits.

Visual Studio 2013 Community Edition Update 4

Вы можете скачать Visual Studio 2013 Community Edition отсюда. Да, мы знаем, что есть Visual Studio 2015 Community Edition, но для CUDA необходима версия VS 2013:

Поэтому убедитесь, что у вас установлена VS 2013. Затем добавьте C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin к вашему PATH.

CUDA 7.5.18 (64-bit)

Скачайте CUDA 7.5 (64-bit) с сайта Nvidia.

Выберете целевую платформу:

Загрузите установочный файл:

Запустите программу установки. В данном случае установщик не позволяет выбирать, куда будет устанавливать свои файлы. CUDA устанавливается в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5.

После установки переместите файлы в C:\toolkits\cuda-7.5.18 и обновите PATH следующим образом:

  1. Необходимо определить системную переменную среды с именем CUDA_HOME значением C:\toolkits\cuda-7.5.18
  2. Добавить %CUDA_HOME%\libnwp и %CUDA_HOME%\bin в PATH

MinGW-w64 (5.3.0)

Установите его в C:\toolkits\mingw-w64-5.3.0 со следующими параметрами:

  1. Определите системную переменную MINGW_HOME в значение c:\toolkits\mingw-w64-5.3.0
  2. Добавьте %MINGW_HOME%\mingw64\bin в PATH

Выполните следующие действия, чтобы убедиться, что все необходимые инструменты находятся в системе:

Результаты должны быть примерно такие:

Anaconda (64-bit) с Python 2.7 (Anaconda2-4.1.0)

Загрузите Anaconda отсюда и установите в c:\toolkits\anaconda2-4.1.0:

Внимание: Мы используем Anaconda на базе Python 2.7, возможно для вас лучшим вариантом будет использование Python 3.5.

  1. Определите системную переменную PYTHON_HOME в значение c:\toolkits\anaconda2-4.1.0
  2. Добавьте %PYTHON_HOME%, %PYTHON_HOME%\Scripts и %PYTHON_HOME%\Library\bin в PATH

После установки Anaconda запустите командную строку MINGW64 и выполните:

Источник

Установка Keras и Theano на Windows 10 с поддержкой GPU. Часть 2

Machine Learning/Data Mining/Big Data

Оглавление

В предыдущей статье мы установили Visual Studio, CUDA, MinGW и Python. Теперь давайте установим Theano.

Theano 0.8.2

Версия 0.8.2? Почему бы просто не установить последнюю версию Theano, поскольку она, очевидно, должна работать лучше, не так ли? Но мы ставим эту версию потому, что так будет проще воспроизводить чужие исследования и наработки. Если ваши коллеги по работе или товарищи по Kaggle команде установят последнюю версию отличающуюся от вашей это увеличит вероятность того, что даже если вы будете использовать те же входные данные, вы получите разные результаты. Только по этой причине, мы настоятельно рекомендуем применять только релизы.

Клонируйте стабильный релиз Theano (0.8.2) на локальный компьютер из GitHub, используя следующие команды:

Эти команды должны склонировать Theano 0.8.2 в c:\toolkits\theano-0.8.2:

Установите его следующим образом:

Список установленных файлов можно посмотреть тут.

Проверить установку Theano в списке установленных пакетов Anaconda можно так:

OpenBLAS 0.2.14

Если мы собираемся использовать GPU, то зачем нам устанавливать CPU оптимизированную библиотеку линейной алгебры? В нашей сборке, большая часть вычислений для глубокого обучения будет осуществляется с помощью GPU, и это правильно, но процессор также не будет простаивать. Большая часть конкурсов Kaggle на основе изображений требует их предварительной обработки, например нормализации. Также, довольно часто требуется применение фильтров (удаление шума, выравнивания гистограммы и т.д.). Вы, конечно, можете использовать GPU для этой цели и сохранить результаты в файл. Но на практике, однако, эти операции часто выполняются параллельно на процессоре, в то время как GPU занят обучением весов глубокой нейронной сети. По этой причине мы настоятельно рекомендуем установить библиотеку OpenBLAS.

Согласно документации Theano, многопоточная библиотеки OpenBLAS работает гораздо лучше, чем не оптимизированная стандартная BLAS (Basic Linear Algebra Subprograms) библиотека, поэтому мы используем именно ее.

Загрузите OpenBLAS отсюда и распакуйте файлы в c:\toolkits\openblas-0.2.14-int32

  1. Задайте системную переменную OPENBLAS_HOME значением c:\toolkits\openblas-0.2.14-int32
  2. Добавьте %OPENBLAS_HOME%\bin в PATH

Переключение между CPU и GPU режимом

Создайте две переменные окружения:

  • THEANO_FLAGS_CPU со следующим значением:
  • THEANO_FLAGS_GPU со значением:

Theano отслеживает только переменную THEANO_FLAGS. Теперь все что нам нужно сделать, чтобы сказать Theano использовать CPU или GPU, это установить THEANO_FLAGS в THEANO_FLAGS_CPU или THEANO_FLAGS_GPU. Вы можете проверить, что эти переменные среды были успешно добавлены с помощью следующей команды:

Замечание: Флаг THEANO_FLAGS_GPU_DNN мы рассмотрим в разделе по cuDNN.

Проверка установки OpenBLAS

Для этого используем программу из документации по Theano.

Сохраните приведенный выше код в файл с именем openblas_test.py в текущем каталоге и выполните следующие команды:

Примечание: Если вы получаете ошибку global name ‘CVM’ is not defined, то это может быть потому, что неправильно установлен THEANO_FLAGS_CPU. Попробуйте поменять floatX = float32 и floatX = float64.

Проверка установки Theano вместе с GPU.

Для этого выполним следующую программу из документации Theano и сравним производительность GPU установки по сравнению с использованием Theano в CPU-режиме. Сохраните код в файл с именем cpu_gpu_test.py в текущем каталоге и выполните команды:

Во-первых, давайте посмотрим, какие результаты мы получим от Theano в режиме CPU:

Далее, давайте выполним ту же программу на GPU:

Отлично, вот мы закончили с настройкой Theano 0.8.2.

Источник

Theano gpu windows 10

(theano) D:\theano>python test.py
WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`
WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: cuda unavailable)
[Elemwise( )]
Looping 1000 times took 1.363562 seconds
Result is [ 1.23178029 1.61879337 1.52278066 . 2.20771813 2.29967761
1.62323284]
Used the cpu

My card is an Asus Strix GeForce GTX 1080
I am using VS 2015 Enterprise Update 3

I have likewise verified that in __init__.py, in the line

if not nvcc_compiler.is_nvcc_available() or not theano.config.cxx:

nvcc_compiler.is_nvcc_available() is true, but theano.config.cxx is false.

asiwel 1-Dec-16 19:28
Hi, Dino. Really enjoyed simply reading your article, thinking how fun it would be to do all that (and how many likely hicups along the way!). My current setup is an iMac with Windows in a Virtualbox, so I doubt I could get all that to work. I’ve built and used small neural nets from scratch before (in Python . or was it Octave/MatLab, don’t remember) . but of course those ran on the CPU. And, honestly, probably now for serious small work, I’d stick with SAS (Enterprise Miner) or some other statistical tool (maybe RapidMiner or something). But it sure is nice to know that one COULD do that with the GPU in a laptop (and get a 50x speedup). How about that! Thanks for a great article!
Sign In· View Thread
not all sunshine in

Jan Heckman 1-Dec-16 9:51
the first example of .theanorc is misleading, it lacks the [global] declaration and the endtag is way misplaced.
The compiler needs be specified in .theanorc under [global], using cxx=yourcompilerpath or empty string to avoid a warning.
Theano insists that not using a cxx compiler costs a lot of performance.
Theano insists on g++, so the idea that we have a marriage in heaven including VS seems incorrect. The parameters (like -L for a library) are not compatible with VS cl.exe.
Specifying g++ gives a seemingly ineradicable error on ::hypot not being defined, owing to the #define hypot _hypot in pyconfig.h. Since it appears unnecessary for g++ 6.2.0, I removed the #define. After that there are still undefined references mostly to pyexc_ members. I gave up on the compiler.
In .theanorc compiler_bindir (nvcc) is specified with VS version 12.0, which is not correct for VS2015 (should be 14.0)
Then there is the typical Asus gpu thing: Using an integrated (imc non-cuda Intel) graphics chip for energy efficiency, and an NVIDIA for games (or science). Theano stubbornly refuses to find the Nvida gpu, adressed as device = gpu, gpu0 or gpu1 in the global section of .theaorc. Matmult e.a. in Cuda work fine.
Then there is the python 2.7 compiler installation. Its default installation is in appdata, the mods in sandbox/cuda appears to conform to this install location, but the cuda profile (libpath) mod points to the global install dir (in c:\program files(x6)/common files/microsoft/Visual C++ for python/. ). To install globally you need an explicit msiexec call (expand install instructions in the download page), anyway only one directory should be used.
Installing python modules, esp scipy may need a separate install in the theano environment.

I enjoyed the article, found some parallel info on stackoverflow. I enjoyed getting anaconda, so I am happy about that. Strangely the gpu still is not working in theano. Performance is a bit strange too, I have (only) a 960M Nvidia, the test says I’m running on cpu, but the time is 1.5 seconds, which I would expect from my not-top-of-the-bill gpu.

But I find the accuracy wanting and cannot get it to run properly after a good deal of trouble
(Asus GL752VW, win 10, VS 2015 update 3, cuda 8.0). Especially the mixup with VS vs GCC leaves me unconvinced.

Sign In· View Thread
Re: not all sunshine in

Dino Konstantopoulos 1-Dec-16 11:51

Jan, did not use g++ at all. All VS.. Theano does not insist on g++, I do not know where you get that. Are you using an administrator account for all work?

Sign In· View Thread
Re: not all sunshine in Jan Heckman 1-Dec-16 23:53

Hi Dino,
Thanks for your answer. I am using an admin prompt for all of the work.
This is my output when not using a cxx flag under [global] in .theanorc.

(theano) C:\Users\janhe\Documents\theano>python test.py
WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: cuda unavailable)
[Elemwise( )]
Looping 1000 times took 1.687716 seconds
Result is [ 1.23178029 1.61879337 1.52278066 . 2.20771813 2.29967761
1.62323284]
Used the cpu

Possibly the g++ warning would disappear when gpu is detected, so that is my priority now.
I could not achieve this so far with the legal inputs for device=gpu? with ? a digit.
Googling around I do find issues reported about confusing the display adapters (Intel Nvidia).
I think I’ll check the Cuda samples first and maybe get a hint for adapting __init__.py.

EDIT: Looking at __init.py__ of sandbox/cuda, about line 115:

which says: no cxx, then no cuda. I verified that nvcc_compiler.is_nvcc_available() returns True.
According to github, this is not a recent change/addition (last one on __init__.py 2 month ago).
(including cxx= in .theanorc does remove the g++ warning, but does not solve the problem)

So, is your cxx somehow set outside .theanorc, or is your __init__.py different, I would be happy to know about it. But clearly, theano wants cxx and wants it to be g++ (and then makes a bit of a mess of it on windows). Of course, I don’t mind a bit of work to get something like this working, thanks for your well written article. If you have further advice, I sure can use it!

Dino Konstantopoulos 2-Dec-16 3:59

Jan, it sounds like a skipped installation step, to me. Possibly Nsight for Visual Studio? That binds CUDA to Visual Studio.

Sign In· View Thread
Last Visit: 21-Oct-20 6:04 Last Update: 21-Oct-20 6:04 Refresh 1

General News Suggestion Question Bug Answer Joke Praise Rant Admin

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • The witcher battle arena windows phone
  • The windows tears перевод
  • The windows tears книга
  • The windows is the sofa
  • The windows installer engine is corrupt