{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0f95118e-7b2d-462d-9115-3398f7408d08",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2026-05-13 18:00:34.369184: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n",
      "2026-05-13 18:00:34.403209: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
      "To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
      "2026-05-13 18:00:35.367028: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import tensorflow as tf\n",
    "tf.config.set_visible_devices([], 'GPU')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4fd83263-41ed-4bbf-a313-5803f70f3742",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_df = pd.read_csv('fashion-mnist_train.csv')\n",
    "test_df = pd.read_csv('fashion-mnist_test.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c9ba1fe0-23f3-4fe3-a728-96b70d3481a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>label</th>\n",
       "      <th>pixel1</th>\n",
       "      <th>pixel2</th>\n",
       "      <th>pixel3</th>\n",
       "      <th>pixel4</th>\n",
       "      <th>pixel5</th>\n",
       "      <th>pixel6</th>\n",
       "      <th>pixel7</th>\n",
       "      <th>pixel8</th>\n",
       "      <th>pixel9</th>\n",
       "      <th>...</th>\n",
       "      <th>pixel775</th>\n",
       "      <th>pixel776</th>\n",
       "      <th>pixel777</th>\n",
       "      <th>pixel778</th>\n",
       "      <th>pixel779</th>\n",
       "      <th>pixel780</th>\n",
       "      <th>pixel781</th>\n",
       "      <th>pixel782</th>\n",
       "      <th>pixel783</th>\n",
       "      <th>pixel784</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>30</td>\n",
       "      <td>43</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 785 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   label  pixel1  pixel2  pixel3  pixel4  pixel5  pixel6  pixel7  pixel8  \\\n",
       "0      2       0       0       0       0       0       0       0       0   \n",
       "1      9       0       0       0       0       0       0       0       0   \n",
       "2      6       0       0       0       0       0       0       0       5   \n",
       "3      0       0       0       0       1       2       0       0       0   \n",
       "4      3       0       0       0       0       0       0       0       0   \n",
       "\n",
       "   pixel9  ...  pixel775  pixel776  pixel777  pixel778  pixel779  pixel780  \\\n",
       "0       0  ...         0         0         0         0         0         0   \n",
       "1       0  ...         0         0         0         0         0         0   \n",
       "2       0  ...         0         0         0        30        43         0   \n",
       "3       0  ...         3         0         0         0         0         1   \n",
       "4       0  ...         0         0         0         0         0         0   \n",
       "\n",
       "   pixel781  pixel782  pixel783  pixel784  \n",
       "0         0         0         0         0  \n",
       "1         0         0         0         0  \n",
       "2         0         0         0         0  \n",
       "3         0         0         0         0  \n",
       "4         0         0         0         0  \n",
       "\n",
       "[5 rows x 785 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "train_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ce9ac582-d90d-4320-ab36-d15b0b0484b3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 9, 6, 0, 3, 4, 5, 8, 7, 1])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_df['label'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8a358dc1-c5da-4526-8e20-429b0147e1fd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on _ArrayFunctionDispatcher in module numpy:\n",
      "\n",
      "reshape(a, /, shape=None, order='C', *, newshape=None, copy=None)\n",
      "    Gives a new shape to an array without changing its data.\n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    a : array_like\n",
      "        Array to be reshaped.\n",
      "    shape : int or tuple of ints\n",
      "        The new shape should be compatible with the original shape. If\n",
      "        an integer, then the result will be a 1-D array of that length.\n",
      "        One shape dimension can be -1. In this case, the value is\n",
      "        inferred from the length of the array and remaining dimensions.\n",
      "    order : {'C', 'F', 'A'}, optional\n",
      "        Read the elements of ``a`` using this index order, and place the\n",
      "        elements into the reshaped array using this index order. 'C'\n",
      "        means to read / write the elements using C-like index order,\n",
      "        with the last axis index changing fastest, back to the first\n",
      "        axis index changing slowest. 'F' means to read / write the\n",
      "        elements using Fortran-like index order, with the first index\n",
      "        changing fastest, and the last index changing slowest. Note that\n",
      "        the 'C' and 'F' options take no account of the memory layout of\n",
      "        the underlying array, and only refer to the order of indexing.\n",
      "        'A' means to read / write the elements in Fortran-like index\n",
      "        order if ``a`` is Fortran *contiguous* in memory, C-like order\n",
      "        otherwise.\n",
      "    newshape : int or tuple of ints\n",
      "        .. deprecated:: 2.1\n",
      "            Replaced by ``shape`` argument. Retained for backward\n",
      "            compatibility.\n",
      "    copy : bool, optional\n",
      "        If ``True``, then the array data is copied. If ``None``, a copy will\n",
      "        only be made if it's required by ``order``. For ``False`` it raises\n",
      "        a ``ValueError`` if a copy cannot be avoided. Default: ``None``.\n",
      "    \n",
      "    Returns\n",
      "    -------\n",
      "    reshaped_array : ndarray\n",
      "        This will be a new view object if possible; otherwise, it will\n",
      "        be a copy.  Note there is no guarantee of the *memory layout* (C- or\n",
      "        Fortran- contiguous) of the returned array.\n",
      "    \n",
      "    See Also\n",
      "    --------\n",
      "    ndarray.reshape : Equivalent method.\n",
      "    \n",
      "    Notes\n",
      "    -----\n",
      "    It is not always possible to change the shape of an array without copying\n",
      "    the data.\n",
      "    \n",
      "    The ``order`` keyword gives the index ordering both for *fetching*\n",
      "    the values from ``a``, and then *placing* the values into the output\n",
      "    array. For example, let's say you have an array:\n",
      "    \n",
      "    >>> a = np.arange(6).reshape((3, 2))\n",
      "    >>> a\n",
      "    array([[0, 1],\n",
      "           [2, 3],\n",
      "           [4, 5]])\n",
      "    \n",
      "    You can think of reshaping as first raveling the array (using the given\n",
      "    index order), then inserting the elements from the raveled array into the\n",
      "    new array using the same kind of index ordering as was used for the\n",
      "    raveling.\n",
      "    \n",
      "    >>> np.reshape(a, (2, 3)) # C-like index ordering\n",
      "    array([[0, 1, 2],\n",
      "           [3, 4, 5]])\n",
      "    >>> np.reshape(np.ravel(a), (2, 3)) # equivalent to C ravel then C reshape\n",
      "    array([[0, 1, 2],\n",
      "           [3, 4, 5]])\n",
      "    >>> np.reshape(a, (2, 3), order='F') # Fortran-like index ordering\n",
      "    array([[0, 4, 3],\n",
      "           [2, 1, 5]])\n",
      "    >>> np.reshape(np.ravel(a, order='F'), (2, 3), order='F')\n",
      "    array([[0, 4, 3],\n",
      "           [2, 1, 5]])\n",
      "    \n",
      "    Examples\n",
      "    --------\n",
      "    >>> import numpy as np\n",
      "    >>> a = np.array([[1,2,3], [4,5,6]])\n",
      "    >>> np.reshape(a, 6)\n",
      "    array([1, 2, 3, 4, 5, 6])\n",
      "    >>> np.reshape(a, 6, order='F')\n",
      "    array([1, 4, 2, 5, 3, 6])\n",
      "    \n",
      "    >>> np.reshape(a, (3,-1))       # the unspecified value is inferred to be 2\n",
      "    array([[1, 2],\n",
      "           [3, 4],\n",
      "           [5, 6]])\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import numpy as nyp\n",
    "help(nyp.reshape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "c27ec4ee-95f6-4807-b8dc-b90c99577673",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(60000, 784) (60000,)\n"
     ]
    }
   ],
   "source": [
    "X = train_df.iloc[:, 1:].values\n",
    "Y = train_df.iloc[:, 0].values\n",
    "\n",
    "print(X.shape, Y.shape)\n",
    "\n",
    "\n",
    "X_test = test_df.iloc[:, 1:].values   # All columns from 1 - n\n",
    "y_test = test_df.iloc[:, 0].values    # First column\n",
    "\n",
    "# help(X.reshape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ab4051af-deb1-41ed-9a27-dc2cf1cc428c",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = X/255.0\n",
    "X_test = X_test/255.0\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a5066b1-36f8-4dc9-b659-211207e3a707",
   "metadata": {},
   "source": [
    "\n",
    "Each argument:\n",
    "\n",
    "-1 → \"figure out this dimension automatically.\" You have 60000 images, so PyTorch/NumPy infers 60000 here. You could write 60000 explicitly, but -1 is cleaner and works even if the dataset size changes.\n",
    "\n",
    "28 → height of the image in pixels (rows)\n",
    "\n",
    "28 → width of the image in pixels (columns)\n",
    "\n",
    "1 → number of channels. MNIST is grayscale, so 1 channel. An RGB image would be 3 here, RGBA would be 4. This is what tells the Conv2D layer how many \"color planes\" to expect."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "90516435-62c9-4f27-9192-9c25a49bb7c0",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = X.reshape(-1, 28, 28, 1)\n",
    "X_test = X_test.reshape(-1, 28, 28, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9596d8c2-e5eb-4121-9621-03534cbfef8b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow.keras.utils as uti"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "1cb49b7f-8655-4cce-a711-16c12ba54f9a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['Config', 'CustomObjectScope', 'FeatureSpace', 'Progbar', 'PyDataset', 'Sequence', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'array_to_img', 'audio_dataset_from_directory', 'bounding_boxes', 'clear_session', 'custom_object_scope', 'deserialize_keras_object', 'disable_interactive_logging', 'enable_interactive_logging', 'get_custom_objects', 'get_file', 'get_registered_name', 'get_registered_object', 'get_source_inputs', 'image_dataset_from_directory', 'img_to_array', 'is_interactive_logging_enabled', 'is_keras_tensor', 'legacy', 'load_img', 'model_to_dot', 'normalize', 'pack_x_y_sample_weight', 'pad_sequences', 'plot_model', 'register_keras_serializable', 'save_img', 'serialize_keras_object', 'set_random_seed', 'split_dataset', 'standardize_dtype', 'text_dataset_from_directory', 'timeseries_dataset_from_array', 'to_categorical', 'unpack_x_y_sample_weight']\n"
     ]
    }
   ],
   "source": [
    "print(dir(uti))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b0c19827-ebb0-4c6e-bc0f-ac3ecfc8038a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.utils import to_categorical"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b2a7281d-6df1-4b5b-a0ef-60616b1d0341",
   "metadata": {},
   "outputs": [],
   "source": [
    "Y = to_categorical(Y, 10)\n",
    "y_test = to_categorical(y_test, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b356fc63-3443-47b4-8dc8-4073afe7ed18",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['Activation', 'ActivityRegularization', 'Add', 'AdditiveAttention', 'AlphaDropout', 'Attention', 'AugMix', 'AutoContrast', 'Average', 'AveragePooling1D', 'AveragePooling2D', 'AveragePooling3D', 'AvgPool1D', 'AvgPool2D', 'AvgPool3D', 'BatchNormalization', 'Bidirectional', 'CategoryEncoding', 'CenterCrop', 'Concatenate', 'Conv1D', 'Conv1DTranspose', 'Conv2D', 'Conv2DTranspose', 'Conv3D', 'Conv3DTranspose', 'ConvLSTM1D', 'ConvLSTM2D', 'ConvLSTM3D', 'Convolution1D', 'Convolution1DTranspose', 'Convolution2D', 'Convolution2DTranspose', 'Convolution3D', 'Convolution3DTranspose', 'Cropping1D', 'Cropping2D', 'Cropping3D', 'CutMix', 'Dense', 'DepthwiseConv1D', 'DepthwiseConv2D', 'Discretization', 'Dot', 'Dropout', 'ELU', 'EinsumDense', 'Embedding', 'Equalization', 'Flatten', 'FlaxLayer', 'GRU', 'GRUCell', 'GaussianDropout', 'GaussianNoise', 'GlobalAveragePooling1D', 'GlobalAveragePooling2D', 'GlobalAveragePooling3D', 'GlobalAvgPool1D', 'GlobalAvgPool2D', 'GlobalAvgPool3D', 'GlobalMaxPool1D', 'GlobalMaxPool2D', 'GlobalMaxPool3D', 'GlobalMaxPooling1D', 'GlobalMaxPooling2D', 'GlobalMaxPooling3D', 'GroupNormalization', 'GroupQueryAttention', 'HashedCrossing', 'Hashing', 'Identity', 'Input', 'InputLayer', 'InputSpec', 'IntegerLookup', 'JaxLayer', 'LSTM', 'LSTMCell', 'Lambda', 'Layer', 'LayerNormalization', 'LeakyReLU', 'Masking', 'MaxNumBoundingBoxes', 'MaxPool1D', 'MaxPool2D', 'MaxPool3D', 'MaxPooling1D', 'MaxPooling2D', 'MaxPooling3D', 'Maximum', 'MelSpectrogram', 'Minimum', 'MixUp', 'MultiHeadAttention', 'Multiply', 'Normalization', 'PReLU', 'Permute', 'Pipeline', 'RMSNormalization', 'RNN', 'RandAugment', 'RandomBrightness', 'RandomColorDegeneration', 'RandomColorJitter', 'RandomContrast', 'RandomCrop', 'RandomElasticTransform', 'RandomErasing', 'RandomFlip', 'RandomGaussianBlur', 'RandomGrayscale', 'RandomHeight', 'RandomHue', 'RandomInvert', 'RandomPerspective', 'RandomPosterization', 'RandomRotation', 'RandomSaturation', 'RandomSharpness', 'RandomShear', 'RandomTranslation', 'RandomWidth', 'RandomZoom', 'ReLU', 'RepeatVector', 'Rescaling', 'Reshape', 'Resizing', 'ReversibleEmbedding', 'STFTSpectrogram', 'SeparableConv1D', 'SeparableConv2D', 'SeparableConvolution1D', 'SeparableConvolution2D', 'SimpleRNN', 'SimpleRNNCell', 'Softmax', 'Solarization', 'SpatialDropout1D', 'SpatialDropout2D', 'SpatialDropout3D', 'SpectralNormalization', 'StackedRNNCells', 'StringLookup', 'Subtract', 'TFSMLayer', 'TextVectorization', 'ThresholdedReLU', 'TimeDistributed', 'TorchModuleWrapper', 'UnitNormalization', 'UpSampling1D', 'UpSampling2D', 'UpSampling3D', 'Wrapper', 'ZeroPadding1D', 'ZeroPadding2D', 'ZeroPadding3D', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'add', 'average', 'concatenate', 'deserialize', 'dot', 'maximum', 'minimum', 'multiply', 'serialize', 'subtract']\n"
     ]
    }
   ],
   "source": [
    "import tensorflow.keras.layers as la\n",
    "\n",
    "print(dir(la))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "4dc235ae-8a86-4c0d-8728-0f0d4f1c6124",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.layers import MaxPooling2D, Conv2D, Dense, Convolution2D, Flatten\n",
    "from tensorflow.keras.optimizers import Adam\n",
    "import tensorflow\n",
    "# help(Conv2D)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "3ee5d1ef-b4c8-44e2-8770-624ad300ac52",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/soham/anaconda3/envs/jupyter_env/lib/python3.10/site-packages/keras/src/layers/convolutional/base_conv.py:113: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n",
      "  super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n"
     ]
    }
   ],
   "source": [
    "model_tf = tensorflow.keras.Sequential([\n",
    "    # MaxPooling2D(2,2),\n",
    "\n",
    "    # First convolutional layer:\n",
    "    # - 32 filters\n",
    "    # - 3x3 kernel size\n",
    "    # - ReLU activation for non-linearity\n",
    "    # - Input shape is 28x28x1 (grayscale image)\n",
    "    Conv2D(32, (3, 3), activation = 'relu' ,input_shape=(28, 28, 1)), # 32 X 27 X 27 each conv layer reduces size by 1 cuz of kernel not being applied there\n",
    "    MaxPooling2D(2,2), # 32 X 13 X 13\n",
    "    Conv2D(64, (3, 3), activation = 'relu'), # 32 X 64 X 11 X 11\n",
    "    MaxPooling2D(2,2), # 32 X 64 X 6 X 6\n",
    "    Flatten(), \n",
    "    Dense(128, activation='relu'),\n",
    "    Dense(64, activation='relu'),\n",
    "    Dense(32, activation='relu'),\n",
    "    Dense(32, activation='relu'),\n",
    "    Dense(10, activation='softmax'),\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "27697ff2-3620-4aed-b88d-4bca6fc4c168",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential\"</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1mModel: \"sequential\"\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
       "┃<span style=\"font-weight: bold\"> Layer (type)                    </span>┃<span style=\"font-weight: bold\"> Output Shape           </span>┃<span style=\"font-weight: bold\">       Param # </span>┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
       "│ conv2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">26</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">26</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │           <span style=\"color: #00af00; text-decoration-color: #00af00\">320</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)    │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">13</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">13</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)     │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ conv2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Conv2D</span>)               │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">11</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">11</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)     │        <span style=\"color: #00af00; text-decoration-color: #00af00\">18,496</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">MaxPooling2D</span>)  │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">5</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">5</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)       │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ flatten (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Flatten</span>)               │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">1600</span>)           │             <span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                   │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">128</span>)            │       <span style=\"color: #00af00; text-decoration-color: #00af00\">204,928</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_1 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">64</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">8,256</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_2 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">2,080</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_3 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">32</span>)             │         <span style=\"color: #00af00; text-decoration-color: #00af00\">1,056</span> │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_4 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>)                 │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>)             │           <span style=\"color: #00af00; text-decoration-color: #00af00\">330</span> │\n",
       "└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
       "</pre>\n"
      ],
      "text/plain": [
       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
       "┃\u001b[1m \u001b[0m\u001b[1mLayer (type)                   \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape          \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m      Param #\u001b[0m\u001b[1m \u001b[0m┃\n",
       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
       "│ conv2d (\u001b[38;5;33mConv2D\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m26\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │           \u001b[38;5;34m320\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d (\u001b[38;5;33mMaxPooling2D\u001b[0m)    │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m13\u001b[0m, \u001b[38;5;34m13\u001b[0m, \u001b[38;5;34m32\u001b[0m)     │             \u001b[38;5;34m0\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ conv2d_1 (\u001b[38;5;33mConv2D\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m11\u001b[0m, \u001b[38;5;34m11\u001b[0m, \u001b[38;5;34m64\u001b[0m)     │        \u001b[38;5;34m18,496\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ max_pooling2d_1 (\u001b[38;5;33mMaxPooling2D\u001b[0m)  │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m5\u001b[0m, \u001b[38;5;34m5\u001b[0m, \u001b[38;5;34m64\u001b[0m)       │             \u001b[38;5;34m0\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ flatten (\u001b[38;5;33mFlatten\u001b[0m)               │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1600\u001b[0m)           │             \u001b[38;5;34m0\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense (\u001b[38;5;33mDense\u001b[0m)                   │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m)            │       \u001b[38;5;34m204,928\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_1 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m64\u001b[0m)             │         \u001b[38;5;34m8,256\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_2 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │         \u001b[38;5;34m2,080\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_3 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m)             │         \u001b[38;5;34m1,056\u001b[0m │\n",
       "├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
       "│ dense_4 (\u001b[38;5;33mDense\u001b[0m)                 │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m)             │           \u001b[38;5;34m330\u001b[0m │\n",
       "└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">235,466</span> (919.79 KB)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m235,466\u001b[0m (919.79 KB)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">235,466</span> (919.79 KB)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m235,466\u001b[0m (919.79 KB)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model_tf.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "22780fb3-92da-4f6c-9447-b9b28a2c4f9f",
   "metadata": {},
   "outputs": [],
   "source": [
    "model_tf.compile(optimizer = Adam(), loss = 'categorical_crossentropy', metrics = ['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "94d34f18-151d-4f2e-899b-dd6a2b8736de",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 19ms/step - accuracy: 0.8525 - loss: 0.4047 - val_accuracy: 0.8776 - val_loss: 0.3348\n",
      "Epoch 2/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 18ms/step - accuracy: 0.8858 - loss: 0.3121 - val_accuracy: 0.8935 - val_loss: 0.2964\n",
      "Epoch 3/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 18ms/step - accuracy: 0.9025 - loss: 0.2691 - val_accuracy: 0.9020 - val_loss: 0.2764\n",
      "Epoch 4/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 19ms/step - accuracy: 0.9109 - loss: 0.2422 - val_accuracy: 0.9105 - val_loss: 0.2524\n",
      "Epoch 5/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 19ms/step - accuracy: 0.9211 - loss: 0.2162 - val_accuracy: 0.9015 - val_loss: 0.2719\n",
      "Epoch 6/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m35s\u001b[0m 19ms/step - accuracy: 0.9289 - loss: 0.1948 - val_accuracy: 0.9138 - val_loss: 0.2470\n",
      "Epoch 7/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 19ms/step - accuracy: 0.9337 - loss: 0.1786 - val_accuracy: 0.9068 - val_loss: 0.2656\n",
      "Epoch 8/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m33s\u001b[0m 17ms/step - accuracy: 0.9373 - loss: 0.1665 - val_accuracy: 0.9156 - val_loss: 0.2586\n",
      "Epoch 9/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 16ms/step - accuracy: 0.9448 - loss: 0.1498 - val_accuracy: 0.9188 - val_loss: 0.2495\n",
      "Epoch 10/10\n",
      "\u001b[1m1875/1875\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m42s\u001b[0m 22ms/step - accuracy: 0.9491 - loss: 0.1379 - val_accuracy: 0.9163 - val_loss: 0.2413\n"
     ]
    }
   ],
   "source": [
    "history = model_tf.fit(\n",
    "    X, Y,\n",
    "    validation_data = (X_test, y_test),\n",
    "    epochs = 10,\n",
    "    batch_size = 32,\n",
    "    verbose = 1\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "cca3c5bf-7dc3-4a06-84ec-46b86240b467",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/fffZ/Lkyafct6ysDBcXl6Z4CSIiItICmEwmOvq1oaNfGybHRVBeVcOmlKOs3pvDmqQc9h0pZnNqPptT83n9+yS83RwZ0tmXi+sKue09lUfI6U2YMIG8vDyeffZZMjMz6dGjBytXriQsLAwwctjU1NT64ydNmkRRURFvv/02f/vb3/D29uayyy7jxRdfrD8mJCSE7777jocffphevXoRHBzMQw89xKOPPtrsr68xVVbX8uin26g1w+jeQVwRffpxEiIiIiICJvPx87EsYPHixUycOJFZs2YRFxfHf/7zH95991127dpFaGjoKcenpKTw2muvERsby2uvvcbFF1982sLtQw89xN69exusBwQEnHVchYWFeHl5UVBQgKen53m9NhEREWlZMvLLWLPPKOKuTcqlqLy6we1dAzy4OMoo4vYL88HJwc5Ckdo25Wlnzxq/V2/+kMSrq/bh4+7EqoeH0q5Ny5jJKyIiItJYziVHs2jhdsCAAfTt25fZs2fXr3Xr1o2xY8cyc+bMP7zvJZdcQkxMzGkLt1OmTCE/P/+847LGJFdERESaT3VNLYmH81lTNxt3W3oBJ2dMbk72DO7Urn4+blg7d8sFa2OUp509a/teJR0p4qo311JVY+aNv8YwJibY0iGJiIiINLtzydEsNiqhsrKShIQEHnvssQbrw4YNY8OGDRf02MXFxYSFhVFTU0NMTAzPPfccffr0OePxFRUVVFRU1F8vLCy8oOcXERGRls3B3o5+4T70C/dh6rAo8oorWLc/t24+bi65xRV8vzub73dnAxDezo3BnX3pFexFj2Avuvh7qCNX5CQ1tWb+8ek2qmrMXN61PaN7B1k6JBERERGrZ7HCbW5uLjU1Nfj7N5xr5e/vT1ZW1nk/bteuXXn//ffp2bMnhYWFvPHGG8TFxbF161YiIyNPe5+ZM2cyffr0835OERERad3atXFmTEwwY2KCqa01syuzkDVJOazem0PCoWOk5JWSkpfKwrrjnezt6BroQY9gL3rWXVTMFVv23w0pbEnNp42zA8+P64HJpI3/RERERP6MxTcn+33SZjabLyiRGzhwIAMHDqy/HhcXR9++fXnrrbd48803T3ufadOmMXXq1PrrhYWFhISEnHcMIiIi0nrZ2ZnoUddZe+8lnSkqr+LnA3kkHDrG9vQCdqQXUFhezba0AralFdTfz8nejqgAD3oEe9YXdKMCPHB2sLfgqxFpeoePlvLyt8b+E9Ou6kqgl6uFIxIRERFpGSxWuPX19cXe3v6U7trs7OxTunAvhJ2dHRdddBFJSUlnPMbZ2RlnZ22MICIiIufOw8WRYd0DGNbd2AjVbDaTerSUHemF9YXc7ekFFJRVsb3uazgMgKO9iS7+HvSsKwQfL+a6OKqYK62D2Wxm2rLtlFXVMCDChxsuOnUDYhERERE5PYsVbp2cnIiNjWXVqlWMGzeufn3VqlWMGTOm0Z7HbDaTmJhIz549G+0xRURERM7EZDIR1s6dsHbujOoVCBj5SNqxsvrC7fFibn5pFTszCtmZUQibjGKug51RzO0R7Flf0O0W6KlirrRIS35LY93+XJwd7Pi/8b2ws9OIBBEREZGzZdFRCVOnTmXixIn069ePQYMGMWfOHFJTU7n77rsBY4RBeno6H3zwQf19EhMTAWMDspycHBITE3FyciI6OhqA6dOnM3DgQCIjIyksLOTNN98kMTGRf//7383++kRERETAKOaG+LgR4uPGVT0bFnOPF3F3ZBSyI72AoyWV7MosZFdmIZ/8lgaAvZ2JyPZtjHm5HYxibrSKuWLljhSW89xXuwCYemUXInzdLRyRiIiISMti0cLthAkTyMvL49lnnyUzM5MePXqwcuVKwsLCAMjMzCQ1NbXBffr06VP/dUJCAgsXLiQsLIyUlBQA8vPzueuuu8jKysLLy4s+ffqwZs0a+vfv32yvS0REROTPnFzMHXlSMTejoJztaSe6cnekF5BXUsmerCL2ZBWxJKFhMbdHsBc9gjzp2cGL6EAvXJ1UzBXLM5vNPPn5DorKq+nVwYvbh0RYOiQRERGRFsdkNpvNlg7C2hQWFuLl5UVBQQGenp6WDkdERERsmNlsJrOgvMGIhR3pBeQWV55yrJ0JOtcVc3vWXaKDPHFzsvh+tI1GedrZs+T3auX2TO5dsBkHOxNfPDCEboF6r0RERETg3HK01pPFi4iIiLRCJpOJIG9XgrxdGX7SBmhHCitOmZmbU1TBviPF7DtSzLLN6YBRzO3k1+bEBmgdjDEL7s5KA6Vp5JdW8tTyHQDce0knFW1FREREzpMydhEREZEWxmQyEeDlQoCXC1dG+9evHyk0xiycXMzNLqogKbuYpOxilm1Jr7s/dPR1P1HMDfaie7AXbVTMlUbw3Je7yS2upHP7Ntx3WWdLhyMiIiLSYik7FxEREWkl/D1d8I924YqTirnZheXsyChge1phfUE3q7CcAzklHMgp4fPEDMAo5kbUFXOPF3S7B3ni4eJoqZcjLdDqfTl8ujkNkwleHN8LZwfNXBYRERE5XyrcioiIiLRi7T1duMzThcu6nijm5hRV1HfkHi/mZhaUk5xTQnJOCcvrirlgFHONrlxPYyO0YC88VcyV0yiuqOafy7YDMGlwOLFhbS0ckYiIiEjLpsKtiIiIiI3x83Dm0q7tubRr+/q13GKjmHtiA7RC0vPLOJhbwsHcEr7YeqKYG97OrcEGaN2DvfByVTHX1r38zR7S88vo0NaVvw+LsnQ4IiIiIi2eCrciIiIigm8bZy6Jas8lUSeKuXnFFezIKDSKuXWzc9Pzy0jJKyUlr5Qvt2UCMDkunKev6W6p0MUKbEo5yge/HAJg5rU9tfmdiIiISCNQRiUiIiIip9WujTMXd/Hj4i5+9WtHSyrru3J3Zhh/9urgZcEoxRq0cXYgOtCT6EBP4iP9/vwOIiIiIvKnVLgVERERkbPm4+7E0C5+DD2pmGs2my0YkViDboGefH5fHJXVtZYORURERKTVUOFWRERERC6IyWSydAhiBRzt7XC0t7N0GCIiIiKthjIrERERERERERERESujwq2IiIiIiIiIiIiIlVHhVkRERERERERERMTKqHArIiIiIiIiIiIiYmVUuBURERERERERERGxMircioiIiIiIiIiIiFgZFW5FRERERERERERErIwKtyIiIiIiIiIiIiJWRoVbERERERERERERESujwq2IiIiIiIiIiIiIlXGwdADWyGw2A1BYWGjhSERERETkZMfzs+P5mpyZcloRERER63Mu+awKt6dRVFQEQEhIiIUjEREREZHTKSoqwsvLy9JhWDXltCIiIiLW62zyWZNZ7QqnqK2tJSMjAw8PD0wmU5M/X2FhISEhIRw+fBhPT88mfz6xPL3ntkfvuW3R+2179J43H7PZTFFREUFBQdjZaerXH1FOK01N77lt0ftte/Se2x69583jXPJZddyehp2dHR06dGj25/X09NQ/DBuj99z26D23LXq/bY/e8+ahTtuzo5xWmovec9ui99v26D23PXrPm97Z5rNqUxARERERERERERGxMircioiIiIiIiIiIiFgZFW6tgLOzM08//TTOzs6WDkWaid5z26P33Lbo/bY9es9F9O/AFuk9ty16v22P3nPbo/fc+mhzMhEREREREREREREro45bERERERERERERESujwq2IiIiIiIiIiIiIlVHhVkRERERERERERMTKqHBrBWbNmkVERAQuLi7Exsaydu1aS4ckTWTmzJlcdNFFeHh40L59e8aOHcvevXstHZY0k5kzZ2IymZgyZYqlQ5EmlJ6ezs0330y7du1wc3MjJiaGhIQES4clTaS6uponnniCiIgIXF1d6dixI88++yy1tbWWDk2kWSmftR3KZ22b8lnboHzWtiiftW4q3FrY4sWLmTJlCo8//jhbtmwhPj6ekSNHkpqaaunQpAmsXr2a++67j19++YVVq1ZRXV3NsGHDKCkpsXRo0sQ2bdrEnDlz6NWrl6VDkSZ07Ngx4uLicHR05Ouvv2bXrl3861//wtvb29KhSRN58cUXeeedd3j77bfZvXs3L730Ei+//DJvvfWWpUMTaTbKZ22L8lnbpXzWNiiftT3KZ62byWw2my0dhC0bMGAAffv2Zfbs2fVr3bp1Y+zYscycOdOCkUlzyMnJoX379qxevZqhQ4daOhxpIsXFxfTt25dZs2bx/PPPExMTw+uvv27psKQJPPbYY6xfv16dZjbk6quvxt/fn/fee69+bfz48bi5ufHhhx9aMDKR5qN81rYpn7UNymdth/JZ26N81rqp49aCKisrSUhIYNiwYQ3Whw0bxoYNGywUlTSngoICAHx8fCwciTSl++67j1GjRnHFFVdYOhRpYitWrKBfv3785S9/oX379vTp04e5c+daOixpQkOGDOGHH35g3759AGzdupV169Zx1VVXWTgykeahfFaUz9oG5bO2Q/ms7VE+a90cLB2ALcvNzaWmpgZ/f/8G6/7+/mRlZVkoKmkuZrOZqVOnMmTIEHr06GHpcKSJfPzxx2zevJlNmzZZOhRpBsnJycyePZupU6fyz3/+k40bN/Lggw/i7OzMLbfcYunwpAk8+uijFBQU0LVrV+zt7ampqWHGjBnccMMNlg5NpFkon7Vtymdtg/JZ26J81vYon7VuKtxaAZPJ1OC62Ww+ZU1an/vvv59t27axbt06S4ciTeTw4cM89NBDfPfdd7i4uFg6HGkGtbW19OvXjxdeeAGAPn36sHPnTmbPnq1Et5VavHgxH330EQsXLqR79+4kJiYyZcoUgoKCuPXWWy0dnkizUT5rm5TPtn7KZ22P8lnbo3zWuqlwa0G+vr7Y29uf0o2QnZ19SteCtC4PPPAAK1asYM2aNXTo0MHS4UgTSUhIIDs7m9jY2Pq1mpoa1qxZw9tvv01FRQX29vYWjFAaW2BgINHR0Q3WunXrxqeffmqhiKSpPfLIIzz22GP89a9/BaBnz54cOnSImTNnKtEVm6B81nYpn7UNymdtj/JZ26N81rppxq0FOTk5ERsby6pVqxqsr1q1isGDB1soKmlKZrOZ+++/n2XLlvHjjz8SERFh6ZCkCV1++eVs376dxMTE+ku/fv246aabSExMVJLbCsXFxbF3794Ga/v27SMsLMxCEUlTKy0txc6uYTplb29PbW2thSISaV7KZ22P8lnbonzW9iiftT3KZ62bOm4tbOrUqUycOJF+/foxaNAg5syZQ2pqKnfffbelQ5MmcN9997Fw4UKWL1+Oh4dHfXeKl5cXrq6uFo5OGpuHh8cp897c3d1p166d5sC1Ug8//DCDBw/mhRde4Prrr2fjxo3MmTOHOXPmWDo0aSLXXHMNM2bMIDQ0lO7du7NlyxZeffVVbrvtNkuHJtJslM/aFuWztkX5rO1RPmt7lM9aN5PZbDZbOghbN2vWLF566SUyMzPp0aMHr732GkOHDrV0WNIEzjTrbf78+UyaNKl5gxGLuOSSS4iJieH111+3dCjSRL788kumTZtGUlISERERTJ06lTvvvNPSYUkTKSoq4sknn+Szzz4jOzuboKAgbrjhBp566imcnJwsHZ5Is1E+azuUz4ry2dZP+axtUT5r3VS4FREREREREREREbEymnErIiIiIiIiIiIiYmVUuBURERERERERERGxMircioiIiIiIiIiIiFgZFW5FRERERERERERErIwKtyIiIiIiIiIiIiJWRoVbERERERERERERESujwq2IiIiIiIiIiIiIlVHhVkRERERERERERMTKqHArIiKnZTKZ+Pzzzy0dhoiIiIjIeVNOKyItmQq3IiJWaNKkSZhMplMuI0aMsHRoIiIiIiJnRTmtiMiFcbB0ACIicnojRoxg/vz5DdacnZ0tFI2IiIiIyLlTTisicv7UcSsiYqWcnZ0JCAhocGnbti1gnPI1e/ZsRo4ciaurKxERESxZsqTB/bdv385ll12Gq6sr7dq146677qK4uLjBMfPmzaN79+44OzsTGBjI/fff3+D23Nxcxo0bh5ubG5GRkaxYsaJpX7SIiIiItCrKaUVEzp8KtyIiLdSTTz7J+PHj2bp1KzfffDM33HADu3fvBqC0tJQRI0bQtm1bNm3axJIlS/j+++8bJLGzZ8/mvvvu46677mL79u2sWLGCzp07N3iO6dOnc/3117Nt2zauuuoqbrrpJo4ePdqsr1NEREREWi/ltCIiZ2Yym81mSwchIiINTZo0iY8++ggXF5cG648++ihPPvkkJpOJu+++m9mzZ9ffNnDgQPr27cusWbOYO3cujz76KIcPH8bd3R2AlStXcs0115CRkYG/vz/BwcFMnjyZ559//rQxmEwmnnjiCZ577jkASkpK8PDwYOXKlZpLJiIiIiJ/SjmtiMiF0YxbERErdemllzZIYgF8fHzqvx40aFCD2wYNGkRiYiIAu3fvpnfv3vUJLkBcXBy1tbXs3bsXk8lERkYGl19++R/G0KtXr/qv3d3d8fDwIDs7+3xfkoiIiIjYGOW0IiLnT4VbEREr5e7ufsppXn/GZDIBYDab678+3TGurq5n9XiOjo6n3Le2tvacYhIRERER26WcVkTk/GnGrYhIC/XLL7+ccr1r164AREdHk5iYSElJSf3t69evx87Oji5duuDh4UF4eDg//PBDs8YsIiIiInIy5bQiImemjlsREStVUVFBVlZWgzUHBwd8fX0BWLJkCf369WPIkCEsWLCAjRs38t577wFw00038fTTT3PrrbfyzDPPkJOTwwMPPMDEiRPx9/cH4JlnnuHuu++mffv2jBw5kqKiItavX88DDzzQvC9URERERFot5bQiIudPhVsRESv1zTffEBgY2GAtKiqKPXv2AMbuuB9//DH33nsvAQEBLFiwgOjoaADc3Nz49ttveeihh7joootwc3Nj/PjxvPrqq/WPdeutt1JeXs5rr73G3//+d3x9fbnuuuua7wWKiIiISKunnFZE5PyZzGaz2dJBiIjIuTGZTHz22WeMHTvW0qGIiIiIiJwX5bQiIn9MM25FRERERERERERErIwKtyIiIiIiIiIiIiJWRqMSRERERERERERERKyMOm5FRERERERERERErIwKtyIiIiIiIiIiIiJWRoVbERERERERERERESujwq2IiIiIiIiIiIiIlVHhVkRERERERERERMTKqHArIiIiIiIiIiIiYmVUuBURERERERERERGxMircioiIiIiIiIiIiFgZFW5FRERERERERERErMz/B47VWxd/aHrmAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1400x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(1, 2, figsize=(14, 4))\n",
    "\n",
    "axes[0].plot(history.history['loss'], label='Train Loss')\n",
    "axes[0].plot(history.history['val_loss'], label='Val Loss')\n",
    "axes[0].set_title('Model Loss (Categorical Crossentropy)')\n",
    "axes[0].set_xlabel('Epoch')\n",
    "axes[0].set_ylabel('Loss')\n",
    "axes[0].legend()\n",
    "\n",
    "axes[1].plot(history.history['accuracy'], label='Train Accuracy')\n",
    "axes[1].plot(history.history['val_accuracy'], label='Val Accuracy')\n",
    "axes[1].set_title('Model Accuracy')\n",
    "axes[1].set_xlabel('Epoch')\n",
    "axes[1].set_ylabel('Accuracy')\n",
    "axes[1].legend()\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "7d71098c-dc09-4a9e-8e26-cf4c9536bca8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "\n",
    "y_pred = nyp.argmax(model_tf.predict(X_test), axis=1)\n",
    "y_true = nyp.argmax(y_test, axis=1)  # ← decode one-hot back to integers\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "e4c31b2e-7fef-4f1b-88d8-386c3fab91db",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification Report\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.87      0.86      0.86      1000\n",
      "           1       0.99      0.99      0.99      1000\n",
      "           2       0.89      0.84      0.86      1000\n",
      "           3       0.91      0.94      0.92      1000\n",
      "           4       0.82      0.93      0.87      1000\n",
      "           5       0.98      0.99      0.98      1000\n",
      "           6       0.81      0.72      0.76      1000\n",
      "           7       0.96      0.96      0.96      1000\n",
      "           8       0.97      0.98      0.98      1000\n",
      "           9       0.96      0.97      0.97      1000\n",
      "\n",
      "    accuracy                           0.92     10000\n",
      "   macro avg       0.92      0.92      0.92     10000\n",
      "weighted avg       0.92      0.92      0.92     10000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "\n",
    "print('Classification Report')\n",
    "print(classification_report(y_true, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5ef926bd-dd8b-4010-92c6-a811d00e8011",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
