Ich habe ein einfaches Modell mit dem mnist Datensatz trainiert
import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.utils import to_categorical
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train / 255.0
X_test = X_test / 255.0
y_train = to_categorical(y_train, num_classes=10)
y_test = to_categorical(y_test, num_classes=10)
model = Sequential([
Flatten(input_shape=(28, 28)), # Eingabeschicht
Dense(128, activation='relu'), # Versteckte Schicht mit 128 Neuronen
Dense(10, activation='softmax') # Ausgabeschicht mit 10 Neuronen (10 Klassen)
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=5, batch_size=32, validation_split=0.2)
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Test Loss: {loss:.4f}, Test Accuracy: {accuracy:.4f}")
und die Vorhersage funktioniert auch
import numpy as np
import matplotlib.pyplot as plt
test_image = X_test[0]
batched_image = np.expand_dims(test_image, axis=0)
predictions = model.predict(batched_image)
predicted_digit = np.argmax(predictions)
plt.imshow(test_image, cmap='gray')
plt.title(f"Predicted Digit: {predicted_digit}")
plt.show()
aber das verwendet nur Bilder aus dem Datensatz. Die kennt das Modell also alle schon. Wie kann ich aber jetzt eine Ziffer auf einem beliebigen Bild erkennen? Ich möchte mit Paint eine Ziffer zeichnen und diese dann als PNG speichern und erkennen. Wie geht das?