From 27e1625b858998ecc1a4f163084f96ff9a0fd51b Mon Sep 17 00:00:00 2001 From: Pedro Carneiro Marques Date: Wed, 13 Dec 2023 15:06:44 +0000 Subject: [PATCH] [lab-deep-learning] - Pedro Marques --- your-code/bonus.ipynb | 36 ++- your-code/challenge-1.ipynb | 285 +++++++++++++++++- your-code/tic-tac-toe.model/fingerprint.pb | 1 + your-code/tic-tac-toe.model/keras_metadata.pb | 8 + your-code/tic-tac-toe.model/saved_model.pb | Bin 0 -> 118515 bytes .../variables/variables.data-00000-of-00001 | Bin 0 -> 46412 bytes .../variables/variables.index | Bin 0 -> 2182 bytes 7 files changed, 297 insertions(+), 33 deletions(-) create mode 100644 your-code/tic-tac-toe.model/fingerprint.pb create mode 100644 your-code/tic-tac-toe.model/keras_metadata.pb create mode 100644 your-code/tic-tac-toe.model/saved_model.pb create mode 100644 your-code/tic-tac-toe.model/variables/variables.data-00000-of-00001 create mode 100644 your-code/tic-tac-toe.model/variables/variables.index diff --git a/your-code/bonus.ipynb b/your-code/bonus.ipynb index 92e4a72..f44c1e8 100644 --- a/your-code/bonus.ipynb +++ b/your-code/bonus.ipynb @@ -50,19 +50,17 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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EhMTMWzYMNx77709tke3/RzMihUrkJ+fj7POOgsjRozAu+++a/UqRWTJkiUYNWoUkpOTMWjQIFx99dX47LPPfJYpLi7usU/HjBnjs0xLSwvmzJmD9PR0JCUlYdq0aThw4ICZmxKyBQsW9NiezMxM7/eFEFiwYAGysrKQmJiICRMm4NNPP/V5DZW21yPQOcvhcGD27NkA9NjP77zzDq666ipkZWXB4XDglVde8fm+Ufv22LFjuPnmm+FyueByuXDzzTfj+PHj4a2sIC21tLSIQ4cO+XzdcsstIi8vT3R0dHiXAyAqKip8lvvqq6+8329ubhYZGRli+vTpoq6uTrz44osiOTlZPPzww1ZsVp9yc3PFokWLfLbnxIkT3u+3tbWJgoICUVRUJD766COxYcMGkZWVJUpKSrzLqLTNf/7zn0VxcbF44403xK5du8Qf//hHMWjQIFFWVuaznG77OZB169aJ/v37i6efflps375d3HnnnSIpKUns27fP6lUL26RJk0RFRYXYtm2b+Pjjj8WVV14pcnJyxJdffuldZsaMGWLy5Mk++/To0aM+r3PbbbeJIUOGiA0bNoiPPvpIFBUViW9/+9uira3N7E3q07333iu++c1v+mxPU1OT9/sPPPCASE5OFi+++KKoq6sT119/vRg8eLBwu93eZVTaXo+mpiafbd6wYYMAIDZu3CiE0GM//+lPfxL33HOPePHFFwUA8fLLL/t836h9O3nyZFFQUCA2bdokNm3aJAoKCsTUqVPDWlcGRTbR2toqBg0aJBYtWuTzfKADtLsVK1YIl8slTp065X1uyZIlIisryye4kkVubq549NFHg37/T3/6k4iLixOff/6597n//u//Fk6nUzQ3Nwsh1Ntmfw8++KDIz8/3eU63/RzId7/7XXHbbbf5PPev//qv4u6777ZojYzT1NQkAIi3337b+9yMGTPE97///aA/c/z4cdG/f3+xbt0673Off/65iIuLE3/5y19iuboRuffee8W3v/3tgN/r6OgQmZmZ4oEHHvA+d+rUKeFyucSTTz4phFBve4O58847xbBhw7zvO932s/+5yKh9u337dgFAbN682btMdXW1ACD+/ve/h7x+LJ/ZxKuvvoojR46guLi4x/dKSkqQnp6OUaNG4cknn0RHR4f3e9XV1Rg/frzPjbMmTZqEgwcPYu/evSasefiW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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -82,20 +80,20 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "0 201\n", - "1 200\n", - "Name: CLASS, dtype: int64" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" + "ename": "AttributeError", + "evalue": "'DataFrame' object has no attribute 'append'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/7n/23tg3_s92h53z9vkzqg5jl2m0000gn/T/ipykernel_96786/2939864048.py\u001b[0m in \u001b[0;36m?\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mdf2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata_2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"X\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Y\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mdf2\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"CLASS\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 10\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'CLASS'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue_counts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.11/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m?\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m 6200\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_accessors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6201\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6202\u001b[0m ):\n\u001b[1;32m 6203\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6204\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m: 'DataFrame' object has no attribute 'append'" + ] } ], "source": [ @@ -120,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -144,7 +142,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.0" } }, "nbformat": 4, diff --git a/your-code/challenge-1.ipynb b/your-code/challenge-1.ipynb index 2487c5f..71ad406 100644 --- a/your-code/challenge-1.ipynb +++ b/your-code/challenge-1.ipynb @@ -34,11 +34,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/slevin/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:767: FutureWarning: is_sparse is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.SparseDtype)` instead.\n", + " if not hasattr(array, \"sparse\") and array.dtypes.apply(is_sparse).any():\n", + "/Users/slevin/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:605: FutureWarning: is_sparse is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.SparseDtype)` instead.\n", + " if is_sparse(pd_dtype):\n", + "/Users/slevin/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:614: FutureWarning: is_sparse is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.SparseDtype)` instead.\n", + " if is_sparse(pd_dtype) or not is_extension_array_dtype(pd_dtype):\n", + "/Users/slevin/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:767: FutureWarning: is_sparse is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.SparseDtype)` instead.\n", + " if not hasattr(array, \"sparse\") and array.dtypes.apply(is_sparse).any():\n", + "/Users/slevin/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:605: FutureWarning: is_sparse is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.SparseDtype)` instead.\n", + " if is_sparse(pd_dtype):\n", + "/Users/slevin/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:614: FutureWarning: is_sparse is deprecated and will be removed in a future version. Check `isinstance(dtype, pd.SparseDtype)` instead.\n", + " if is_sparse(pd_dtype) or not is_extension_array_dtype(pd_dtype):\n" + ] + } + ], "source": [ - "# your code here" + "# your code here\n", + "import pandas as pd\n", + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "tic_tac_toe = pd.read_csv('tic-tac-toe.csv')\n", + "\n", + "mapping = {'x': 1, 'o': -1, 'b': 0}\n", + "tic_tac_toe.replace(mapping, inplace=True)\n", + "\n", + "X = tic_tac_toe.iloc[:, :-1] # All columns except the last one\n", + "y = tic_tac_toe.iloc[:, -1] # Last column (class)\n", + "\n", + "scaler = StandardScaler()\n", + "X_normalized = scaler.fit_transform(X)\n" ] }, { @@ -60,11 +92,150 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/50\n", + "17/17 [==============================] - 0s 7ms/step - loss: 0.6802 - accuracy: 0.5728 - val_loss: 0.6216 - val_accuracy: 0.6493\n", + "Epoch 2/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.6194 - accuracy: 0.6791 - val_loss: 0.5805 - val_accuracy: 0.7313\n", + "Epoch 3/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.5761 - accuracy: 0.7276 - val_loss: 0.5517 - val_accuracy: 0.7463\n", + "Epoch 4/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.5348 - accuracy: 0.7537 - val_loss: 0.5232 - val_accuracy: 0.7612\n", + "Epoch 5/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.4941 - accuracy: 0.7799 - val_loss: 0.5014 - val_accuracy: 0.7761\n", + "Epoch 6/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.4551 - accuracy: 0.7948 - val_loss: 0.4775 - val_accuracy: 0.7836\n", + "Epoch 7/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.4181 - accuracy: 0.8153 - val_loss: 0.4583 - val_accuracy: 0.7836\n", + "Epoch 8/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.3797 - accuracy: 0.8489 - val_loss: 0.4254 - val_accuracy: 0.8209\n", + "Epoch 9/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.3413 - accuracy: 0.8825 - val_loss: 0.3809 - val_accuracy: 0.8284\n", + "Epoch 10/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.3054 - accuracy: 0.8974 - val_loss: 0.3459 - val_accuracy: 0.8433\n", + "Epoch 11/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.2551 - accuracy: 0.9216 - val_loss: 0.3117 - val_accuracy: 0.9328\n", + "Epoch 12/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.2109 - accuracy: 0.9534 - val_loss: 0.2691 - val_accuracy: 0.9403\n", + "Epoch 13/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.1699 - accuracy: 0.9776 - val_loss: 0.2245 - val_accuracy: 0.9478\n", + "Epoch 14/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.1335 - accuracy: 0.9795 - val_loss: 0.1921 - val_accuracy: 0.9627\n", + "Epoch 15/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.1035 - accuracy: 0.9888 - val_loss: 0.1634 - val_accuracy: 0.9701\n", + "Epoch 16/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0807 - accuracy: 0.9907 - val_loss: 0.1521 - val_accuracy: 0.9701\n", + "Epoch 17/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0605 - accuracy: 0.9963 - val_loss: 0.1248 - val_accuracy: 0.9701\n", + "Epoch 18/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0470 - accuracy: 0.9981 - val_loss: 0.1166 - val_accuracy: 0.9701\n", + "Epoch 19/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0368 - accuracy: 0.9981 - val_loss: 0.1077 - val_accuracy: 0.9701\n", + "Epoch 20/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0300 - accuracy: 0.9981 - val_loss: 0.0997 - val_accuracy: 0.9776\n", + "Epoch 21/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0233 - accuracy: 1.0000 - val_loss: 0.0977 - val_accuracy: 0.9776\n", + "Epoch 22/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0194 - accuracy: 1.0000 - val_loss: 0.0923 - val_accuracy: 0.9776\n", + "Epoch 23/50\n", + "17/17 [==============================] - 0s 3ms/step - loss: 0.0161 - accuracy: 1.0000 - val_loss: 0.0899 - val_accuracy: 0.9851\n", + "Epoch 24/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0136 - accuracy: 1.0000 - val_loss: 0.0865 - val_accuracy: 0.9851\n", + "Epoch 25/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0115 - accuracy: 1.0000 - val_loss: 0.0850 - val_accuracy: 0.9851\n", + "Epoch 26/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0100 - accuracy: 1.0000 - val_loss: 0.0862 - val_accuracy: 0.9851\n", + "Epoch 27/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0087 - accuracy: 1.0000 - val_loss: 0.0839 - val_accuracy: 0.9851\n", + "Epoch 28/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0075 - accuracy: 1.0000 - val_loss: 0.0799 - val_accuracy: 0.9851\n", + "Epoch 29/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0067 - accuracy: 1.0000 - val_loss: 0.0810 - val_accuracy: 0.9851\n", + "Epoch 30/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0060 - accuracy: 1.0000 - val_loss: 0.0806 - val_accuracy: 0.9851\n", + "Epoch 31/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0054 - accuracy: 1.0000 - val_loss: 0.0807 - val_accuracy: 0.9851\n", + "Epoch 32/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0049 - accuracy: 1.0000 - val_loss: 0.0805 - val_accuracy: 0.9851\n", + "Epoch 33/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0044 - accuracy: 1.0000 - val_loss: 0.0791 - val_accuracy: 0.9851\n", + "Epoch 34/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0040 - accuracy: 1.0000 - val_loss: 0.0795 - val_accuracy: 0.9851\n", + "Epoch 35/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0037 - accuracy: 1.0000 - val_loss: 0.0787 - val_accuracy: 0.9851\n", + "Epoch 36/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0033 - accuracy: 1.0000 - val_loss: 0.0803 - val_accuracy: 0.9851\n", + "Epoch 37/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0031 - accuracy: 1.0000 - val_loss: 0.0798 - val_accuracy: 0.9851\n", + "Epoch 38/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0028 - accuracy: 1.0000 - val_loss: 0.0791 - val_accuracy: 0.9851\n", + "Epoch 39/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0026 - accuracy: 1.0000 - val_loss: 0.0802 - val_accuracy: 0.9851\n", + "Epoch 40/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0024 - accuracy: 1.0000 - val_loss: 0.0793 - val_accuracy: 0.9851\n", + "Epoch 41/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0023 - accuracy: 1.0000 - val_loss: 0.0792 - val_accuracy: 0.9851\n", + "Epoch 42/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0021 - accuracy: 1.0000 - val_loss: 0.0801 - val_accuracy: 0.9851\n", + "Epoch 43/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0020 - accuracy: 1.0000 - val_loss: 0.0801 - val_accuracy: 0.9851\n", + "Epoch 44/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0019 - accuracy: 1.0000 - val_loss: 0.0803 - val_accuracy: 0.9851\n", + "Epoch 45/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0017 - accuracy: 1.0000 - val_loss: 0.0803 - val_accuracy: 0.9851\n", + "Epoch 46/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0016 - accuracy: 1.0000 - val_loss: 0.0800 - val_accuracy: 0.9851\n", + "Epoch 47/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0015 - accuracy: 1.0000 - val_loss: 0.0802 - val_accuracy: 0.9851\n", + "Epoch 48/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0015 - accuracy: 1.0000 - val_loss: 0.0815 - val_accuracy: 0.9851\n", + "Epoch 49/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0014 - accuracy: 1.0000 - val_loss: 0.0803 - val_accuracy: 0.9851\n", + "Epoch 50/50\n", + "17/17 [==============================] - 0s 2ms/step - loss: 0.0013 - accuracy: 1.0000 - val_loss: 0.0815 - val_accuracy: 0.9851\n", + "9/9 [==============================] - 0s 721us/step - loss: 0.0305 - accuracy: 0.9896\n", + "Test Accuracy: 0.9895833134651184\n", + "INFO:tensorflow:Assets written to: tic-tac-toe.model/assets\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Assets written to: tic-tac-toe.model/assets\n" + ] + } + ], "source": [ - "# your code here" + "# your code here\n", + "from sklearn.model_selection import train_test_split\n", + "from tensorflow.keras.models import Sequential\n", + "from tensorflow.keras.layers import Dense\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X_normalized, y, test_size=0.3, random_state=42)\n", + "\n", + "model = Sequential()\n", + "\n", + "model.add(Dense(64, activation='relu', input_shape=(X_train.shape[1],)))\n", + "model.add(Dense(32, activation='relu'))\n", + "model.add(Dense(16, activation='relu'))\n", + "model.add(Dense(1, activation='sigmoid')) # Sigmoid for binary classification\n", + "\n", + "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\n", + "\n", + "history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_split=0.2)\n", + "\n", + "test_loss, test_accuracy = model.evaluate(X_test, y_test)\n", + "print(f\"Test Accuracy: {test_accuracy}\")\n", + "\n", + "# Save the model\n", + "model.save(\"tic-tac-toe.model\")\n" ] }, { @@ -78,11 +249,50 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 40ms/step\n", + "Sample 1:\n", + "Predicted: [0.], Actual: False\n", + "\n", + "Sample 2:\n", + "Predicted: [1.], Actual: True\n", + "\n", + "Sample 3:\n", + "Predicted: [0.], Actual: False\n", + "\n", + "Sample 4:\n", + "Predicted: [1.], Actual: True\n", + "\n", + "Sample 5:\n", + "Predicted: [1.], Actual: True\n", + "\n" + ] + } + ], "source": [ - "# your code here" + "# your code here\n", + "from tensorflow.keras.models import load_model\n", + "import numpy as np\n", + "\n", + "loaded_model = load_model(\"tic-tac-toe.model\")\n", + "\n", + "num_samples_to_predict = 5 # Change this number as needed\n", + "random_indices = np.random.choice(X_test.shape[0], num_samples_to_predict, replace=False)\n", + "random_samples = X_test[random_indices]\n", + "\n", + "predictions = loaded_model.predict(random_samples)\n", + "rounded_predictions = np.round(predictions)\n", + "\n", + "for i, idx in enumerate(random_indices):\n", + " print(f\"Sample {i+1}:\")\n", + " print(f\"Predicted: {rounded_predictions[i]}, Actual: {y_test.iloc[idx]}\")\n", + " print()" ] }, { @@ -104,11 +314,54 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 30ms/step\n", + "Sample 1:\n", + "Predicted: [1.], Actual: True\n", + "\n", + "Sample 2:\n", + "Predicted: [1.], Actual: True\n", + "\n", + "Sample 3:\n", + "Predicted: [1.], Actual: True\n", + "\n", + "Sample 4:\n", + "Predicted: [1.], Actual: True\n", + "\n", + "Sample 5:\n", + "Predicted: [1.], Actual: True\n", + "\n" + ] + } + ], "source": [ - "# your code here" + "# your code here\n", + "from tensorflow.keras.models import load_model\n", + "import numpy as np\n", + "\n", + "# Load the saved model\n", + "loaded_model = load_model(\"tic-tac-toe.model\")\n", + "\n", + "# Make predictions on a few random rows from the test dataset\n", + "num_samples_to_predict = 5 # Change this number as needed\n", + "random_indices = np.random.choice(X_test.shape[0], num_samples_to_predict, replace=False)\n", + "random_samples = X_test[random_indices]\n", + "\n", + "# Predict\n", + "predictions = loaded_model.predict(random_samples)\n", + "rounded_predictions = np.round(predictions)\n", + "\n", + "# Compare predictions with actual labels\n", + "for i, idx in enumerate(random_indices):\n", + " print(f\"Sample {i+1}:\")\n", + " print(f\"Predicted: {rounded_predictions[i]}, Actual: {y_test.iloc[idx]}\")\n", + " print()\n" ] }, { @@ -124,7 +377,11 @@ "metadata": {}, "outputs": [], "source": [ - "# your answer here" + "# your answer here\n", + "\"\"\"\n", + "Improving model performance involves a lot of trial an error. By adjusting the architecture by adding more layers seemed to have a positive impact in this case. \n", + "This model was able to create potentially more complex patterns in the data, which can be beneficial for solving intricate problems.\n", + "\"\"\"\n" ] } ], @@ -144,7 +401,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.11.0" } }, "nbformat": 4, diff --git a/your-code/tic-tac-toe.model/fingerprint.pb b/your-code/tic-tac-toe.model/fingerprint.pb new file mode 100644 index 0000000..f5e132f --- /dev/null +++ b/your-code/tic-tac-toe.model/fingerprint.pb @@ -0,0 +1 @@ +ŸÜú󨃳åŸж®¹¯ù¿ÜÒ𮮥ÐÒÏ® “¿×©Œ§»ä!(ø‰çóùò†°\2 \ No newline at end of file diff --git a/your-code/tic-tac-toe.model/keras_metadata.pb b/your-code/tic-tac-toe.model/keras_metadata.pb new file mode 100644 index 0000000..eac4c00 --- /dev/null +++ b/your-code/tic-tac-toe.model/keras_metadata.pb @@ -0,0 +1,8 @@ + +Ù-root"_tf_keras_sequential*´-{"name": "sequential", "trainable": true, "expects_training_arg": true, "dtype": "float32", "batch_input_shape": null, "must_restore_from_config": false, "preserve_input_structure_in_config": false, "autocast": false, "class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 9]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "dense_input"}}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "batch_input_shape": {"class_name": "__tuple__", "items": [null, 9]}, "units": 64, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 32, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 16, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_3", "trainable": true, "dtype": "float32", "units": 1, "activation": "sigmoid", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}]}, "shared_object_id": 13, "input_spec": [{"class_name": "InputSpec", "config": {"dtype": null, "shape": {"class_name": "__tuple__", "items": [null, 9]}, "ndim": 2, "max_ndim": null, "min_ndim": null, "axes": {}}}], "build_input_shape": {"class_name": "TensorShape", "items": [null, 9]}, "is_graph_network": true, "full_save_spec": {"class_name": "__tuple__", "items": [[{"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 9]}, "float32", "dense_input"]}], {}]}, "save_spec": {"class_name": "TypeSpec", "type_spec": "tf.TensorSpec", "serialized": [{"class_name": "TensorShape", "items": [null, 9]}, "float32", "dense_input"]}, "keras_version": "2.15.0", "backend": "tensorflow", "model_config": {"class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": {"class_name": "__tuple__", "items": [null, 9]}, "dtype": "float32", "sparse": false, "ragged": false, "name": "dense_input"}, "shared_object_id": 0}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "batch_input_shape": {"class_name": "__tuple__", "items": [null, 9]}, "units": 64, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 1}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 2}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 3}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 32, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 4}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 5}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 6}, {"class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 16, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 7}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 8}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 9}, {"class_name": "Dense", "config": {"name": "dense_3", "trainable": true, "dtype": "float32", "units": 1, "activation": "sigmoid", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 10}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 11}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 12}]}}, "training_config": {"loss": "binary_crossentropy", "metrics": [[{"class_name": "MeanMetricWrapper", "config": {"name": "accuracy", "dtype": "float32", "fn": "binary_accuracy"}, "shared_object_id": 15}]], "weighted_metrics": null, "loss_weights": null, "optimizer_config": {"class_name": "Adam", "config": {"name": "Adam", "learning_rate": 0.0010000000474974513, "decay": 0.0, "beta_1": 0.8999999761581421, "beta_2": 0.9990000128746033, "epsilon": 1e-07, "amsgrad": false}}}}2 +ïroot.layer_with_weights-0"_tf_keras_layer*¸{"name": "dense", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": {"class_name": "__tuple__", "items": [null, 9]}, "stateful": false, "must_restore_from_config": false, "preserve_input_structure_in_config": false, "autocast": true, "class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "batch_input_shape": {"class_name": "__tuple__", "items": [null, 9]}, "units": 64, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 1}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 2}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 3, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 9}}, "shared_object_id": 16}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 9]}}2 +„root.layer_with_weights-1"_tf_keras_layer*Í{"name": "dense_1", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "preserve_input_structure_in_config": false, "autocast": true, "class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 32, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 4}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 5}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 6, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 64}}, "shared_object_id": 17}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 64]}}2 +„root.layer_with_weights-2"_tf_keras_layer*Í{"name": "dense_2", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "preserve_input_structure_in_config": false, "autocast": true, "class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 16, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 7}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 8}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 9, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 32}}, "shared_object_id": 18}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 32]}}2 +‰root.layer_with_weights-3"_tf_keras_layer*Ò{"name": "dense_3", "trainable": true, "expects_training_arg": false, "dtype": "float32", "batch_input_shape": null, "stateful": false, "must_restore_from_config": false, "preserve_input_structure_in_config": false, "autocast": true, "class_name": "Dense", "config": {"name": "dense_3", "trainable": true, "dtype": "float32", "units": 1, "activation": "sigmoid", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}, "shared_object_id": 10}, "bias_initializer": {"class_name": "Zeros", "config": {}, "shared_object_id": 11}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "shared_object_id": 12, "input_spec": {"class_name": "InputSpec", "config": {"dtype": null, "shape": null, "ndim": null, "max_ndim": null, "min_ndim": 2, "axes": {"-1": 16}}, "shared_object_id": 19}, "build_input_shape": {"class_name": "TensorShape", "items": [null, 16]}}2 +¹Yroot.keras_api.metrics.0"_tf_keras_metric*‚{"class_name": "Mean", "name": "loss", "dtype": "float32", "config": {"name": "loss", "dtype": "float32"}, "shared_object_id": 20}2 +çZroot.keras_api.metrics.1"_tf_keras_metric*°{"class_name": "MeanMetricWrapper", "name": "accuracy", "dtype": "float32", "config": {"name": "accuracy", "dtype": "float32", "fn": "binary_accuracy"}, "shared_object_id": 15}2 \ No newline at end of file diff --git a/your-code/tic-tac-toe.model/saved_model.pb b/your-code/tic-tac-toe.model/saved_model.pb new file mode 100644 index 0000000000000000000000000000000000000000..3420673f4cb049da3af39ee33bdd21ee4f7ca9b1 GIT binary patch literal 118515 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 L?1F?I;)DMW$kIG@ literal 0 HcmV?d00001 diff --git a/your-code/tic-tac-toe.model/variables/variables.data-00000-of-00001 b/your-code/tic-tac-toe.model/variables/variables.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..7cf1835a81b7b95b26c4b19e96d94f0f370aaf94 GIT binary patch literal 46412 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�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 literal 0 HcmV?d00001 diff --git a/your-code/tic-tac-toe.model/variables/variables.index b/your-code/tic-tac-toe.model/variables/variables.index new file mode 100644 index 0000000000000000000000000000000000000000..e68001fad2157485cbbd740c0a46653736ef9e7f GIT binary patch literal 2182 zcmZQzVB=tvV&Y(AkP(P?_HcFf4)FK%3vqPvagFzP@^WZnaRca2KveQrFkX#dX6C>L7q;bA+EvtVU9tb zVAH}JeL`J17=gwtNYh|3&0Su^Afmuml3$XTLrB9MkcL|;7o-a*@fi|l#|l#ISOU_p zU!6&U!9+MGu`;zNzC5!eBfdN}Gd-iESl2*5DKoJcze8Dsm^d618iX_&m`pF!&n%TT z74{DZ@$~hKat(?P_VEwV&o3y+%+0JyEz-{=#;7$FAftX=HCbySBT`0;jt%!1L0aNc zr(23DiU4CMFO@*(asVC8339kbgOI6N@As>+rsCwf8g7=tnlzAc3|nj!&1579xE!Ht z!x^CKg-p{v|6C`mC~Qb%kSi!OglIG{n!eZZ{UmKFLayUMv8SN0W*5*2jHU}*k989l z<_ZcM7BGRdxSvv7AgU-%Y?wQMt!og`XmBt+rJwD~5G0Nz*%|7?%p=!ZpwNZbwWbPW z*Sw#{g@}t2h^`F}fC1uQn)sYkU06}bh{!k*P-sZia4?Oi`Zk}!Tp*yZ<}@SFs5L7^ zW|+tb6G%&-NEA@mu#pL0mPK!sTEW42%l1D#P}4KORRn6Cb;yMwqu zXH?h#tQ>$PXbMA)sG=Aw)#9rNKq*rIh#3_QfYQp6_s_*CEPEiPy#c3}Ih~YRk{EA@zvyL9=mCZM-`B_Q^ULrV5mGz>q#}M=D=vAy%o1QVf~ThC1lF`IX&M}+^3mHDaB1-6q$U>SW#*;F z7bTXY;?oGKqGy0C$~+xv!~g`H%nS@Q>