From 18ad839cccce1213898594a7742d3e900c1853c1 Mon Sep 17 00:00:00 2001 From: Tonish05 <168892013+Tonish05@users.noreply.github.com> Date: Tue, 15 Jul 2025 23:40:30 +0530 Subject: [PATCH] NDV_COde_By_TonishT_DigitRecognition na --- .../DigitRecognition.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 NDV_Code_By_TonishT_Digit_recognition/DigitRecognition.py diff --git a/NDV_Code_By_TonishT_Digit_recognition/DigitRecognition.py b/NDV_Code_By_TonishT_Digit_recognition/DigitRecognition.py new file mode 100644 index 000000000..bb12c0676 --- /dev/null +++ b/NDV_Code_By_TonishT_Digit_recognition/DigitRecognition.py @@ -0,0 +1,35 @@ +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))