zondag 27 december 2020

Installatie perikelen.

Vermoedelijk na wat updates die ik heb moeten / willen draaien voor de Toonify / deepfake experimenten, werkt mijn gpu niet meer bij het trainen van deel learning netwerken. Vanuit de blog van mijn broer haal ik een werkbare configuratie.


  • Cuda 10.0
  • Tensorflow-GPU==1.14.0
  • Python 3.6.5
  • Keras 2.2.4

Ik installeer deze en verifieer de versies:
 

>>> keras.__version__   

'2.2.4-tf'

>>> keras.__version__

'2.2.4'

Python 3.6.5

>>> import tensorflow as tf

>>> tf.__version__

'1.14.0'


PS C:\Users\DirkW> nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2018 NVIDIA Corporation

Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018

Cuda compilation tools, release 10.0, V10.0.130

De versies kloppen en lijken op het eerste gezicht ook een werkbare installatie op te leveren. Hiermee test je snel of de gpu ook inderdaad gevonden wordt:

>>>tf.test.is_gpu_available(cuda_only=False, min_cuda_compute_capability=None)

De installatie geeft wel al snel veel memory-tekort-errors. Ik denk dat ik toch ga proberen een eerdere versie te installeren.  


Ik begin met het deinstalleren van keras en tensorflow-gpu

>pip uninstall keras

 Successfully uninstalled Keras-2.2.4

>pip uninstall tensorflow-gpu

 Successfully uninstalled tensorflow-gpu-1.14.0


Via Windows 'Apps and Feautures deinstalleer ik alle CUDA software / versies. 

Ik haal versie 8 hier op met ook een patch:

https://developer.nvidia.com/cuda-80-ga2-download-archive

Cuda 8 herkent de grafische kaart nog niet. Ik schakel nu naar 9.2

Nsight moet blijkbaar ook worden gedeinstalleerd. Dus ik laat opnieuw de installatie lopen en daarna de patch. Dit lijkt aallemaal goed te gaan tot nu toe.


Nu nog CuDNN : 

en download deze



Deze moeten weer naar de betreffende Cuda direcories worden gekopieerd.
(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2)
Ook moest ergens het pad worden opgenomen in de systeem variabelen.
Met Control X en daarna advanced system settings kom ik hier:


Ik zie dat ze al zijn toegevoegd:




Ok, verder met de juiste tensorflow en keras versies:
Ik lees dat deze versie met Cuda 9.2 zou ,oeten werken:

> pip install tensorflow-gpu==1.8.0

Bij geeft aan dat de installatie succesvol is maar tocj ook een error m.b.t. tensorboard. (Hoewel hij net 2.4.0 heeft gedeinstalleerd)
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
-ensorflow 1.12.0 requires tensorboard<1.13.0,>=1.12.0, but you have tensorboard 1.8.0 which is incompatible.
tensorflow 1.14.0 requires tensorboard<1.15.0,>=1.14.0, but you have tensorboard 1.8.0 which is incompatible.

Ik ben benieuwd of keras nu ook is geinstalleerd

 >>> from tensorflow import keras
ImportError: Could not find 'cudart64_90.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 9.0 from this URL: https://developer.nvidia.com/cuda-toolkit


Vreemd, misschien eerst even rebooten.

Ook dat werkt niet. Ik besluit op basis van wat adviezen om Cuda 9.0 t installeren. Dit lijkt prima te werken. Ik hoef ook geen nieuwe CuDNN te downloaden. Na reboot komt hij gelijk met de juiste bevestiging: 

>>> tf.test.is_gpu_available(cuda_only=False, min_cuda_compute_capability=None)
2020-12-27 20:12:56.087941: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1435] Adding visible gpu devices: 0
2020-12-27 20:12:56.089254: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-12-27 20:12:56.089831: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:929]      0
2020-12-27 20:12:56.090446: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:942] 0:   N
2020-12-27 20:12:56.091079: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1053] Created TensorFlow device (/device:GPU:0 with 9647 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:05:00.0, compute capability: 6.1)
True

Alleen dit vind ik een beetje vreemd:


>>> from tensorflow import keras

>>> keras.__version__

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

AttributeError: module 'tensorflow.tools.api.generator.api.keras' has no attribute '__version__'

 Dit doet het wel:

tf.__version__

'1.8.0'

Ik heb dus nu 

- Tensorflow - GPU 1.8.0

- Keras - ?

- Cuda - 9.0

- CuDNN v7.6.5

Ik ga nog de Cuda 9.0 patches downloaden. Hoop dat dat geen roet in het eten gooit. 

Dat is gelukt maar er is nog een probleempje met keras zelf. Ondanks dat een import van keras uit tensorflow geen fout geeft lijken er geen modules te kunnen worden geladen.  Ik moet Keras blijkbaar zelf ook nog installeren. Versie 2.1.6 lijkt hierbij te passen:

pip install keras==2.1.6

Dit lijkt nu weer helemaal goed te werken. Ook Keras werkt met de GPU

Nu nog een juist deep learning programma :-)



Geen opmerkingen:

Een reactie posten