woensdag 17 juni 2015

De catacomben


Behalve dat de mac pro na het opstarten aangeeft dat er opnieuw, wegens een fout, is opgestart lijkt de nieuwe kaart goed te werken. Het testprogramma voor Theano geeft echter nog aan dat de cpu en niet de gpu gebruikt wordt. Tijd dus om opnieuw de installatie instructie voor Theano door te nemen. Opnieuw Cuda geïnstalleerd en tevens naar de laatste versie bijgewerkt. Kijk dat scheelt alweer. Als ik nu met onderstaand commando het testprogramma opstart geeft hij aan dat de GPU gebruikt wordt. Ook behoorlijk wat sneller:
CPU: Looping 1000 times took 2.90439796448 seconds
GPU: Looping 1000 times took 0.767756938934 seconds
Dat helpt!
Het commando is:

  • THEANO_FLAGS='floatX=float32,device=gpu0,nvcc.fastmath=True'  python /Users/DWW/Documents/test_gpu.py

Start ik hier echter het convolutional network algoritme op vergelijkbare wijze mee op dan krijg ik de melding dat 'load' (het load.py programma om de mnist dataset te laden) niet gevonden kan worden. Blijkbaar heb ik het juiste pad (PATH) nog niet toegevoegd. (Daarnaast moet ik nu mijn eerdere aanpassing van T.ftensor4 naar T.dtensor4 weer terugdraaien. Blijkbaar iets met de Cuda installatie te maken?)

Om de $PATH parameter aan te passen kom ik in een exotische editor via


  • vi ~/.bash_profile
Het lukt mij uiteindelijk wel om daarmee aanpassingen te doen maar het programma blijft de fout geven. Ook bedenk ik mij dat het dan om een tijdelijke setting, per aangeboden programma, gaat. Uit de instructies blijkt dat ik de parameters 'floatX=float32 en device=gpu0' ergens in een .theanorc file moet aanpassen. Die file is echter nergens terug te vinden. Uiteindelijk vindt ik hoe dat dan zou moeten:
  • echo -e "\n[global]\nfloatX=float32\n" >> ~/.theanorc
Dit doet wel een beetje aan de oude DOS tijd denken maar zal voor Linux gebruikers gesneden koek zijn. Het werkt! Nadat er eerst wat voorwerk wordt gedaan (vermoedelijk wat c++ compilaties) loopt de leer-loop uit het convolutional network nu in gemiddeld 37,5 seconden! Bij het gebruik van de CPU was er voor hetzelfde loopje meer dan 50 minuten nodig! Kijk nu wordt het interessant. Dan kan ik ook met dit type deep learning netwerk wat gaan experimenten. De tocht door de catacomben van OSX (en de dure videokaart :-) begint nu vruchten af te werpen. Na ongeveer 30 loops zit de betrouwbaarheid al op 99,5%!!!

De computer crashed echter bij het typen van de voorgaande zin. Wat een ironie! De kaart moet nog wel een stapje stabieler worden.
Ik bedenk mij nu dat ik de 'vi' editor dan ook moet kunnen gebruiken voor de .theanorc file. Er blijkt een hoop troep in te staan van mijn eerdere experimenten met het echo commando. Gelukkig kan ik alles nu opschonen.  Er staat nu :

[global]
nfloatX=float32
device=gpu0


Geen opmerkingen:

Een reactie posten