Установка 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:
- Visual Studio 2013 Community Edition Update 4
- Используется как компилятор C/C++ (не как IDE)
- CUDA 7.5.18 (64-bit)
- Необходима для поддержки математических библиотек, использующих GPU. Также нам нужны драйвера видеокарты и компилятор CUDA
- MinGW-w64 (5.3.0)
- Нужен как Unix компилятор и средство сборки (g++/gcc, make. ) под Windows
- Anaconda (64-bit) и Python 2.7 (Anaconda2-4.1.0)
- Дистрибутив Python, который нам поможет установить NumPy, SciPy и другие научные библиотеки
- Theano 0.8.2
- Используется для работы с математическими выражениями и многомерными массивами
- Keras 1.0.5
- Используется для глубокого обучения (Deep Learning), работающего поверх Theano
- OpenBLAS 0.2.14 (Опционально)
- Оптимизированные реализации многих алгоритмов линейной алгебры
- cuDNN v5
- Используется для ускорения работы сверточных нейронных сет
Оборудование
- Dell Precision T7500, 96GB RAM
- Intel Xeon E5605 @ 2.13 GHz (2 процессора 8 ядер)
- NVIDIA GeForce Titan X, 12GB RAM
- Версия драйвера: 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 следующим образом:
- Необходимо определить системную переменную среды с именем CUDA_HOME значением C:\toolkits\cuda-7.5.18
- Добавить %CUDA_HOME%\libnwp и %CUDA_HOME%\bin в PATH
MinGW-w64 (5.3.0)
Установите его в C:\toolkits\mingw-w64-5.3.0 со следующими параметрами:
- Определите системную переменную MINGW_HOME в значение c:\toolkits\mingw-w64-5.3.0
- Добавьте %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.
- Определите системную переменную PYTHON_HOME в значение c:\toolkits\anaconda2-4.1.0
- Добавьте %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
- Задайте системную переменную OPENBLAS_HOME значением c:\toolkits\openblas-0.2.14-int32
- Добавьте %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.

![]() | not all sunshine in | ![]() | Jan Heckman | 1-Dec-16 9:51 |
![]() | Re: not all sunshine in | ![]() | Dino Konstantopoulos | 1-Dec-16 11:51 |
![]() | Re: not all sunshine in | ![]() | Jan Heckman | 1-Dec-16 23:53 |


















Thanks for a great article!




News
Suggestion
Bug
Joke
Praise
Rant
Admin