5 juli 2011

Oke beetje te druk met mijn stage waardoor de verhalen even moesten wachten. Maar goed deze gaat weer een berg recht zetten.

Te druk met stage ja – ja zullen jullie wel denken. En toch ga ik het zeggen ja was echt te druk met stage het is namelijk zo dat ik een mega doorbraak heb ik het project.
Het is namelijk zo dat ik het programma werkend heb. Wat zeg je me nauw ja het werkt en het werkt snel.

Na maanden door papers en code geploeterd te hebben is daar dan eindelijk het resultaat. De vele ontwerpen en tekeningen die op papier getekend zijn hebben vele bomen het leven gekost. Ook de energie verbruik van de supercomputer is nu ook met een paar procent gestegen aangezien die nu ook daadwerkelijk iets doet.

Hoewel het idee al wel een tijdje in mijn hoofd en ik ook kon uitleggen aan de Chinese wat ik ging doen en daarna uren discussiëren over hoe en waarom heb ik niet alleen mijn project al pratend verbeter maar ook die van de andere :). Een ander bijkomstig iets is dat toen ik voor het eerst daar werkte niemand geïnteresseerde was in CUDA en nu ik bijna vertrek de helft het overweegt of zelf gaat gebruiken. En aangezien de andere helft afgestudeerd is en gaat werken is de volgende groep volledig CUDA :).

Maar waarom schreef je twee weken geleden dan niet dat je het werkend heb. Dit was namelijk het breekpunt moment en aangezien het eureka moment niet alleen op de input en berekeningen zit maar op veel meer onderdelen moest dit wel even geschreven worden.  Twee weken geleden had ik  de input en berekening werken ook hoe de dichtstbijzijnde uitkomst berekend kon worden. Dit allemaal in CUDA de reductie truck werkt namelijk heel goed op dit en ik wil alleen het kleinste getal of het grootste getal als je het < omdraait natuurlijk.

De volgende uitdaging was de informatie voor de volgende laag. Wat ik eerst dacht dat de uitkomst was bleek niet overeen te komen met het oude programma. Dus op jacht naar waar dit verrekte getal vandaan kwam. Uiteindelijk bleek het niet zo lastig maar goed het zal wel weer verstopt tussen bergen nutteloze code.

Vervolgens kwam het updaten van de centroid zoals eerder uitgelegd de winnaar krijgt alles maar goed hoe dit in vredesnaam gedaan werd was weer een raadsel en zelf mijn collega had er maar een eigen oplossing op bedacht input+huidige positie gedeeld door 2 top idee alleen zouden de centroids dan wel hele grote sprongen kunnen maken en wanneer ze dat niet zouden moeten doen gebeurt dit toch. Dus na wat zoeken kwam ik er achter dat dit iets anders gebeurt het is meer als: “huidige positie – (huidige positie – input)*leersnelheid” waarbij de leersnelheid heel klein is 0.001

Na dit alles begon het intensieve testen testen en ja nog meer testen. Waarbij telkens weer wat kleine probleempjes aan het licht kwamen. Uiteindelijk bleek zelfs de formule als hier voor beschreven niet eens goed te werken. Met de winskunde wetten die van toepassing zijn bleek dat de formule of the GPU eigenlijk alleen maar de input pakte * leersnelheid. Deze gewijzigt in input – huidige positie * leersnelheid.

Het resultaat een stuk stabieler netwerk en ook veel duidelijkere antwoorden. Witten vlakken blijven op de zelfde plek ook al is een andere centroid vreselijk uitgehongerd. Omdat het programma oogbewegingen simuleert moest dit ook terug erin. Dit was iets wat wel al aanwezig was in de waardes waarmee het programma werkte maar werden nog niet gebruikt. Na dit toegevoegd te hebben Werkte het programma net zo goed.

