Symulowanie-wizualne/sw_lab9-10_3.ipynb
2023-01-11 22:53:38 +01:00

754 lines
163 KiB
Plaintext

{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Aleksandra Jonas, Aleksandra Gronowka, Iwona Christop"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Przygotowanie danych"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import cv2 as cv\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import json\n",
"from tensorflow import keras\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import subprocess\n",
"import pkg_resources\n",
"import numpy as np\n",
"peachy = []\n",
"\n",
"required = { 'scikit-image'}\n",
"installed = {pkg.key for pkg in pkg_resources.working_set}\n",
"missing = required - installed\n",
"\n",
"if missing: \n",
" python = sys.executable\n",
" subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)\n",
"\n",
"def load_train_data(input_dir, newSize=(227,227)):\n",
" import numpy as np\n",
" import pandas as pd\n",
" import os\n",
" from skimage.io import imread\n",
" import cv2 as cv\n",
" from pathlib import Path\n",
" import random\n",
" from shutil import copyfile, rmtree\n",
" import json\n",
"\n",
" import seaborn as sns\n",
" import matplotlib.pyplot as plt\n",
"\n",
" import matplotlib\n",
" \n",
" image_dir = Path(input_dir)\n",
" categories_name = []\n",
" for file in os.listdir(image_dir):\n",
" d = os.path.join(image_dir, file)\n",
" if os.path.isdir(d):\n",
" categories_name.append(file)\n",
"\n",
" folders = [directory for directory in image_dir.iterdir() if directory.is_dir()]\n",
"\n",
" train_img = []\n",
" categories_count=[]\n",
" labels=[]\n",
" for i, direc in enumerate(folders):\n",
" count = 0\n",
" \n",
" for obj in direc.iterdir():\n",
" if os.path.isfile(obj) and os.path.basename(os.path.normpath(obj)) != 'desktop.ini':\n",
" labels.append(os.path.basename(os.path.normpath(direc)))\n",
" count += 1\n",
" img = imread(obj)#zwraca ndarry postaci xSize x ySize x colorDepth\n",
" if img.shape[-1] == 256:\n",
" img = np.repeat(img[..., np.newaxis], 3, axis=2)\n",
" elif img.shape[-1] == 4:\n",
" img = img[:, :, :3]\n",
" img = cv.resize(img, newSize, interpolation=cv.INTER_AREA)# zwraca ndarray\n",
" img = img / 255#normalizacja\n",
" train_img.append(img)\n",
" categories_count.append(count)\n",
" X={}\n",
" X[\"values\"] = np.array(train_img)\n",
" X[\"categories_name\"] = categories_name\n",
" X[\"categories_count\"] = categories_count\n",
" X[\"labels\"]=labels\n",
" return X\n",
"\n",
"def load_test_data(input_dir, newSize=(227,227)):\n",
" import numpy as np\n",
" import pandas as pd\n",
" import os\n",
" from skimage.io import imread\n",
" import cv2 as cv\n",
" from pathlib import Path\n",
" import random\n",
" from shutil import copyfile, rmtree\n",
" import json\n",
"\n",
" import seaborn as sns\n",
" import matplotlib.pyplot as plt\n",
"\n",
" import matplotlib\n",
"\n",
" image_path = Path(input_dir)\n",
"\n",
" labels_path = image_path.parents[0] / 'test_labels.json'\n",
"\n",
" jsonString = labels_path.read_text()\n",
" objects = json.loads(jsonString)\n",
"\n",
" categories_name = []\n",
" categories_count=[]\n",
" count = 0\n",
" c = objects[0]['value']\n",
" for e in objects:\n",
" if e['value'] != c:\n",
" categories_count.append(count)\n",
" c = e['value']\n",
" count = 1\n",
" else:\n",
" count += 1\n",
" if not e['value'] in categories_name:\n",
" categories_name.append(e['value'])\n",
"\n",
" categories_count.append(count)\n",
" \n",
" test_img = []\n",
"\n",
" labels=[]\n",
" for e in objects:\n",
" p = image_path / e['filename']\n",
" img = imread(p)#zwraca ndarry postaci xSize x ySize x colorDepth\n",
" if img.shape[-1] == 4:\n",
" img = img[:, :, :3]\n",
" img = cv.resize(img, newSize, interpolation=cv.INTER_AREA)# zwraca ndarray\n",
" img = img / 255#normalizacja\n",
" test_img.append(img)\n",
" labels.append(e['value'])\n",
"\n",
" X={}\n",
" X[\"values\"] = np.array(test_img)\n",
" X[\"categories_name\"] = categories_name\n",
" X[\"categories_count\"] = categories_count\n",
" X[\"labels\"]=labels\n",
" return X\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import LabelEncoder\n",
"import tensorflow as tf\n",
"\n",
"data_train = load_train_data(f\"./train_test_sw/train_sw_unity\")\n",
"values_train = data_train['values']\n",
"labels_train = data_train['labels']\n",
"data_test = load_test_data(\"./train_test_sw/test_sw\")\n",
"X_test = data_test['values']\n",
"y_test = data_test['labels']\n",
"\n",
"X_train, X_validate, y_train, y_validate = train_test_split(values_train, labels_train, test_size=0.2, random_state=42)\n",
"\n",
"class_le = LabelEncoder()\n",
"y_train_enc = class_le.fit_transform(y_train)\n",
"y_validate_enc = class_le.fit_transform(y_validate)\n",
"y_test_enc = class_le.fit_transform(y_test)\n",
"\n",
"train_ds = tf.data.Dataset.from_tensor_slices((X_train, y_train_enc))\n",
"validation_ds = tf.data.Dataset.from_tensor_slices((X_validate, y_validate_enc))\n",
"test_ds = tf.data.Dataset.from_tensor_slices((X_test, y_test_enc))\n",
"\n",
"train_ds_size = tf.data.experimental.cardinality(train_ds).numpy()\n",
"test_ds_size = tf.data.experimental.cardinality(test_ds).numpy()\n",
"validation_ds_size = tf.data.experimental.cardinality(validation_ds).numpy()\n",
"\n",
"train_ds = (train_ds\n",
" .shuffle(buffer_size=train_ds_size)\n",
" .batch(batch_size=32, drop_remainder=True))\n",
"test_ds = (test_ds\n",
" .shuffle(buffer_size=train_ds_size)\n",
" .batch(batch_size=32, drop_remainder=True))\n",
"validation_ds = (validation_ds\n",
" .shuffle(buffer_size=train_ds_size)\n",
" .batch(batch_size=32, drop_remainder=True))"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## AlexNet"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"from keras.callbacks import ModelCheckpoint, EarlyStopping\n",
"import matplotlib.pyplot as plt\n",
"import tensorflow as tf\n",
"\n",
"alexnet = keras.models.Sequential([\n",
"keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),\n",
"keras.layers.BatchNormalization(),\n",
"keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),\n",
"keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding=\"same\"),\n",
"keras.layers.BatchNormalization(),\n",
"keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),\n",
"keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding=\"same\"),\n",
"keras.layers.BatchNormalization(),\n",
"keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding=\"same\"),\n",
"keras.layers.BatchNormalization(),\n",
"keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding=\"same\"),\n",
"keras.layers.BatchNormalization(),\n",
"keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),\n",
"keras.layers.Flatten(),\n",
"keras.layers.Dense(4096, activation='relu'),\n",
"keras.layers.Dropout(.5),\n",
"keras.layers.Dense(4096, activation='relu'),\n",
"keras.layers.Dropout(.5),\n",
"keras.layers.Dense(10, activation='softmax')\n",
"])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:absl:`lr` is deprecated, please use `learning_rate` instead, or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.SGD.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" conv2d (Conv2D) (None, 55, 55, 96) 34944 \n",
" \n",
" batch_normalization (BatchN (None, 55, 55, 96) 384 \n",
" ormalization) \n",
" \n",
" max_pooling2d (MaxPooling2D (None, 27, 27, 96) 0 \n",
" ) \n",
" \n",
" conv2d_1 (Conv2D) (None, 27, 27, 256) 614656 \n",
" \n",
" batch_normalization_1 (Batc (None, 27, 27, 256) 1024 \n",
" hNormalization) \n",
" \n",
" max_pooling2d_1 (MaxPooling (None, 13, 13, 256) 0 \n",
" 2D) \n",
" \n",
" conv2d_2 (Conv2D) (None, 13, 13, 384) 885120 \n",
" \n",
" batch_normalization_2 (Batc (None, 13, 13, 384) 1536 \n",
" hNormalization) \n",
" \n",
" conv2d_3 (Conv2D) (None, 13, 13, 384) 1327488 \n",
" \n",
" batch_normalization_3 (Batc (None, 13, 13, 384) 1536 \n",
" hNormalization) \n",
" \n",
" conv2d_4 (Conv2D) (None, 13, 13, 256) 884992 \n",
" \n",
" batch_normalization_4 (Batc (None, 13, 13, 256) 1024 \n",
" hNormalization) \n",
" \n",
" max_pooling2d_2 (MaxPooling (None, 6, 6, 256) 0 \n",
" 2D) \n",
" \n",
" flatten (Flatten) (None, 9216) 0 \n",
" \n",
" dense (Dense) (None, 4096) 37752832 \n",
" \n",
" dropout (Dropout) (None, 4096) 0 \n",
" \n",
" dense_1 (Dense) (None, 4096) 16781312 \n",
" \n",
" dropout_1 (Dropout) (None, 4096) 0 \n",
" \n",
" dense_2 (Dense) (None, 10) 40970 \n",
" \n",
"=================================================================\n",
"Total params: 58,327,818\n",
"Trainable params: 58,325,066\n",
"Non-trainable params: 2,752\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"alexnet.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])\n",
"alexnet.summary()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.\n",
"/var/folders/6b/j4d60ym516x2s6wymzj707rh0000gn/T/ipykernel_37874/1998863165.py:4: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.\n",
" alex = alexnet.fit_generator(\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/25\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-11 20:31:44.007163: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"50/50 [==============================] - ETA: 0s - loss: 3.8100 - accuracy: 0.3950\n",
"Epoch 1: val_accuracy improved from -inf to 0.29688, saving model to alex_2.h5\n",
"50/50 [==============================] - 46s 896ms/step - loss: 3.8100 - accuracy: 0.3950 - val_loss: 1.8302 - val_accuracy: 0.2969\n",
"Epoch 2/25\n",
"50/50 [==============================] - ETA: 0s - loss: 1.3961 - accuracy: 0.5281\n",
"Epoch 2: val_accuracy improved from 0.29688 to 0.38281, saving model to alex_2.h5\n",
"50/50 [==============================] - 46s 918ms/step - loss: 1.3961 - accuracy: 0.5281 - val_loss: 1.9363 - val_accuracy: 0.3828\n",
"Epoch 3/25\n",
"50/50 [==============================] - ETA: 0s - loss: 1.0805 - accuracy: 0.5956\n",
"Epoch 3: val_accuracy did not improve from 0.38281\n",
"50/50 [==============================] - 48s 955ms/step - loss: 1.0805 - accuracy: 0.5956 - val_loss: 2.2350 - val_accuracy: 0.3438\n",
"Epoch 4/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.8866 - accuracy: 0.6600\n",
"Epoch 4: val_accuracy did not improve from 0.38281\n",
"50/50 [==============================] - 60s 1s/step - loss: 0.8866 - accuracy: 0.6600 - val_loss: 2.0590 - val_accuracy: 0.3203\n",
"Epoch 5/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.7940 - accuracy: 0.6981\n",
"Epoch 5: val_accuracy did not improve from 0.38281\n",
"50/50 [==============================] - 74s 1s/step - loss: 0.7940 - accuracy: 0.6981 - val_loss: 2.4437 - val_accuracy: 0.3672\n",
"Epoch 6/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.6635 - accuracy: 0.7325\n",
"Epoch 6: val_accuracy improved from 0.38281 to 0.45833, saving model to alex_2.h5\n",
"50/50 [==============================] - 68s 1s/step - loss: 0.6635 - accuracy: 0.7325 - val_loss: 1.8824 - val_accuracy: 0.4583\n",
"Epoch 7/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.6460 - accuracy: 0.7406\n",
"Epoch 7: val_accuracy improved from 0.45833 to 0.49479, saving model to alex_2.h5\n",
"50/50 [==============================] - 67s 1s/step - loss: 0.6460 - accuracy: 0.7406 - val_loss: 1.3159 - val_accuracy: 0.4948\n",
"Epoch 8/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.5407 - accuracy: 0.7837\n",
"Epoch 8: val_accuracy improved from 0.49479 to 0.62500, saving model to alex_2.h5\n",
"50/50 [==============================] - 70s 1s/step - loss: 0.5407 - accuracy: 0.7837 - val_loss: 0.9668 - val_accuracy: 0.6250\n",
"Epoch 9/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.4979 - accuracy: 0.7994\n",
"Epoch 9: val_accuracy did not improve from 0.62500\n",
"50/50 [==============================] - 66s 1s/step - loss: 0.4979 - accuracy: 0.7994 - val_loss: 1.1679 - val_accuracy: 0.5677\n",
"Epoch 10/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.4673 - accuracy: 0.8256\n",
"Epoch 10: val_accuracy improved from 0.62500 to 0.74479, saving model to alex_2.h5\n",
"50/50 [==============================] - 69s 1s/step - loss: 0.4673 - accuracy: 0.8256 - val_loss: 0.6585 - val_accuracy: 0.7448\n",
"Epoch 11/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.4136 - accuracy: 0.8313\n",
"Epoch 11: val_accuracy did not improve from 0.74479\n",
"50/50 [==============================] - 84s 2s/step - loss: 0.4136 - accuracy: 0.8313 - val_loss: 0.8328 - val_accuracy: 0.7188\n",
"Epoch 12/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.3804 - accuracy: 0.8519\n",
"Epoch 12: val_accuracy improved from 0.74479 to 0.76302, saving model to alex_2.h5\n",
"50/50 [==============================] - 80s 2s/step - loss: 0.3804 - accuracy: 0.8519 - val_loss: 0.6793 - val_accuracy: 0.7630\n",
"Epoch 13/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.3550 - accuracy: 0.8587\n",
"Epoch 13: val_accuracy did not improve from 0.76302\n",
"50/50 [==============================] - 81s 2s/step - loss: 0.3550 - accuracy: 0.8587 - val_loss: 0.6221 - val_accuracy: 0.7630\n",
"Epoch 14/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.3337 - accuracy: 0.8744\n",
"Epoch 14: val_accuracy did not improve from 0.76302\n",
"50/50 [==============================] - 96s 2s/step - loss: 0.3337 - accuracy: 0.8744 - val_loss: 0.6317 - val_accuracy: 0.7578\n",
"Epoch 15/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.2860 - accuracy: 0.8950\n",
"Epoch 15: val_accuracy improved from 0.76302 to 0.79167, saving model to alex_2.h5\n",
"50/50 [==============================] - 79s 2s/step - loss: 0.2860 - accuracy: 0.8950 - val_loss: 0.6067 - val_accuracy: 0.7917\n",
"Epoch 16/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.2721 - accuracy: 0.8881\n",
"Epoch 16: val_accuracy improved from 0.79167 to 0.81250, saving model to alex_2.h5\n",
"50/50 [==============================] - 77s 2s/step - loss: 0.2721 - accuracy: 0.8881 - val_loss: 0.5126 - val_accuracy: 0.8125\n",
"Epoch 17/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.2564 - accuracy: 0.8969\n",
"Epoch 17: val_accuracy improved from 0.81250 to 0.81510, saving model to alex_2.h5\n",
"50/50 [==============================] - 78s 2s/step - loss: 0.2564 - accuracy: 0.8969 - val_loss: 0.5017 - val_accuracy: 0.8151\n",
"Epoch 18/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.2534 - accuracy: 0.8981\n",
"Epoch 18: val_accuracy improved from 0.81510 to 0.82292, saving model to alex_2.h5\n",
"50/50 [==============================] - 72s 1s/step - loss: 0.2534 - accuracy: 0.8981 - val_loss: 0.4199 - val_accuracy: 0.8229\n",
"Epoch 19/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.2327 - accuracy: 0.9075\n",
"Epoch 19: val_accuracy improved from 0.82292 to 0.84635, saving model to alex_2.h5\n",
"50/50 [==============================] - 70s 1s/step - loss: 0.2327 - accuracy: 0.9075 - val_loss: 0.4260 - val_accuracy: 0.8464\n",
"Epoch 20/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.2132 - accuracy: 0.9219\n",
"Epoch 20: val_accuracy did not improve from 0.84635\n",
"50/50 [==============================] - 69s 1s/step - loss: 0.2132 - accuracy: 0.9219 - val_loss: 0.6660 - val_accuracy: 0.7995\n",
"Epoch 21/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.1870 - accuracy: 0.9287\n",
"Epoch 21: val_accuracy did not improve from 0.84635\n",
"50/50 [==============================] - 70s 1s/step - loss: 0.1870 - accuracy: 0.9287 - val_loss: 0.5399 - val_accuracy: 0.8203\n",
"Epoch 22/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.1861 - accuracy: 0.9294\n",
"Epoch 22: val_accuracy did not improve from 0.84635\n",
"50/50 [==============================] - 78s 2s/step - loss: 0.1861 - accuracy: 0.9294 - val_loss: 0.5620 - val_accuracy: 0.8151\n",
"Epoch 23/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.1494 - accuracy: 0.9375\n",
"Epoch 23: val_accuracy improved from 0.84635 to 0.88281, saving model to alex_2.h5\n",
"50/50 [==============================] - 80s 2s/step - loss: 0.1494 - accuracy: 0.9375 - val_loss: 0.3850 - val_accuracy: 0.8828\n",
"Epoch 24/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.1548 - accuracy: 0.9481\n",
"Epoch 24: val_accuracy did not improve from 0.88281\n",
"50/50 [==============================] - 81s 2s/step - loss: 0.1548 - accuracy: 0.9481 - val_loss: 0.4789 - val_accuracy: 0.8646\n",
"Epoch 25/25\n",
"50/50 [==============================] - ETA: 0s - loss: 0.1541 - accuracy: 0.9456\n",
"Epoch 25: val_accuracy did not improve from 0.88281\n",
"50/50 [==============================] - 82s 2s/step - loss: 0.1541 - accuracy: 0.9456 - val_loss: 0.4806 - val_accuracy: 0.8411\n"
]
}
],
"source": [
"checkpoint = ModelCheckpoint(\"alex_2.h5\", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)\n",
"early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')\n",
"\n",
"alex = alexnet.fit_generator(\n",
" steps_per_epoch=len(train_ds), \n",
" generator=train_ds, \n",
" validation_data= validation_ds, \n",
" validation_steps=len(validation_ds), \n",
" epochs=25, \n",
" callbacks=[checkpoint,early])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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06ZC2w8dOqTq9Xp13LhxalJSklq9enW1Xbt2Bc6R928xb9481Ww2qw0aNFBbtWpl/7nk/fwvXryoqqrt59WgQQO1d+/e9n1U1fZvUadOHfXOO++0b5s3b54KqFFRUTf+gxLiJsklLSFuwtChQ8nKyuL7778nLS2N77///qqXs3744Qe0Wi1PPfVUge3/+9//UFWVH3/80b4fUGi/K1trVFVl3bp19O/fH1VVSUhIsN969+5NSkoKf/75Z4k+j8FgQKOx/d+CxWLh0qVLeHp60qhRowLHWrduHdWqVWPSpEmFjpHXmrJu3ToURWHGjBlX3edGPP7444W2ubm52R9nZ2eTkJBAp06dAOx1W61WNmzYQP/+/YtsXcqraejQobi6uhboPLx582YSEhJ46KGHbrjuovz9998cOnSIESNG2LeNGDGChIQENm/efM33rl27Fh8fH+68884C//Zt27bF09OT7du32/dt3rw5s2bN4tNPP6V3794kJCTw+eef4+JSdCN/XivPwYMH2bBhQ5H7REZGcuLECR544AEuXbpkP39GRgY9e/Zk165dWK3Wkv9QhCglcklLiJsQGBhIr169WLFiBZmZmVgsFu6///4i9z1z5gxhYWF4eXkV2N6kSRP763n3Go3GflkoT6NGjQo8v3jxIsnJySxZsoQlS5YUec74+PgSfZ68PjcffvghUVFRWCwW+2sBAQH2x6dOnaJRo0ZX/cLM2ycsLAx/f/8S1XA9derUKbQtMTGRWbNmsWrVqkKfOSUlBbD9vFJTU2nevPk1j+/r60v//v1ZsWIFs2fPBmyXs6pXr06PHj2u+d7Y2NgCz318fAqEsSt98cUXeHh4ULduXU6ePAnYRv/Vrl2bL7/8ssjLmHlOnDhBSkoKQUFBRb5+5c/hueeeY9WqVfz222+88cYbNG3a9Jqf5cEHH2T27Nm8+uqrDBo0qMjzA4waNeqqx0hJScHPz++a5xGirEjgEeImPfDAA4wfP57Y2Fj69u2Lr69vmZw376/nhx566KpfOi1btizRMd944w1efvllxowZw+zZs/H390ej0TB58uRS+Wv9ai09+YPWlYoKEEOHDmXv3r0899xztG7dGk9PT6xWK3369LmhukeOHMnatWvZu3cvLVq04Ntvv+XJJ5+0t35dTWhoaIHny5YtY/To0UXuq6oqK1euJCMjo8jw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iwQeB8rrtJyWk4bJUni2TyGEEEI4hwQeB/LSe6FVbHM0SD8eIYQQovyQwONAGkVjXzU9ySj9eIQQQojyQgKPg9mHpmdJC48QQghRXkjgcTBZXkIIIRyrW7duTJ482f68du3aLFiw4JrvURSFDRs23PS5HXUc4XwSeBzMfklLhqYLIaq4/v3706dPnyJf2717N4qi3NCSDL///juPPvrozZZXwMyZM2ndunWh7TExMfTt29eh57qarKws/P39qVatGkajsUzOWZVI4HGwvJFa0mlZCFHVjR07li1btnD+/PlCry1btox27drRsmXLEh83MDAQd3d3R5R4XSEhIRgMhjI517p162jWrBmNGzd2equSqqqYzWan1uBoEngcTJaXEEIIm3vuuYfAwMBCMxKnp6ezdu1axo4dy6VLlxgxYgTVq1fH3d3dvur5tVx5SevEiRPccccduLq60rRpU7Zs2VLoPS+88AINGzbE3d2dunXr8vLLL2My2aYPiYiIYNasWRw8eBBFUVAUxV7zlZe0Dh06RI8ePXBzcyMgIIBHH32U9PR0++ujR49m0KBBvP3224SGhhIQEMCECRPs57qWpUuX8tBDD/HQQw+xdOnSQq8fOXKEe+65B29vb7y8vLj99ts5deqU/fXPPvuMZs2aYTAYCA0NZeLEiQCcPn0aRVGIjIy075ucnIyiKOzYsQOAHTt2oCgKP/74I23btsVgMPDLL79w6tQpBg4cSHBwMJ6enrRv356ff/65QF1Go5EXXniB8PBwDAYD9evXZ+nSpaiqSv369Xn77bcL7B8ZGYmiKJw8efK6PxNHkqUlHCzvkpYEHiFEqVJVMGU659w6d1CU6+7m4uLCyJEjiYiIYNq0aSi571m7di0Wi4URI0aQnp5O27ZteeGFF/D29mbjxo08/PDD1KtXjw4dOlz3HFarlfvuu4/g4GD2799PSkpKgf4+eby8vIiIiCAsLIxDhw4xfvx4vLy8eP755xk2bBiHDx9m06ZN9i9zHx+fQsfIyMigd+/edO7cmd9//534+HjGjRvHxIkTC4S67du3Exoayvbt2zl58iTDhg2jdevWjB8//qqf49SpU+zbt4+vv/4aVVWZMmUKZ86coVatWgBcuHCBO+64g27durFt2za8vb3Zs2ePvRVm8eLFPPPMM8ydO5e+ffuSkpLCnj17rvvzu9KL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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(alex.history[\"accuracy\"])\n",
"plt.plot(alex.history['val_accuracy'])\n",
"plt.plot(alex.history['loss'])\n",
"plt.plot(alex.history['val_loss'])\n",
"plt.title(f\"Model accuracy - AlexNet\")\n",
"plt.ylabel(\"Value\")\n",
"plt.xlabel(\"Epoch\")\n",
"plt.legend([\"Accuracy\",\"Validation Accuracy\",\"Loss\",\"Validation Loss\"])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"8/8 [==============================] - 4s 450ms/step - loss: 0.4419 - accuracy: 0.8516\n"
]
},
{
"data": {
"text/plain": [
"[0.4419291615486145, 0.8515625]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alexnet.evaluate(test_ds)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## MLP"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"X_train = X_train.flatten().reshape(X_train.shape[0], int(np.prod(X_train.shape) / X_train.shape[0]))\n",
"X_test = X_test.flatten().reshape(X_test.shape[0], int(np.prod(X_test.shape) / X_test.shape[0]))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.neural_network import MLPClassifier\n",
"from tqdm import tqdm\n",
"\n",
"def test_mlp(X_train, y_train, X_val, y_val, X_test, y_test, hidden_layer_sizes, alpha, max_iter):\n",
" mlp = MLPClassifier(hidden_layer_sizes=hidden_layer_sizes, alpha=alpha, max_iter=max_iter)\n",
" accuracy = []\n",
"\n",
" result = {\n",
" 'num_layers': len(hidden_layer_sizes),\n",
" 'layer_sizes': hidden_layer_sizes,\n",
" 'regularization': alpha,\n",
" 'max_iter': max_iter\n",
" }\n",
"\n",
" for i in tqdm(range(max_iter)):\n",
" mlp.partial_fit(X_train, y_train, np.unique(y_train))\n",
" accuracy.append(mlp.score(X_train, y_train))\n",
" if i == 50:\n",
" result['checkpoint_train_accuracy'] = np.mean(accuracy)\n",
" result['checkpoint_val_accuracy'] = mlp.score(X_val, y_val)\n",
" result['checkpoint_test_accuracy'] = mlp.score(X_test, y_test)\n",
"\n",
" result['full_train_accuracy'] = np.mean(accuracy)\n",
" result['full_val_accuracy'] = mlp.score(X_val, y_val)\n",
" result['full_test_accuracy'] = mlp.score(X_test, y_test)\n",
" result['accuracy_curve'] = accuracy\n",
" result['loss_curve'] = mlp.loss_curve_\n",
"\n",
" return result\n",
"\n",
"def print_result(result):\n",
" print(f\"NUMBER OF HIDDEN LAYERS = {result['num_layers']}\")\n",
" print(f\"HIDDEN LAYER SIZES = {result['layer_sizes']}\")\n",
" print(f\"REGULARIZATION = {result['regularization']}\")\n",
" print(\"\\n50 EPOCHS\")\n",
" print(f\"train_accuracy = {round(result['checkpoint_train_accuracy'] * 100, 2)}%\")\n",
" print(f\"val_accuracy = {round(result['checkpoint_val_accuracy'] * 100, 2)}%\")\n",
" print(f\"test_accuracy = {round(result['checkpoint_test_accuracy'] * 100, 2)}%\")\n",
" print(f\"\\n{result['max_iter']} EPOCHS\")\n",
" print(f\"train_accuracy = {round(result['full_train_accuracy'] * 100, 2)}%\")\n",
" print(f\"val_accuracy = {round(result['checkpoint_val_accuracy'] * 100, 2)}%\")\n",
" print(f\"test_accuracy = {round(result['full_test_accuracy'] * 100, 2)}%\")\n",
"\n",
"def get_plot(result):\n",
" f = plt.figure(figsize=(12,6))\n",
" plt.plot(result['loss_curve'], label='loss')\n",
" plt.plot(result['accuracy_curve'], label='accuracy')\n",
" plt.legend(loc='best')\n",
" plt.xlabel('number of iterations')\n",
" plt.grid()\n",
" plt.show()\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"NEW_SIZE = 64\n",
"\n",
"ONE_LAYER = (286,)\n",
"\n",
"X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.05, random_state=42)\n",
"\n",
"all_results = []"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 200/200 [42:45<00:00, 12.83s/it]\n",
"100%|██████████| 200/200 [39:45<00:00, 11.93s/it]\n"
]
}
],
"source": [
"all_results.append(test_mlp(X_train, y_train, X_val, y_val, X_test, y_test, hidden_layer_sizes=ONE_LAYER, alpha=0.1, max_iter=200))\n",
"all_results.append(test_mlp(X_train, y_train, X_val, y_val, X_test, y_test, hidden_layer_sizes=ONE_LAYER, alpha=0.001, max_iter=200))"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "a0861788",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"NUMBER OF HIDDEN LAYERS = 1\n",
"HIDDEN LAYER SIZES = (286,)\n",
"REGULARIZATION = 0.1\n",
"\n",
"50 EPOCHS\n",
"train_accuracy = 68.78%\n",
"val_accuracy = 58.02%\n",
"test_accuracy = 53.67%\n",
"\n",
"200 EPOCHS\n",
"train_accuracy = 90.29%\n",
"val_accuracy = 58.02%\n",
"test_accuracy = 59.07%\n"
]
},
{
"data": {
"image/png": "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ah133HHRontfq1ev1jnnnHPYMZxwwgnNnodCIf3617/WiBEj1L17d6Wlpemdd95RUVGRJOmbb76Rz+fb72snJSXpxz/+sZ555hlJ0meffaY1a9bommuuOexY20KLdww0Dq5GV3MAAADgiOJOsVqeY/Xa7XDhhReqb9+++tOf/qTCwkKFw2ENHz5cfr9fycnJbe57oPWGYcjcp+t7a4OnpaY2b6F/+OGH9fjjj+uxxx7TiBEjlJqaqltuuUV+v/+gXleyupsfe+yx2rZtm5599lmdffbZ6tu37wH3Oxy0eMdApKv5LrqaAwAAAEcWw7C6e8fi0Y6u1Lt379a6det0zz336JxzztHQoUO1d+/e6PqRI0dq9erV2rNnT6v7jxw5ss3BynJyclRcXBx9vn79etXW1h4wro8//lgXXXSR/u3f/k2jRo3SgAED9N1330XXDxw4UMnJyW2+9ogRI3TCCSfoT3/6k+bNm6ef/OQnB3zdw0XhHQMZ0cHVKLwBAAAAxJ9u3bqpR48e+p//+R9t2LBB77//vmbMmBFdP2XKFOXn52vy5Mn6+OOP9f333+uf//ynli1bJkm6//779fzzz+v+++/XN998o6+++kq//e1vo/ufffbZeuKJJ/T5559r5cqV+ulPfyq3233AuAYOHKgFCxZo6dKl+uabb/Tv//7vKi0tja5PSkrSXXfdpTvvvFN//etftXHjRn3yySf6y1/+0uw4119/vR588EGZptlstPXOQuEdA5kNLd57avzyB8OxDQYAAAAA9uFwOPTCCy9o1apVGj58uG699VY9/PDD0fUej0fvvvuucnNzdf7552vEiBF68MEH5XQ6JUnjxo3TSy+9pNdff13HHnuszj777GYjj//ud79T7969dfrpp+vKK6/U7bffrpSUA3eFv+eee3T88cdr4sSJGjduXLT4b+ree+/Vbbfdpvvuu09Dhw7V5Zdfrp07dzbbZsqUKXK5XJoyZYqSkpIO4506ONzjHQMpLsnlMBQMmyqr9qkw68D3IQAAAABAVxo/frzWrl3bbFnT+7L79u2r//u//9vv/pdccokuueSSVtcVFhbqnXfeabasvLw8+nu/fv2irxWZokySunfv3mL+7305HA796le/0q9+9av9blNWVqb6+npdd911bR6ro9DiHQMOQ8pOs5q96W4OAAAAAF0jEAiopKRE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/v37KykpSZLV6n7aaacpKytLPXr00A9+8ANt3Lgxul///v0lSccdd5wMw9C4ceOi8Tftau7z+fSLX/xCubm5SkpK0mmnnaYVK1ZE10dytnDhQp1wwglKSUnRKaeconXr1kW3+eKLL3TWWWcpPT1dGRkZGj16tFauXNnq+wIAQHtReAMAjijPPfecUlNTtXz5cj300EN64IEHtGDBgnYfZ9asWXriiSe0dOlSbd26VT/60Y/02GOPad68eXrzzTf17rvv6g9/+EOL13a5XPr000/1+OOP65FHHtGf//zn6Prp06dr2bJleuGFF/Tll1/qsssu03nnnaf169dHt6mtrdVvf/tb/fnPf9bXX3+t3NzcFrFt375d559/vk488UR98cUXeuqpp/SXv/xFv/nNbyRZXbUfeOAB9erVS8XFxc2K1P25/PLLddttt2nYsGEqLi5WcXGxLr/8cknSZZddFr3wsGrVKh1//PE655xztGfPnuj+GzZs0D//+U+9/PLL0QsbNTU1mjFjhlauXKmFCxfK4XDo4osvVjgcliR9+umnkqT33ntPxcXFevnll1uN7c4779Q///lPPffcc/rss8909NFHa+LEic1eX5J+9atf6Xe/+51Wrlwpl8uln/zkJ9F1V111lXr16qUVK1Zo1apVuvvuu+V2uw/4vgAAcFBMAACOEGeeeaZ52mmnNVt24oknmnfddZdpmqa5adMmU5L5+eefR9fv3bvXlGR+8MEHpmma5gcffGBKMt97773oNnPmzDElmRs3bowu+/d//3dz4sSJzV576NChZjgcji676667zKFDh5qmaZpbtmwxnU6nuX379mbxnXPOOebMmTNN0zTNZ5991pRkrl69us3z/OUvf2kOHjy42Ws9+eSTZlpamhkKhUzTNM1HH33U7Nu3b5vHefbZZ83MzMzo8/vvv98cNWpUs20+/PBDMyMjw6yvr2+2/KijjjL/+Mc/Rvdzu93mzp0723y9Xbt2mZLMr776yjTN1vNhmqZ59dVXmxdddJFpmqZZXV1tut1u8+9//3t0vd/vNwsLC82HHnrINM3Wc/bmm2+aksy6ujrTNE0zPT3dnDt3bpvxAQBwqGjxBgAcUUaOHNnseUFBgXbu3HlYx8nLy1NKSooGDBjQbNm+xz355JNlGEb0+dixY7V+/XqFQiF99dVXCoVCGjRokNLS0qKPxYsXN+t+7fF4WpzDvr755huNHTu22Wudeuqpqq6u1rZt29p9rm354osvVF1drR49ejSLe9OmTc3i7tu3r3Jycprtu379ek2ZMkUDBgxQRkZGtMv7/rrPt2bjxo0KBAI69dRTo8vcbrdOOukkffPNN822bfq+FRQUSFI0RzNmzND111+v8ePH68EHH2wWOwAAh4vB1QAAR5R9uw8bhhHt2hwZpMxsct91IBA44HEMw2jzuAejurpaTqdTq1atktPpbLYuLS0t+ntycnKzgjrWqqurVVBQ0Oxe9IimU5Glpqa2WH/hhReqb9+++tOf/qTCwkKFw2ENHz5cfr+/U2LdN2eSojmaNWuWrrzySr355pt6++23df/99+uFF17QxRdf3CmxAACOLBTeAAA0iLTIFhcX67jjjpOkVue3PlTLly9v9vyTTz7RwIED5XQ6ddxxxykUCmnnzp06/fTTD+t1hg4dqn/+858yTTNaYH788cdKT09Xr169Dvm4Ho9HoVCo2bLjjz9eJSUlcrlc+x2krTW7d+/WunXr9Kc//Sl6vh999FGL15PU4jWbOuqoo+TxePTxxx+rb9++kqyLJStWrGj3vOmDBg3SoEGDdOutt2rKlCl69tlnKbwBAB2CruYAADRITk7WySefrAcffFDffPONFi9erHvuuafDjl9UVKQZM2Zo3bp1ev755/WHP/xBN998sySr6Lvqqqs0depUvfzyy9q0aZM+/fRTzZkzR2+++Wa7XufnP/+5tm7dqptuuknffvutXnvtNd1///2aMWPGIU09FtGvXz9t2rRJq1evVllZmXw+n8aPH6+xY8dq8uTJevfdd7V582YtXbpUv/rVr9ocFbxbt27q0aOH/ud//kcbNmzQ+++/rxkzZjTbJjc3V8nJyZo/f75KS0tVUVHR4jipqan62c9+pjvuuEPz58/X2rVrdcMNN6i2tlbXXXfdQZ1XXV2dpk+frkWLFmnLli36+OOPtWLFCg0dOrR9bxAAAPtB4Q0AQBPPPPOMgsGgRo8erVtuuSU6EnhHmDp1qurq6nTSSSdp2rRpuvnmm3XjjTdG1z/77LOaOnWqbrvtNg0ePFiTJ0/WihUr1KdPn3a9Ts+ePfXWW2/p008/1ahRo/TTn/5U11133WFfRLj00kt13nnn6ayzzlJOTo6ef/55GYaht956S2eccYauvfZaDRo0SFdccYW2bNmivLy8/R7L4XDohRde0KpVqzR8+HDdeuutevjhh5tt43K59Pvf/15//OMfVVhYqIsuuqjVYz344IO69NJL9eMf/1jHH3+8NmzYoHfeeUfdunU7qPNyOp3avXu3pk6dqkGDBulHP/qRJk2apNmzZx/8mwMAQBsMs+mNbAAAAAAAoEPR4g0AAAAAQCei8AYAAAAAoBNReAMAAAAA0IkovAEAAAAA6EQU3gAAAAAAdCIKbwAAAAAAOhGFNwAAAAAAnYjCGwAAAACATkThDQAAAABAJ6LwBgAAAACgE1F4AwAAAADQiSi8AQAAAADoRP8fcFHqkosJ9XEAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"NUMBER OF HIDDEN LAYERS = 1\n",
"HIDDEN LAYER SIZES = (286,)\n",
"REGULARIZATION = 0.001\n",
"\n",
"50 EPOCHS\n",
"train_accuracy = 74.1%\n",
"val_accuracy = 56.79%\n",
"test_accuracy = 50.19%\n",
"\n",
"200 EPOCHS\n",
"train_accuracy = 92.63%\n",
"val_accuracy = 56.79%\n",
"test_accuracy = 54.44%\n"
]
},
{
"data": {
"image/png": "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uEAJCQnq1KmT7rrrLlVUVLTkpRwRgncLeeuttzRt2jQ9+OCDWrVqlYYOHapx48Zpz549kS5aq7VkyRLdcsst+uqrr7RgwQJ5vV6NHTtWxcXFNba78cYblZOTE3o8+uijESpx6zVw4MAadfDFF1+E1v3ud7/Tf/7zH7399ttasmSJdu/erUsuuSSCpW29vv322xr1tGDBAknSZZddFtqGz1PLKy4u1tChQ/Xcc8/Vuf7RRx/V008/rRdeeEFff/21EhMTNW7cOJWVlYW2ufrqq7V27VotWLBA//3vf7V06VLddNNNLXUJrUJD9VRSUqJVq1bp/vvv16pVq/TOO+9o48aNuuiii2pt+9BDD9X4jP32t79tieK3Go19niRp/PjxNergzTffrLGez1PLaKyuqtdRTk6OXn31VRmGoUsvvbTGdnymwudI/hZv7O88n8+nCy64QB6PR8uWLdPrr7+u2bNn64EHHojEJTXMRIs45ZRTzFtuuSX02ufzmRkZGeasWbMiWCpUt2fPHlOSuWTJktCys88+27ztttsiVyiYDz74oDl06NA61+Xn55tOp9N8++23Q8vWr19vSjKXL1/eQiVEfW677Tazd+/ept/vN02Tz1M0kGS+++67odd+v99MS0szH3vssdCy/Px80+12m2+++aZpmqa5bt06U5L57bffhrb56KOPTMMwzF27drVY2VuTw+upLt98840pyczKygot6969u/nkk0+Gt3AIqauepkyZYl588cX17sPnKTKO5DN18cUXm+eee26NZXymWtbhf4sfyd95H374oWmz2czc3NzQNs8//7yZkpJilpeXt+wFNIIW7xbg8Xi0cuVKjRkzJrTMZrNpzJgxWr58eQRLhuoKCgokSe3bt6+x/B//+Ic6duyoQYMGafr06SopKYlE8Vq1TZs2KSMjQ7169dLVV1+t7OxsSdLKlSvl9XprfLaOP/54devWjc9WhHk8Hr3xxhv61a9+JcMwQsv5PEWXbdu2KTc3t8ZnqE2bNhoxYkToM7R8+XK1bdtWJ510UmibMWPGyGaz6euvv27xMiOgoKBAhmGobdu2NZY/8sgj6tChg4YNG6bHHnssKrtbxrrFixerU6dO6tevn26++Wbt378/tI7PU3TKy8vTBx98oOuvv77WOj5TLefwv8WP5O+85cuXa/DgwercuXNom3Hjxqmw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",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for result in all_results:\n",
" print_result(result)\n",
" get_plot(result)"
]
}
],
"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.9.6"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}