From a28989b0844f4af1c6bdd3b43e8c0297940b16e1 Mon Sep 17 00:00:00 2001 From: Nandini Marepalli Date: Tue, 22 Jul 2025 09:23:43 +0530 Subject: [PATCH] NDV_Code_By_NandiniM_DigitRecognition --- .../DigitRecognition.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 NDV_Code_By_NandiniM_DigitRecognition/DigitRecognition.py diff --git a/NDV_Code_By_NandiniM_DigitRecognition/DigitRecognition.py b/NDV_Code_By_NandiniM_DigitRecognition/DigitRecognition.py new file mode 100644 index 000000000..543e712ff --- /dev/null +++ b/NDV_Code_By_NandiniM_DigitRecognition/DigitRecognition.py @@ -0,0 +1,36 @@ +#Digit Recognition +import numpy as np +import matplotlib.pyplot as plt +from tensorflow.keras.datasets import mnist +from tensorflow.keras.models import Sequential +from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense + + +(X_train, y_train), (X_test, y_test) = mnist.load_data() + +X_train = X_train / 255.0 +X_test = X_test / 255.0 + +X_train = X_train.reshape(-1, 28, 28, 1) +X_test = X_test.reshape(-1, 28, 28, 1) +model = Sequential([ + Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), + MaxPooling2D(pool_size=(2, 2)), + Flatten(), + Dense(64, activation='relu'), + Dense(10, activation='softmax') # 10 classes for digits 0–9 +]) +model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) + +model.fit(X_train, y_train, epochs=5, validation_data=(X_test, y_test)) + +loss, accuracy = model.evaluate(X_test, y_test) +print(f"Test Accuracy: {accuracy:.2f}") + + +plt.imshow(X_test[0].reshape(28, 28), cmap='gray') +plt.title(f"True Label: {y_test[0]}") +plt.show() + +prediction = model.predict(np.expand_dims(X_test[0], axis=0)) +print("Predicted Label:", np.argmax(prediction))