Seite 1 von 1

Digit Recognizer

Verfasst: Dienstag 26. Januar 2021, 10:37
von MacerPacer
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

Re: Digit Recognizer

Verfasst: Dienstag 26. Januar 2021, 11:32
von ThomasL
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. :-)