Digit Recognizer

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MacerPacer
User
Beiträge: 8
Registriert: Dienstag 19. Januar 2021, 10:30

Hey,

ich sitze gerade am Digit Recognizer in der Kaggle-Challenge.


Das ist mein Code für das Model und die Prediction der richtigen Labels:


Code: Alles auswählen

from sklearn.model_selection import train_test_split

train_x,test_x,train_y,test_y = train_test_split(x_train,y_train,test_size=0.30)

model = tf.keras.Sequential([
    #tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(256, activation=tf.nn.relu),
    tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])


model.compile(optimizer=tf.keras.optimizers.Adam(),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_x, train_y, epochs=1)

model.evaluate(test_x, test_y)


s=x_test[2].reshape(28,28)
print(plt.imshow(s))


predictions = model.predict(test_x)
#print(predictions)


Wenn ich jetzt die Predictions print kommt jedoch immer nur ein Array mit den einzelnen Wahrscheinlichkeiten für die Werte von 0-9. Wie kann ich den Code so ändern, dass er mir über prediction direkt das korrekte Label zurückgibt?

Danke für eure Antworten.

MfG Lukas
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Das "korrekte" Label für jede Prediction ist ja der Index mit der höchsten Wahrscheinlichkeit.
Den kannst du mit numpy.argmax() ermitteln. https://numpy.org/doc/stable/reference/ ... rgmax.html
Ob das dann aber wirklich das korrekte Label ist steht ja auf einem anderen Blatt oder besser gesagt, ist abhängig davon wie gut dein Modell und wie gut es trainiert ist. :-)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten