2016-05-02 6 views
8

установки:Как включить Keras с Теано использовать несколько графических процессоров

  • Использование системы Amazon Linux с Nvidia GPU
  • Я использую Keras 1.0.1
  • Запуск Theano v0.8.2 бэкенд
  • Использование CUDA и CuDNN
  • THEANO_FLAGS = "устройство = GPU, floatX = float32, lib.cnmem = 1"

Все работает отлично, но у меня заканчивается видеопамять на больших моделях, когда я увеличиваю размер партии, чтобы ускорить обучение. Я фигурное переход к системе 4 GPU бы в теории либо улучшить общий объем памяти, доступный или позволить небольшие партии строить быстрее, но наблюдая статистику NVidia, я могу видеть только один GPU используется по умолчанию:

+------------------------------------------------------+ 
| NVIDIA-SMI 361.42  Driver Version: 361.42   |   
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. |  
|===============================+======================+======================| 
| 0 GRID K520   Off | 0000:00:03.0  Off |     N/A | 
| N/A 44C P0 45W/125W | 3954MiB/4095MiB |  94% Default  | 
+-------------------------------+----------------------+----------------------+ 
| 1 GRID K520   Off | 0000:00:04.0  Off |    N/A | 
| N/A 28C P8 17W/125W |  11MiB/4095MiB |  0% Default | 
+-------------------------------+----------------------+----------------------+ 
| 2 GRID K520   Off | 0000:00:05.0  Off |    N/A | 
| N/A 32C P8 17W/125W |  11MiB/4095MiB |   0% Default | 
+-------------------------------+----------------------+----------------------+ 
| 3 GRID K520   Off | 0000:00:06.0  Off |    N/A |  
| N/A 29C P8 17W/125W |  11MiB/4095MiB |   0% Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 0  9862 C python34          3941MiB | 

I знаете, с помощью raw Anano вы можете вручную использовать несколько графических процессоров. Поддерживает ли Keras использование нескольких графических процессоров? Если да, то это абстрагирует его или вам нужно сопоставить графические процессоры с устройствами, как в Theano, и явно вывести вычисления на конкретные графические процессоры?

ответ

4

Обучение с несколькими GPU - experimental («Код довольно новый и по-прежнему считается экспериментальным на данный момент. Он был протестирован и, кажется, работает правильно во всех наблюдаемых случаях, но не забудьте дважды проверить результаты публикация статьи или что-то в этом роде. ») и еще не интегрирована в Keras. Однако вы можете использовать несколько графических процессоров с Keras с бэкэнд Tensorflow: https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#multi-gpu-and-distributed-training.

+0

Слышали ли вы какие-либо успехи в этом за последний год или около того? Я знаю, что Tensorflow, как и ожидалось, питается базой Theano, поэтому я гибкий с бэкэнд. – Ray

+0

@ Ray: Я не уверен в конце Theano, но я определенно рекомендую переключиться на Tensorflow для этого, если у вас есть опция. –