9 mei 2011

Daar zijn we weer.

In deze blog komt echt het minimale aan bod kwa gebeurtenissen. Maar goed eerst mijn stage.

Deze week staat ik de trant van daad werkelijk realiseren. Na vele weken besteed te hebben aan het begrijpen van DeSTIN en het plannen hoe het te gaan veranderen was het dan eindelijk zo ver. Het omzetten van DeSTIN naar CUDA. Tijdens dit proces nog meer troep tegen gekomen in de code. Om het mezelf makkelijker te maken gebruik gemaakt van een makkelijkere manier om een bestand uit te lezen.

Lang leve de XML methodes die er tegenwoordig zijn. Hoewel het stukje software kwa code best groot is welgeteld 3 bestanden. Heeft het de leesbaarheid van de code wel vereenvoudigt. Ook de  mogelijkheid om het aan te passen is nu ook een stuk makkelijker. Het enige wat er nu wel gebeurt is dat de originele code echt niet meer compatibel is met de nieuwe. Ze moeten dus eerst hun waardes vertalen naar het nieuwe formaat en dan werkt het weer. Tijdens mijn jacht naar het omzetten van deze code kom ik nu echt bergen waardes tegen die eigenlijk allemaal in dit bestand thuis horen. Maar die voor het gemak in de code verwerkt zitten.

Dit betekend dat wanneer we de software zouden opleveren dat het altijd met alle source moet. Nu is het niet zo’n probleem nu het toch open source is maar toch. Sommige mensen willen waarschijnlijk het gewoon bouwen dat voor hun geldende instellingen erin stoppen en runnen. Zonder daarvoor duizenden regels code voor door te moeten spitten voor ze die bepaalde waarde hebben gevonden. Ook de uitkomst van het netwerk zou nu in zo’n bestand gepropt kunnen worden. Al weet ik nu nog even niet hoe je al die waardes wilt gaan op slaan maar dat is eigenlijk ook buiten mijn scope. De mogelijkheid is er nu en dat zal hopelijk behouden blijven. (Het is China die houden alleen van eigen gemaakt werk)

Over scope gesproken hoewel ik vrolijk zeg dat het buiten mijn scope valt. Wanneer ik de data tussentijds moet overhevelen naar de volgende laag zou het best wel eens kunnen zijn dat ik dit bestand toch moet maken. Al zou het alleen al voor het debuggen ervan zijn.

Wat heb ik eigenlijk allemaal om te zetten? Om DeSTIN tot zijn skelet te vertellen bestaat het uit: Input (afbeelding of video), Layers, Nodes, Clustering, States (Centroids). Het Input gedeelte zit nu in de CUDA versie alleen is het nog op de oude manier. Er dient een kleine wijziging verricht te worden hier om ervoor te zorgen dat de GPU geniet van de input maar omdat het nu even makkelijker is om de code werkend te houden op de CPU gaan we stap voor stap verder met het opbouwen van het DeSTIN netwerk.

Zo ben ik nu bijna aangekomen bij het Layer moment deze verschillende lagen zitten vol met instellingen die per laag verschillen maar die blijkbaar in de code zelf geregeld worden in plaats van buiten af dus hier zit mijn verhuis instellingen naar het configuratie bestand. Het resultaat gaat waarschijnlijk een vele male grotere configuratie bestand worden maar dat wanneer de volgende ermee moet werken tenminste door heeft dat hij in de configuratie bestand moet zijn en niet in de code zelf.

Tot zover mijn vooruitgang met DeSTIN de videokaart is nu nog blij met me aangezien die niets hoeft te doen. Maar daar hoop ik volgende week verandering in gebracht te hebben. Dan mag die gaan stoom blazen en hopelijk overleeft mijn laptop dat wel kwa voorspelde hitte.

(meer…)