File size: 19,594 Bytes
338964a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "283a8867",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n",
      "\u001b[1m11490434/11490434\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 0us/step\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       ...,\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]],\n",
       "\n",
       "       [[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]]], dtype=uint8)"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow import keras \n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "(x_train,y_train),(x_test,y_test) = tf.keras.datasets.mnist.load_data()\n",
    "\n",
    "x_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c4566813",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x263602585f0>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGJ1JREFUeJzt3QuMFdX9B/CzqCyo7NIFYUEegs9GhaYWKVURCwG1MaKm0dam2BgIFk2V+gimio8mW21jjQ3VJm3dGp81LRpNSoIokLbgA0uIValQWrACVhN2eQhamH9mDPt3FdS77O5v997PJzm53Dtzdg6zs/O9Z+bcc6uyLMsSAHSyHp29QQDICSAAQgggAEIIIABCCCAAQgggAEIIIABCCCAAQhycupg9e/akt956K/Xp0ydVVVVFNweAEuXzG2zdujUNHjw49ejRo/sEUB4+Q4cOjW4GAAdow4YNaciQId3nElze8wGg+/us83mHBdC8efPSUUcdlXr16pXGjh2bXnjhhc9Vz2U3gPLwWefzDgmgxx57LM2ePTvNnTs3vfzyy2n06NFpypQp6e233+6IzQHQHWUd4NRTT81mzZrV8nz37t3Z4MGDs4aGhs+s29TUlM/OrSiKoqTuXfLz+adp9x7Q+++/n1asWJEmTZrU8lo+CiJ/vmzZsk+sv2vXrtTc3NyqAFD+2j2A3nnnnbR79+40cODAVq/nzzdt2vSJ9RsaGlJtbW1LMQIOoDKEj4KbM2dOampqain5sD0Ayl+7fw6of//+6aCDDkqbN29u9Xr+vL6+/hPrV1dXFwWAytLuPaCePXumU045JS1atKjV7Ab583HjxrX35gDopjpkJoR8CPa0adPSV77ylXTqqaemu+++O23fvj1973vf64jNAdANdUgAXXzxxem///1vuvnmm4uBB1/60pfSggULPjEwAYDKVZWPxU5dSD4MOx8NB0D3lg8sq6mp6bqj4ACoTAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAfHbBagbSZOnFhynYceeqhN2zrzzDNLrrN69eo2basS6QEBEEIAAVAeAXTLLbekqqqqVuWEE05o780A0M11yD2gE088MT3zzDP/v5GD3WoCoLUOSYY8cOrr6zviRwNQJjrkHtAbb7yRBg8enEaOHJkuvfTStH79+v2uu2vXrtTc3NyqAFD+2j2Axo4dmxobG9OCBQvSvffem9atW5fOOOOMtHXr1n2u39DQkGpra1vK0KFD27tJAHRBVVmWZR25gS1btqThw4enu+66K11++eX77AHlZa+8BySEgP3xOaDuo6mpKdXU1Ox3eYePDujbt2867rjj0po1a/a5vLq6uigAVJYO/xzQtm3b0tq1a9OgQYM6elMAVHIAXXvttWnJkiXpX//6V/rrX/+aLrjggnTQQQelb33rW+29KQC6sXa/BPfmm28WYfPuu++mI444Ip1++ulp+fLlxb8BoMMC6NFHH23vH1kWxo8fX3Kdfv36lVxn/vz5JdeB7mTMmDEl13nxxRc7pC0cGHPBARBCAAEQQgABEEIAARBCAAEQQgABEEIAARBCAAEQQgABEEIAARBCAAEQQgABEKLDv5COD02YMKHkOscee2zJdUxGSnfSo0fp74FHjBhRcp38W5nboqqqqk31+Hz0gAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIYTbsTvLd73635DrLli3rkLZAVzFo0KCS60yfPr3kOg8++GBqi9dff71N9fh89IAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIYTLSTtKjh6yHj/v1r3/dKdt54403OmU7lMZZEYAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBAmI22DUaNGlVxn4MCBHdIW6M5qa2s7ZTsLFy7slO1QGj0gAEIIIAC6RwAtXbo0nXfeeWnw4MGpqqoqPfHEE62WZ1mWbr755jRo0KDUu3fvNGnSJN/FAcCBB9D27dvT6NGj07x58/a5/M4770z33HNPuu+++9Lzzz+fDjvssDRlypS0c+fOUjcFQBkreRDCOeecU5R9yXs/d999d/rRj36Uzj///OK1Bx54oLgBn/eULrnkkgNvMQBloV3vAa1bty5t2rSpuOz20VEuY8eOTcuWLdtnnV27dqXm5uZWBYDy164BlIfPvoYc58/3Lvu4hoaGIqT2lqFDh7ZnkwDoosJHwc2ZMyc1NTW1lA0bNkQ3CYDuFkD19fXF4+bNm1u9nj/fu+zjqqurU01NTasCQPlr1wAaMWJEETSLFi1qeS2/p5OPhhs3blx7bgqAShsFt23btrRmzZpWAw9WrlyZ6urq0rBhw9LVV1+dfvzjH6djjz22CKSbbrqp+MzQ1KlT27vtAFRSAL300kvprLPOank+e/bs4nHatGmpsbExXX/99cVnhWbMmJG2bNmSTj/99LRgwYLUq1ev9m05AJUVQBMmTCg+77M/+ewIt912W1HK1bnnnltynXxWCChnbZlwN79K0hn+85//dMp26Gaj4ACoTAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiA7jEbNikdf/zxnbKdv//9752yHWgPP/vZzzplBu1//OMfJdfZunVryXXoeHpAAIQQQACEEEAAhBBAAIQQQACEEEAAhBBAAIQQQACEEEAAhBBAAIQQQACEEEAAhDAZaRf24osvRjeBLqSmpqbkOmeffXabtvWd73yn5DqTJ09OneH2228vuc6WLVs6pC0cGD0gAEIIIABCCCAAQgggAEIIIABCCCAAQgggAEIIIABCCCAAQgggAEIIIABCCCAAQpiMtAurq6tL5Wb06NEl16mqqiq5zqRJk1JbDBkypOQ6PXv2LLnOpZdeWnKdHj1Kf7/43nvvpbZ4/vnnS66za9eukuscfHDpp6AVK1aUXIeuSQ8IgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAEAIIgBACCIAQAgiAECYjbYO2TPCYZVnJde67776S69x4442pKxs1alSnTEb6v//9L7XFjh07Sq7z6quvllznt7/9bcl1XnrppZLrLFmyJLXF5s2bS67z5ptvllynd+/eJdd5/fXXS65D16QHBEAIAQRA9wigpUuXpvPOOy8NHjy4uDTyxBNPtFp+2WWXFa9/tJx99tnt2WYAKjGAtm/fXnyp2Lx58/a7Th44GzdubCmPPPLIgbYTgEofhHDOOecU5dNUV1en+vr6A2kXAGWuQ+4BLV68OA0YMCAdf/zx6Yorrkjvvvvup36Nb3Nzc6sCQPlr9wDKL7898MADadGiRemOO+4ohoHmPabdu3fvc/2GhoZUW1vbUoYOHdreTQKgEj4HdMkll7T8++STTy4+93H00UcXvaKJEyd+Yv05c+ak2bNntzzPe0BCCKD8dfgw7JEjR6b+/funNWvW7Pd+UU1NTasCQPnr8ADKPx2d3wMaNGhQR28KgHK+BLdt27ZWvZl169allStXprq6uqLceuut6aKLLipGwa1duzZdf/316ZhjjklTpkxp77YDUEkBlM9HddZZZ7U833v/Ztq0aenee+9Nq1atSr/73e/Sli1big+rTp48Od1+++3FpTYA2Ksqa8ssmR0oH4SQj4YrNzfccEPJdb72ta91SFu6m4/PtvF5vPbaa23a1vLly9tUr9zMmDGjUybP/ec//1lynfyKCt1DU1PTp97XNxccACEEEAAhBBAAIQQQACEEEAAhBBAAIQQQACEEEAAhBBAAIQQQACEEEAAhBBAAIQQQAOXxldzs2x133BHdBPjcJk6c2Cnb+cMf/tAp26Fr0gMCIIQAAiCEAAIghAACIIQAAiCEAAIghAACIIQAAiCEAAIghAACIIQAAiCEAAIghMlIgTDz58+PbgKB9IAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACCGAAAghgAAIIYAACHFwzGaBclNVVVVyneOOO67kOsuXLy+5Dl2THhAAIQQQAF0/gBoaGtKYMWNSnz590oABA9LUqVPT6tWrW62zc+fONGvWrNSvX790+OGHp4suuiht3ry5vdsNQCUF0JIlS4pwya/BLly4MH3wwQdp8uTJafv27S3rXHPNNempp55Kjz/+eLH+W2+9lS688MKOaDsAlTIIYcGCBa2eNzY2Fj2hFStWpPHjx6empqb0m9/8Jj388MPp61//erHO/fffn774xS8WofXVr361fVsPQGXeA8oDJ1dXV1c85kGU94omTZrUss4JJ5yQhg0blpYtW7bPn7Fr167U3NzcqgBQ/tocQHv27ElXX311Ou2009JJJ51UvLZp06bUs2fP1Ldv31brDhw4sFi2v/tKtbW1LWXo0KFt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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(x_train[2],cmap='gray')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a2893d80",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        ...,\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.]],\n",
       "\n",
       "       [[0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        ...,\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.]],\n",
       "\n",
       "       [[0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        ...,\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.]],\n",
       "\n",
       "       ...,\n",
       "\n",
       "       [[0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        ...,\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.]],\n",
       "\n",
       "       [[0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        ...,\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.]],\n",
       "\n",
       "       [[0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        ...,\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.]]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train,x_test=x_train/255.0,x_test/255.0\n",
    "x_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "9d3b090a",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\najaf\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\keras\\src\\layers\\reshaping\\flatten.py:37: 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__(**kwargs)\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'x_train' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mNameError\u001b[39m                                 Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 11\u001b[39m\n\u001b[32m      3\u001b[39m model = keras.models.Sequential([\n\u001b[32m      4\u001b[39m     keras.layers.Flatten(input_shape=(\u001b[32m28\u001b[39m,\u001b[32m28\u001b[39m)),\n\u001b[32m      5\u001b[39m     keras.layers.Dense(\u001b[32m128\u001b[39m,activation=\u001b[33m'\u001b[39m\u001b[33mrelu\u001b[39m\u001b[33m'\u001b[39m),\n\u001b[32m   (...)\u001b[39m\u001b[32m      8\u001b[39m \n\u001b[32m      9\u001b[39m ])\n\u001b[32m     10\u001b[39m model.compile(optimizer=\u001b[33m'\u001b[39m\u001b[33madam\u001b[39m\u001b[33m'\u001b[39m,loss=\u001b[33m'\u001b[39m\u001b[33msparse_categorical_crossentropy\u001b[39m\u001b[33m'\u001b[39m,metrics=[\u001b[33m'\u001b[39m\u001b[33maccuracy\u001b[39m\u001b[33m'\u001b[39m])\n\u001b[32m---> \u001b[39m\u001b[32m11\u001b[39m model.fit(\u001b[43mx_train\u001b[49m,y_train,epochs=\u001b[32m5\u001b[39m)\n",
      "\u001b[31mNameError\u001b[39m: name 'x_train' is not defined"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "model = keras.models.Sequential([\n",
    "    keras.layers.Flatten(input_shape=(28,28)),\n",
    "    keras.layers.Dense(128,activation='relu'),\n",
    "    keras.layers.Dense(10,activation='softmax')\n",
    "    \n",
    "    \n",
    "])\n",
    "model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])\n",
    "model.fit(x_train,y_train,epochs=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "dd5b05dd",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'model' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mNameError\u001b[39m                                 Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mmodel\u001b[49m.fit(x_train,y_train,epochs=\u001b[32m5\u001b[39m)\n",
      "\u001b[31mNameError\u001b[39m: name 'model' is not defined"
     ]
    }
   ],
   "source": [
    "model.fit(x_train,y_train,epochs=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6a8d6734",
   "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 2ms/step - accuracy: 0.9685 - loss: 0.1016\n",
      "{test_accuracy*100:.2f}%\n"
     ]
    }
   ],
   "source": [
    "test_loss,test_accuracy = model.evaluate(x_test,y_test)\n",
    "print('{test_accuracy*100:.2f}%')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a7179f4e",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'model' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mNameError\u001b[39m                                 Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mmodel\u001b[49m.fit(x_train,y_train,epochs=\u001b[33m'\u001b[39m\u001b[33m5\u001b[39m\u001b[33m'\u001b[39m)\n",
      "\u001b[31mNameError\u001b[39m: name 'model' is not defined"
     ]
    }
   ],
   "source": [
    "model.fit(x_train,y_train,epochs='5')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}