2016-05-02 14 views
8

Setup:Jak włączyć Keras z Theano wykorzystanie wielu procesorów graficznych

  • Korzystanie z systemu Linux z Amazon Nvidia GPU
  • używam Keras 1.0.1
  • Running Theano v0.8.2 backend
  • Stosując CUDA i CuDNN
  • THEANO_FLAGS = "urządzenie = GPU floatX = float32, lib.cnmem = 1"

Wszystko działa dobrze, ale brakuje mi pamięci wideo na dużych modelach, gdy zwiększam rozmiar partii, aby przyspieszyć trening. I postać porusza się do systemu 4 GPU byłoby teoretycznie albo poprawę całkowitej dostępnej pamięci lub pozwolić mniejszych partiach budować szybciej, ale obserwując statystyki nvidia, widzę tylko jeden GPU jest używany domyślnie:

+------------------------------------------------------+ 
| 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 wiedzieć z surowym Theano, możesz użyć ręcznie wielu GPU wprost. Czy Keras obsługuje korzystanie z wielu GPU? Jeśli tak, czy to abstrakcja, czy trzeba zmapować procesory graficzne do urządzeń, tak jak w Theano, i wyraźnie przeliczyć obliczenia na określone GPU?

Odpowiedz

4

Szkolenie z wieloma procesorami graficznymi to experimental ("Kod jest raczej nowy i nadal jest uważany za eksperymentalny w tym momencie. Został przetestowany i wydaje się działać prawidłowo we wszystkich obserwowanych przypadkach, ale należy dokładnie sprawdzić wyniki przed publikując artykuł lub coś w tym rodzaju. ") i nie został jeszcze zintegrowany z Keras. Jednak możesz używać wielu procesorów graficznych z Keras z backendem Tensorflow: https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#multi-gpu-and-distributed-training.

+0

Czy słyszałeś jakieś postępy w ciągu ostatniego roku? Wiem, że Tensorflow zgodnie z oczekiwaniami je do bazy Theano, więc jestem elastyczny z jakimkolwiek zapleczem. – Ray

+0

@Ray: Nie jestem pewien na końcu Theano, ale zdecydowanie polecam przejście na Tensorflow, jeśli masz taką opcję. –

Powiązane problemy