{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"<a id=\"0\"></a> <br>\n # Table of Contents  \n1. [Dataset Preparation](#1)     \n    1. [Creating Train and Test Data](#1.1) \n1. [Data Visualization](#2) \n1. [Data Preprocessing](#3) \n    1. [One Hot Encoding](#3.1)\n    1. [Reshaping](#3.2)\n    1. [Data Standardization](#3.3)\n1. [Creating Model](#4)     \n    1. [Adjust Hyperparamaters](#4.1) \n1. [Graphics for Accuracy and Loss](#5)     \n1. [Evaluate Model](#6)\n    1. [Classification Report](#6.1)\n    1. [Confusion Matrix](#6.2)\n1. [Interpretation and Testing Model](#7)        \n1. [Compare Prediction and Actual Values on CSV](#8)\n1. [Saving Model](#9)\n1. [Loading Model](#10)\n\n","metadata":{}},{"cell_type":"code","source":"import numpy as np \nimport pandas as pd \nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\nimport tensorflow as tf\nfrom tensorflow import keras\nfrom sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, classification_report\n\nimport keras\nfrom keras.datasets import mnist\nfrom keras.models import load_model\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Dropout, Flatten, Activation\nfrom keras.utils import to_categorical, plot_model\nfrom keras. layers import Conv2D, MaxPooling2D\nfrom keras import backend as K\n\nimport warnings\nfrom warnings import filterwarnings\nfilterwarnings('ignore')\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:07.573386Z","iopub.execute_input":"2023-05-21T09:04:07.573789Z","iopub.status.idle":"2023-05-21T09:04:16.782904Z","shell.execute_reply.started":"2023-05-21T09:04:07.573753Z","shell.execute_reply":"2023-05-21T09:04:16.781627Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"1\"></a> \n# Dataset Preparation","metadata":{}},{"cell_type":"markdown","source":"<a id=\"1.1\"></a> \n### Creating Train and Test Data","metadata":{}},{"cell_type":"code","source":"(x_train, y_train), (x_test, y_test) = mnist.load_data() # Mnist veri setinin yüklenmesi\nprint(\"Eğitim Seti Boyutu:\", x_train.shape, y_train.shape ,\"Test Seti Boyutu:\", x_test.shape, y_test.shape)\n\nunique_numbers = len(np.unique(y_train))# Bağımlı değişkendeki etiket sayısı (0-9 arası rakamlar)\nprint(\"Sınıf Sayısı:\" ,unique_numbers)\n\n# train_data = pd.read_csv(\"../input/digit-recognizer/train.csv\")\n# test_data = pd.read_csv(\"../input/digit-recognizer/test.csv\")","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:16.786035Z","iopub.execute_input":"2023-05-21T09:04:16.787237Z","iopub.status.idle":"2023-05-21T09:04:18.700647Z","shell.execute_reply.started":"2023-05-21T09:04:16.787193Z","shell.execute_reply":"2023-05-21T09:04:18.699662Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train_df = pd.DataFrame(y_train)\ny_train_df.describe().T","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:18.701782Z","iopub.execute_input":"2023-05-21T09:04:18.703878Z","iopub.status.idle":"2023-05-21T09:04:18.755448Z","shell.execute_reply.started":"2023-05-21T09:04:18.703842Z","shell.execute_reply":"2023-05-21T09:04:18.754304Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train_df.value_counts().sort_values(ascending = False)","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:18.758159Z","iopub.execute_input":"2023-05-21T09:04:18.758568Z","iopub.status.idle":"2023-05-21T09:04:18.775524Z","shell.execute_reply.started":"2023-05-21T09:04:18.758538Z","shell.execute_reply":"2023-05-21T09:04:18.774244Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_test_check = y_test.copy()\ny_train_check = y_train.copy()\nx_train_check = x_train.copy()\nx_test_check = x_test.copy()","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:18.777008Z","iopub.execute_input":"2023-05-21T09:04:18.777452Z","iopub.status.idle":"2023-05-21T09:04:18.806396Z","shell.execute_reply.started":"2023-05-21T09:04:18.777414Z","shell.execute_reply":"2023-05-21T09:04:18.805328Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"2\"></a> \n# Data Visualization","metadata":{}},{"cell_type":"code","source":"plt.title(\"Distribution of numbers in the dataset\")\nsns.barplot(x=y_train_df.value_counts().sort_values(ascending = False).index.values, y=y_train_df.value_counts().sort_values(ascending = False));","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:18.807897Z","iopub.execute_input":"2023-05-21T09:04:18.808427Z","iopub.status.idle":"2023-05-21T09:04:19.127243Z","shell.execute_reply.started":"2023-05-21T09:04:18.808318Z","shell.execute_reply":"2023-05-21T09:04:19.126189Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def visualize_number(img, ax):\n    ax.imshow(img, cmap='gray')\n    width, height = img.shape\n    thresh = img.max()/2.5\n    for x in range(width):\n        for y in range(height):\n            ax.annotate(str(round(img[x][y],2)), xy=(y,x),\n                        horizontalalignment='center',\n                        verticalalignment='center',\n                        color='white' if img[x][y]<thresh else 'black')\n\nfig = plt.figure(figsize = (15,10)) \nax = fig.add_subplot(111)\n\nvisualize_number(x_test[10], ax)","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:19.128516Z","iopub.execute_input":"2023-05-21T09:04:19.128813Z","iopub.status.idle":"2023-05-21T09:04:22.420635Z","shell.execute_reply.started":"2023-05-21T09:04:19.128788Z","shell.execute_reply":"2023-05-21T09:04:22.419597Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = plt.figure(figsize=(20,20))\nfor i in range(10):\n    ax = fig.add_subplot(5,5,i+1)\n    ax.imshow(np.reshape(x_train[i],(28,28)),cmap='gray')\n    plt.tight_layout()\n    ax.set_title(\"Number: {}\".format(y_train[i]))","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:22.421807Z","iopub.execute_input":"2023-05-21T09:04:22.422199Z","iopub.status.idle":"2023-05-21T09:04:25.499217Z","shell.execute_reply.started":"2023-05-21T09:04:22.422143Z","shell.execute_reply":"2023-05-21T09:04:25.498216Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"3\"></a> \n# Data Preprocessing","metadata":{}},{"cell_type":"markdown","source":"<a id=\"3.1\"></a> \n### One Hot Encoding","metadata":{}},{"cell_type":"code","source":"# to_categorical(y_train) == np.array(pd.get_dummies(y_train))\ny_train = np.array(pd.get_dummies(y_train))\ny_test = np.array(pd.get_dummies(y_test))","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.500574Z","iopub.execute_input":"2023-05-21T09:04:25.500924Z","iopub.status.idle":"2023-05-21T09:04:25.512522Z","shell.execute_reply.started":"2023-05-21T09:04:25.500893Z","shell.execute_reply":"2023-05-21T09:04:25.511533Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.516309Z","iopub.execute_input":"2023-05-21T09:04:25.517524Z","iopub.status.idle":"2023-05-21T09:04:25.524078Z","shell.execute_reply.started":"2023-05-21T09:04:25.517479Z","shell.execute_reply":"2023-05-21T09:04:25.523073Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"3.2\"></a>\n### Reshaping","metadata":{}},{"cell_type":"code","source":"image_size = x_train.shape[1] # Girdi görüntüsünün boyutu\nx_train = x_train.reshape(x_train.shape[0], 28, 28, 1) # reshape işlemi gerçekleştirilmesi\nx_test = x_test.reshape(x_test.shape[0], 28, 28, 1)","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.525413Z","iopub.execute_input":"2023-05-21T09:04:25.525860Z","iopub.status.idle":"2023-05-21T09:04:25.533918Z","shell.execute_reply.started":"2023-05-21T09:04:25.525832Z","shell.execute_reply":"2023-05-21T09:04:25.532932Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"3.2\"></a>\n### Data Standardization","metadata":{}},{"cell_type":"code","source":"# 0 ile 255 arasındaki gri skaladaki piksel değerlerini 0 ile 1 arasında normalize etme\nx_train = x_train / 255.0 \nx_test = x_test / 255.0\n\n# x_train = np.reshape(x_train,[-1, image_size, image_size, 1]) \n# x_test = np.reshape(x_test,[-1, image_size, image_size, 1])\n\n# x_train = x_train.astype('float32') / 255\n# x_test = x_test.astype('float32') / 255","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.535522Z","iopub.execute_input":"2023-05-21T09:04:25.535847Z","iopub.status.idle":"2023-05-21T09:04:25.697656Z","shell.execute_reply.started":"2023-05-21T09:04:25.535820Z","shell.execute_reply":"2023-05-21T09:04:25.696578Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"4\"></a>\n# Creating Model","metadata":{}},{"cell_type":"markdown","source":"<a id=\"4.1\"></a>\n## Adjust Hyperparamaters","metadata":{}},{"cell_type":"code","source":"input_shape = (image_size, image_size, 1) # Görüntünün boyutları (28, 28, 1)\n\nbatch_size = 128 # Her bir epochda (dönemde) veri setinden alınacak olan kümenin eleman sayısı\n\nepochs = 10 # Modelin kaç dönemde (epochs) eğitilmesi gerektiği ile ilgili hiperparametredir. \n\nkernel_size = 3 # Filtre Boyutu 3 x 3 \n\npool_size = 2 # Ortaklama (Pooling) Boyutu 2 x 2 \n\nfilters = 64 # Kaç adet filtre olacağı\n\ndropout = 0.2 # Seyreltme oranı ","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.699148Z","iopub.execute_input":"2023-05-21T09:04:25.699773Z","iopub.status.idle":"2023-05-21T09:04:25.705012Z","shell.execute_reply.started":"2023-05-21T09:04:25.699739Z","shell.execute_reply":"2023-05-21T09:04:25.704018Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Model Katmanlarının Oluşturulması 5 Katmandan oluşmaktadır. \nmodel = Sequential()\n\n#1.KATMAN\nmodel.add(Conv2D(filters=filters,\n                 kernel_size=kernel_size,\n                 activation='relu',\n                 input_shape=input_shape))\nmodel.add(MaxPooling2D(pool_size))\n\n#2.KATMAN\nmodel.add(Conv2D(filters=filters,\n                 kernel_size=kernel_size,\n                 activation='relu'))\nmodel.add(MaxPooling2D(pool_size))\n\n#3.KATMAN\nmodel.add(Conv2D(filters=filters,\n                 kernel_size=kernel_size,\n                 activation='relu'))\n\n# TAM BAĞLANTI KATMANI\nmodel.add(Flatten())\n\n# ÇIKIŞ KATMANI\nmodel.add(Dropout(dropout))\nmodel.add(Dense(unique_numbers))\nmodel.add(Activation('softmax'))","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.706537Z","iopub.execute_input":"2023-05-21T09:04:25.706840Z","iopub.status.idle":"2023-05-21T09:04:25.934946Z","shell.execute_reply.started":"2023-05-21T09:04:25.706814Z","shell.execute_reply":"2023-05-21T09:04:25.933938Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Model özeti\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.936348Z","iopub.execute_input":"2023-05-21T09:04:25.936672Z","iopub.status.idle":"2023-05-21T09:04:25.972809Z","shell.execute_reply.started":"2023-05-21T09:04:25.936644Z","shell.execute_reply":"2023-05-21T09:04:25.971861Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Optimizasyon ve Değerlendirme metrikleri\nmodel.compile(loss='categorical_crossentropy',\n              optimizer='adam',\n              metrics=['accuracy'])\n\n# Modelin eğitimi\nhistory = model.fit(x_train, y_train, epochs = epochs, batch_size = batch_size, validation_data=(x_test, y_test))","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:04:25.974323Z","iopub.execute_input":"2023-05-21T09:04:25.974655Z","iopub.status.idle":"2023-05-21T09:11:42.482709Z","shell.execute_reply.started":"2023-05-21T09:04:25.974627Z","shell.execute_reply":"2023-05-21T09:11:42.481640Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"5\"></a>\n# Graphics for Accuracy and Loss","metadata":{}},{"cell_type":"code","source":"# Loss\nplt.title('Eğitim Loss Grafiği', fontsize=20)\nplt.ylabel('Loss')\nplt.plot(history.history['loss'], color='b', label='Training Loss')\nplt.plot(history.history['val_loss'], color='r', label='Validation Loss')\nplt.legend()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:42.484559Z","iopub.execute_input":"2023-05-21T09:11:42.485101Z","iopub.status.idle":"2023-05-21T09:11:42.713241Z","shell.execute_reply.started":"2023-05-21T09:11:42.485069Z","shell.execute_reply":"2023-05-21T09:11:42.712063Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Accuracy\nplt.title('Eğitim Accuracy Grafiği', fontsize=20)\nplt.ylabel('Accuracy')\nplt.plot(history.history['accuracy'], color='b', label='Training Loss')\nplt.plot(history.history['val_accuracy'], color='r', label='Validation Loss')\nplt.legend()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:42.714638Z","iopub.execute_input":"2023-05-21T09:11:42.715019Z","iopub.status.idle":"2023-05-21T09:11:42.965950Z","shell.execute_reply.started":"2023-05-21T09:11:42.714965Z","shell.execute_reply":"2023-05-21T09:11:42.964483Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"6\"></a>\n# Evaluate Model","metadata":{}},{"cell_type":"code","source":"# Model değerlendirmesi\ntest_loss, test_acc = model.evaluate(x_test,  y_test, verbose=2)\nprint('Test Accuracy:', round(test_acc, 4) * 100)\nprint('Test Loss:', round(test_loss, 4) * 100)","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:42.967431Z","iopub.execute_input":"2023-05-21T09:11:42.967753Z","iopub.status.idle":"2023-05-21T09:11:45.323726Z","shell.execute_reply.started":"2023-05-21T09:11:42.967727Z","shell.execute_reply":"2023-05-21T09:11:45.322367Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# tahmin edilen rakamı al\ny_pred = np.argmax(model.predict(x_test), axis=1)","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:45.325551Z","iopub.execute_input":"2023-05-21T09:11:45.325997Z","iopub.status.idle":"2023-05-21T09:11:48.076469Z","shell.execute_reply.started":"2023-05-21T09:11:45.325954Z","shell.execute_reply":"2023-05-21T09:11:48.074999Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"6.1\"></a> \n### Classification Report","metadata":{}},{"cell_type":"code","source":"clf_report = classification_report(y_test_check, y_pred, output_dict=True)\nsns.heatmap(pd.DataFrame(clf_report).iloc[:-1, :].T, annot=True);","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:48.078051Z","iopub.execute_input":"2023-05-21T09:11:48.078434Z","iopub.status.idle":"2023-05-21T09:11:48.537838Z","shell.execute_reply.started":"2023-05-21T09:11:48.078401Z","shell.execute_reply":"2023-05-21T09:11:48.536650Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"6.2\"></a> \n### Confusion Matrix","metadata":{}},{"cell_type":"code","source":"cm = confusion_matrix(y_test_check, y_pred)\nConfusionMatrixDisplay(cm).plot()","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:48.539605Z","iopub.execute_input":"2023-05-21T09:11:48.540296Z","iopub.status.idle":"2023-05-21T09:11:49.077090Z","shell.execute_reply.started":"2023-05-21T09:11:48.540256Z","shell.execute_reply":"2023-05-21T09:11:49.075891Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"7\"></a>\n# Interpretation and Testing Model ","metadata":{}},{"cell_type":"code","source":"test_image = x_test[25] # x_test içerisinden rastgele bir değer seçelim.\ny_test[25]\n\nplt.figure(figsize=(3,3))\nplt.title(\"Visualization of Randomly Selected Number\")\nplt.imshow(test_image, cmap = mpl.cm.binary) # Rastgele Seçilen Rakamın Görselleştirilmesi\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:49.078473Z","iopub.execute_input":"2023-05-21T09:11:49.079301Z","iopub.status.idle":"2023-05-21T09:11:49.265290Z","shell.execute_reply.started":"2023-05-21T09:11:49.079267Z","shell.execute_reply":"2023-05-21T09:11:49.264079Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.set_printoptions(suppress=True, formatter={'float_kind':'{:0.3f}'.format})\n\n\n# Olasılık değeri 1'e en yakın olan değer yukarıdaki labeldaki index sıralaması aynı olmalıdır.\nmy_test_data = x_test[20].reshape(1,28,28,1) # Rastgele bir değer seçeriz\n\nproba = model.predict(my_test_data) # modelin tahmin ettiği rakam ve olasılık değerleri yazdırılmaktadır. \npredict_classes = np.argmax(proba,axis=1) # modelin tahmin ettiği rakam \n\nprint(\"Tahmin edilen sayı:\", predict_classes)\nprint(\"Sayının olasılık değerleri:\", proba)\nprint(\"En yüksek olasılık değerine sahip index:\", np.argmax(proba))","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:49.266583Z","iopub.execute_input":"2023-05-21T09:11:49.266912Z","iopub.status.idle":"2023-05-21T09:11:49.347322Z","shell.execute_reply.started":"2023-05-21T09:11:49.266884Z","shell.execute_reply":"2023-05-21T09:11:49.346148Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def display_predicted_original():\n    plt.figure(figsize=(15, 7))\n    n = 0\n    nrows = 4\n    ncols = 5\n    fig, ax = plt.subplots(nrows,ncols,sharex=True,sharey=True)\n    for row in range(nrows):\n        for col in range(ncols):\n            number = x_test[n]\n            ax[row,col].imshow(number)\n            ax[row,col].set_title(\"Predicted:{}\\nTrue:{}\".format(y_pred[n], np.argmax(y_test[n])), fontsize=10)\n            plt.tight_layout()\n            n += 1\ndisplay_predicted_original()                                ","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:49.349102Z","iopub.execute_input":"2023-05-21T09:11:49.349641Z","iopub.status.idle":"2023-05-21T09:11:59.107956Z","shell.execute_reply.started":"2023-05-21T09:11:49.349596Z","shell.execute_reply":"2023-05-21T09:11:59.106799Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"8\"></a>\n# Compare Prediction and Actual Values on CSV","metadata":{}},{"cell_type":"code","source":"result = pd.DataFrame(data={'predictions': y_pred, 'actual': np.argmax(y_test, axis=1)})\nresult.to_csv(\"result.csv\")","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:59.156430Z","iopub.execute_input":"2023-05-21T09:11:59.156896Z","iopub.status.idle":"2023-05-21T09:11:59.185392Z","shell.execute_reply.started":"2023-05-21T09:11:59.156852Z","shell.execute_reply":"2023-05-21T09:11:59.184412Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"9\"></a>\n# Saving Model","metadata":{}},{"cell_type":"code","source":"model.save('my_model.h5') # h5 dosyası olarak kaydetmek \n\nmodel_json = model.to_json() # json formatında kaydetmek\nwith open(\"model.json\", \"w\") as json_file:\n  json_file.write(model_json) ","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:11:59.109258Z","iopub.execute_input":"2023-05-21T09:11:59.109597Z","iopub.status.idle":"2023-05-21T09:11:59.154585Z","shell.execute_reply.started":"2023-05-21T09:11:59.109570Z","shell.execute_reply":"2023-05-21T09:11:59.153409Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"10\"></a>\n# Loading Model","metadata":{}},{"cell_type":"code","source":"loaded_model = keras.models.load_model('my_model.h5')","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:18:59.812650Z","iopub.execute_input":"2023-05-21T09:18:59.813125Z","iopub.status.idle":"2023-05-21T09:18:59.949678Z","shell.execute_reply.started":"2023-05-21T09:18:59.813090Z","shell.execute_reply":"2023-05-21T09:18:59.948397Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"Yüklenen modelin tahmin ettiği sınıf:\", np.argmax(loaded_model.predict(x_test[20].reshape(1,28,28,1))))","metadata":{"execution":{"iopub.status.busy":"2023-05-21T09:21:03.639126Z","iopub.execute_input":"2023-05-21T09:21:03.640077Z","iopub.status.idle":"2023-05-21T09:21:03.713301Z","shell.execute_reply.started":"2023-05-21T09:21:03.640035Z","shell.execute_reply":"2023-05-21T09:21:03.712192Z"},"trusted":true},"execution_count":null,"outputs":[]}]}