Bij het testen liepen we wel tegen iets opvallends aan. In vergelijking met de originele versie van DeSTIN bleek de nieuwe versie omgedoopt tot DeSTINy op de grote test trager te zijn. Na een kleine onderzoek naar waar dit vandaan kwam was het weer een zoveelste truck in de oude DeSTIN om rekenkracht te besparen. Als een bepaalde node niet gebruikt word zet je hem gewoon uit. Wat inhoud dat in de lange run er op een bepaald moment niks meer draait alleen maar plaatjes erdoor gejaagd worden. Aangezien dit trucje op de GPU ten kosten gaat van de snelheid omdat in plaats van een enkele node de gehele layer berekend word in één keer. Een andere bijkomst is wanneer je iets kompleet nieuws zou laten zien DeSTIN dit nooit meer zou kunnen herkennen.

En aangezien het doel is om het als het beeld verwerking van een robot te gebruiken is het niet wenselijk om nodes uit te gaan zetten.

Mijn laatste dag stage was interessant maar ook teleurstellend. Op de laatste dag was de formule verbeterd voor het updaten van de centroids. Maar ten opzichten van mijn collega’s was het wel teleur tellend. Met iedereen waarmee ik intensief had samen gewerkt waren vroegtijdig vertrokken zonder gedag te zeggen. Zelf een verrassingsfeest was er niet. Uiteindelijk tegen een collega waarmee ik iets minder samen werkte maar gedag gezegd en het lab verlaten. Rare jongens die Chinese. (meer…)

13 juni 2011

Aangezien mijn vorige post al een stukje van deze week heeft meegenomen is er dus nu iets minder te vertellen.

Maar niet getreurd het was namelijk een interessante week. Voor wat mijn stage betreft het gaat uitstekend met het coderen naar CUDA.
Data word nu verwerkt en dan begint nu het cluster gedeelte. Wat voorheen dus erg traag was moet zo heel snel gaan aangezien de duizenden vergelijking tegelijk zullen gaan.
Maar tot het punt dat het gaat gebeuren moet er nog wat met de data gedaan worden want blijkbaar is het nu te groot om in 1x te verwerken dus ben weer aan het spitten hoe dat opgelost werd in de oude code 😛
Het opsplitsen is niet zo moeilijk de structuur die het huishoud wel. Vandaar.

(meer…)

25 april 2011

Woops een weekje geen blog neer gezet wat inhoud dat ik er nu 2 in 1 ga stoppen. De afgelopen 2 weken zijn best druk geweest in veel vergaderingen overleg en adviezen over hoe en wat.

Twee weken geleden is mijn stage begeleider Ben Goertzel in Xiamen aangekomen waarmee er direct een berg in gang werd gezet. Na wat wiskundige formule uitleg gehad te hebben en deze te herkennen in de code kwamen we tot de mooie ontdekking dat een groot deel van de formules beschreven in de papers (handleidingen) van DeSTIN er niet of half in zaten. Omdat de formules redelijk complex kunnen worden heeft de maker ze vervangen voor een versimpelde versie. Waarbij en vooral gewerkt word met constante waardes.

Dit is natuurlijk goed te doen wanneer je voorbeelden niet zo groot zijn maar als we het programma met een camera gaan gebruiken dan wordt het probleem een stuk complexer en wordt het toch wel handig om deze formules in het origineel te hebben in plaats van een versimpelde versie. Maar waar beginnen we. Er zit redelijk wat troep in de code of om het zachtjes uit te drukken. Om de werkelijke functie te vinden kan je beter de rest weg gooien :P.

Dat is dus waar we nu mee bezig zijn en zoals wij het mooi omschreven hebben zijn we de code aan het destilleren :P. Dit doen we door een versimpelde versie te maken en tegelijkertijd de originele code te strippen van all troep. De versimpelde versie heeft alleen de formules waarmee dus de hiërarchie  verdwijnt. Deze is wel van belang voor de werking van DeSTIN voor de mensen die het bij houden het lagen model is in de versimpelde versie niet volledig werkend meer. Maar die kan met weinig moeite weer hersteld worden.

Tot zover het stukje over de voortgang van DeSTIN.

(meer…)

5 maart 2011

Het is al weer even stil vanaf mijn kant dus vandaar een berichtje hier.

Hoewel ik het nog niet echt interessant vind om over mijn stage werkzaamheden zelf te schrijven. Komt hier dan toch een stukje hoe mijn dagelijkse bezigheid er op dit moment uit ziet.

Zoals de meeste mensen sta ik op een vast tijdstip op neem ik een douche, ontbijt ik en neem ik de bus naar mijn stage welk welgeteld 1 Yuan (+/- 0,10 euro) kost. Vervolgens loop ik 9 trappen(5 in het gebouw 4 om bij het gebouw zelf te komen) op om bij mijn werkplek aan te komen. Daar aangekomen gaat mijn laptop aan en ga ik aan de slag. Wat ik op dit moment doe is voornamelijk analyseren en leren. Mijn opdracht is duidelijk zorg ervoor dat een programma wat traag is snel gaat werken door middel van het werk wat die doet in kleine stukjes te hakken en te voeren aan een machine die heel veel kleine taken tegelijk kan uitvoeren. (Parallel programming).

Zo rond een uurtje of 11:30 a 12:00 beginnen ik en mijn collega’s honger te krijgen. She Fan (mijn chinees typen is nog steeds op zijn Nederlands) wat inhoud kom eten of eigenlijk vragen ze heb je al je rijst op gegeten :). Vervolgens al die trappen weer af en door de poort naar buiten naar een garagebox of een dak restaurant. Aangezien mijn collega’s het leuk vinden met mij te eten en ze daarvoor ook speciaal naar het werk komen rond lunch tijd zijn we meestal met een man of 5 a 8.

(meer…)

24 februari 2011

Jazeker je kan ze overal maken en het recept is niet zo moeilijk. Bloem, Eieren en Melk zijn de ingrediënten en als je zoete pannenkoeken wilt gooi je er een beetje suiker in.

Vandaag begon als een gewone dag wakker worden douche ontbijten naar mijn werk. Terwijl ik naar mijn werk ging even een stop gemaakt bij Luke hij de het mogelijk heeft gemaakt dat ik in China een huis en dat de stage papieren geregeld zijn. Na een uurtje of 2 met hem gebabbeld te hebben over van alles en nog wat vroeg hij of ik vanavond mee ging naar CHECK-IT (Naam van het eerste bedrijf waar ik stage liep in China) er zouden namelijk pannenkoeken gemaakt gaan worden en daar had ik natuurlijk wel zin in. Dus we spraken af dat ik na het werk weer naar hem zou komen. Even Meifang op de hoogte brengen en die vond dat ook goed. (meer…)

21 februari 2011

Vandaag begon als een rustige dag, dit weekend was niet super bijzonder te noemen.

Op zaterdag een Chinese bankrekening geopend en er voor gezorgd dat mijn studentenkaart met bus functie volledig zou werken.

Op zondag was het een dag van waar is mijn internet. Ik heb betaald voor internet ik wil internet. Na het opzoeken van de het probleem kwam ik er achter dat ze de bekabeling aan het vervangen waren die naar het verdeelpunt ging van mijn internet. Nu snap ik zelf wel dat daardoor het internet niet werk en dat dit meer ten voordelen voor mij is. Dit kon ik bevestigen aan de eind van de dag. Aangezien de verbinding nu niet meer lijkt op een inbelverbinding maar meer op een ADSL verbinding. Het Skype gesprek ging vervolgens ook vele malen beter dan voorheen.

Terug bij de dag van vandaag en ook de reden van de titel van dit verhaaltje. Terwijl ik rustig aan het werk was aan het project en ik het gevoel kreeg dat het wel wat druk werd om me heen en ik mijn naam best vaak voorbij hoorde komen tijdens dat Chinese gebrabbel. Keek ik maar eens om wat er nauw gaande is. Tot mijn ontdekking was iedereen bij elkaar geroepen dus uit hun vertrouwde cubicles. Wat blijkt ze moeten een demo gaan geven dat ze wel productief zijn. Wat inhoud dat die robot die in de kluis stof licht te verzamelen weer eens aan de slag moet.

(meer…)