Kürzlich habe ich ein paar Tutorials zum maschinellen Lernen gefolgt, und jetzt möchte ich testen, ob ich selbst ein Bilderkennungsprogramm machen kann. Dazu möchte ich den CIFAR 10 Datensatz verwenden, aber ich denke, ich habe ein kleines Problem bei der Konvertierung des Datensatzes.Überprüfen Sie, ob cifar10 gut konvertiert ist
Für wer ist nicht vertraut mit diesem Satz: der Datensatz kommt als Listen von n Zeilen und 3072 Spalten, in denen die ersten 1024 Spalten die roten Werte, die zweite 1024 die grünen Werte und die letzten sind die blauen Werte. Jede Reihe ist ein einzelnes Bild (Größe 32x32) und die Pixelreihen sind aufeinander gestapelt (die ersten 32 Werte sind die roten Werte für die oberste Reihe von Pixeln usw.)
Was ich damit machen wollte Datensatz ist es in einen 4D Tensor (mit numpy) zu transformieren, so dass ich die Bilder mit Matplotlibs .imshow()
ansehen kann. der Tensor, den ich gemacht habe, hat diese Form: (n, 32, 32, 3)
, so speichert die erste Dimension alle Bilder, die zweite speichert Reihen von Pixeln, die dritte speichert einzelne Pixel und die letzte repräsentiert die RGB-Werte dieser Pixel. Hier ist die Funktion, die ich gemacht, dass das tun soll:
def rawToRgb(data):
length = data.shape[0]
# convert to flat img array with rgb pixels
newAr = np.zeros([length, 1024, 3])
for img in range(length):
for pixel in range(1024):
newAr[img, pixel, 0] = data[img, pixel]
newAr[img, pixel, 1] = data[img, pixel+1024]
newAr[img, pixel, 2] = data[img, pixel+2048]
# convert to 2D img array
newAr2D = newAr.reshape([length, 32, 32, 3])
# plt.imshow(newAr2D[5998])
# plt.show()
return newAr2D
, die einen einzigen Parameter (ein Tensor Form (n, 3072)
). Ich habe den Pyplot-Code auskommentiert, da dies nur zum Testen ist, aber beim Testen habe ich festgestellt, dass alles in Ordnung ist (ich kann die Formen der Objekte in den Bildern erkennen, aber ich bin nicht sicher, ob die Farben gut sind oder nicht, wie ich ein paar seltsam farbige Bilder sowie einige ziemlich normale Bilder bekommen ... Hier sind einige Beispiele:. purple plane, blue cat, normal horse, blue frog
Kann mir jemand sagen, ob ich einen Fehler mache oder nicht wahr?
Tanks im Voraus !!