Instalacja środowiska do Tensorflow z GPU w Python 3 i virtualenv

Jak przygotować środowisko do Tensorflow, jak poprawnie zainstalować niezbędne biblioteki: CUDA, cuDNN oraz jak najlepiej zorganizować sobie strukturę folderów.

Co jakiś czas zmuszony jestem do zainstalowania środowiska do Tensorflow, a to u siebie na laptopie, a to na serwerach, a to na stacjonarnym w firmie. Oczywiście pełen sposób instalacji TF jest dostępny na stronie tej biblioteki, ja chciałbym wam przedstawić, ten który u mnie sprawdza się najlepiej.

Gdy zacząłem pracować z TF to zastanawiałem się jak to wszystko zorganizować aby było łatwo odtwarzalne, powtarzalne i w jak najmniejszym stopniu ingerowało w moje dotychczasowe konfiguracje i instalacje. Przez ten czas wyrobiłem już sobie pewne podejście, które u mnie działa dobrze. Na proces instalacji miało wpływ kilka decyzji:

  • będę wykorzystywał Pythona 3 (v3.5 dokładnie),
  • chcę utrzymać kompatybilność z poprzednimi wersjami TF, mam kilka skryptów pisanych w wersjach 0.10, czy 0.12,
  • chcę mieć elatyczne środowisko tak aby być przygotowanym na kolejne wersje (obecnie aktualna jest wersja 1.0),
  • chcę mieć dwie wersje TF na CPU i GPU, często u siebie na laptopie testuję na CPU, potem uruchamiam testowo na GPU zobaczyć czy „chodzi”. Ostatecznie obliczenia uruchamiam na serwerze z kartami GPU.

Jeżeli chcesz przejść do konkretów to całość została spisana w gist’cie ubuntu16_tensorflow_cuda8.sh

Post ten jest uaktualnioną i poprawioną wersją poprzednich postów:

Instalacja sterowników NVidia

Na początku należy zainstalować (lub zaktualizować) sterowniki karty graficznej od NVidi. Sterowniki będą pobrane z dodanego repozytorium ppa:graphics-drivers/ppa

Instalujemy sterowniki i na końcu poleceniem nvidia-smi sprawdzamy czy wszystko poprawnie się zainstalowało.

Instalacja bibliotek CUDA i cuDNN

Gdy mamy już sterowniki to należy zainstalować biblioteki CUDA Toolkit oraz cuDNN. Obie można ściągnąć z stron NVidia. W chwili pisania posta CUDA dostępna była w wersji 8.0 a cuDNN w wersji 5.1, takie też wersje zalecane są na stronach Tensorflow.

Instalacja cuDNN wymaga zaakceptowania licencji i odpowiedzi na stronie NVidi, ściągamy ją na dysk, rozpakowujemy i kopiujemy do folderu z bibliotekami CUDA Toolkit

Instalacja Tensorflow w virtualenv Python 3

Ostatnim krokiem jest instalacja Pythona 3, pakietu python3-venv oraz stworzenie wirtualnego środowisko przy pomocy virtualenv. Dzięki virtualenv będziemy mogli tworzyć niezależne od siebie wersje Pythona z różnym zestawem paczek, czyli poprzednie projekty nie będą sobie wchodziły w paradę z powodu zależności.

W przykładzie stworzyliśmy środowisko nazwane tfenv (nazwa jest dowolna), w którym instalujemy tensorflow, wersję na GPU lub CPU. Ja zazwyczaj tworzę dwa środowiska tfenv-gpu i tfenv-cpu każde z odpowiednią wersją biblioteki.

Sprawdzenie poprawności instalacji

Po zainstalowaniu bibliotek, a w szczególności z wspaciem dla GPU, ja zazwyczaj uruchamiam prosty skrypt w TF dodający dwie liczby. Uruchamiamy konsolę pythona importujemy tensorflow, tworzymy sesję, dwie stałe i dodajemy je do siebie. Istotne abyśmy zaraz po imporcie dostali informację o tym że biblioteki CUDA zostały odnalezione.

 

Błędy podczas instalacji lub uruchamiania?

Oczywiście jak to w informatyce, każdy ma inne środowisko i inne ustawienia, poniżej znajduje się aktuaizowana lista błędów, które mogą wystąpić:

  • Nie odnajduje bibliotek CUDA. Zazwyczaj jest to spowodowane nie ustawieniem ścieżek do CUDA, można to naprawić ustawiajć zmienne:
  • Po aktualizacji Ubuntu 16.04 zostało mi zaktualizowane jądro vmlinuz-4.4.0-53-generic do vmlinuz-4.4.0-53-generic, przez co sterowniki do Nvidia także przestały działać, posuł się obraz i nie mogłem się zalogować do systemu! Pomogło uruchomienie w trybie rescu z siecią(wtedy system plików jest do zapisu), z konsoli usunąłem sterowniki

    Po restarcie mogłęm się już zalogować i ponownie zainstalowałem sterowniki do nvidi, zostały one przebudowane z wsparciem dla nowego jądra.

4 Comments Instalacja środowiska do Tensorflow z GPU w Python 3 i virtualenv

  1. Pingback: Instalacja Tensorflow 0.9 CUDA 7.5 na ubuntu 16.04 i diabeł na ramieniu - About Data

      1. Nixus

        Dzięki za ściągawkę i dobre słowa. Udało się 🙂 Tylko trzeba było Secure Boota wyłączyć przy instalacji sterowników Nvidii.
        Pozdrawiam!
        P.S. to tylko 1050Ti szkoda, że nie 1080Ti 😛

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *