donderdag 25 februari 2016

MRI - 23 - datatype issues

Na de furore over de eerste Kaggle inzending de bezinning op het tegenvallende resultaat. In plaats van een verbetering lijkt het resultaat alleen maar slechter te worden Ik bekijk de inputafbeeldingen en krijg heel vreemde resultaten:


Wat ik ook doe het lijken alleen maar nullen met een streepje (de sexe?) en een enkel stipje te zijn. Ja, geen wonder dat hij daar weinig van kan leren. Uiteindelijk vind ik het euvel. Aan het einde van de datacollectie worden de afbeeldingen naar het type uint8 geconverteerd:


X = np.array(X, dtype=np.uint8)

Tja ... 8 bytes voor een getal van 0 .. 255. Op zich aardig maar het uitgangspunt voor de afbeeldingen was een float getal tussen 0 en 1 : 

image = image.pixel_array.astype(float)
image /= np.max(image)  # scale to [0,1]

Hoe doet die dan de conversie? Vreemd. Ik heb er wel wat functies tussen geplaatst maar m.i. niet die het datatype aanpassen. Hoe kan de oorspronkelijke Kaggle code dan wel goede resultaten geven?

Afijn, na nog een keertje de mist in te gaan doordat de uint8 op 2 plaatsen in het programma staat, draait hij nu zo te zien met de juiste data. Hopelijk gaat dit wel top-scores opleveren.    




Geen opmerkingen:

Een reactie posten