├── README.md ├── model_evaluation.ipynb ├── model_summary_CNN_10def.ipynb ├── classifier_on_action.ipynb └── Weld_def_10cls_small_VGGnet.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Machine-vision-based-defect-detection-in-welding-process 2 | Technological development facilitated to fulfill the need to get a high-quality welding. The industries such as oil,aerospace and other important industries rely on reliable welding operations. Whereas the Radiographic testing is a well-established non-destructive testing method to detect subsurface welding defects. Aim of this research is to implement an automatic computer-aided identification system to recognize different types of welding defects in radiographic images which includes defect detection and classification. Deep neural network is used to build an efficient framework for weld defect classification. While on the other hand unavailability of standard preprocessed datasets, very limited data available in literature, imbalanced classification, overfitting during the training process and computational efficiency are the challenges which need to be encountered in this research. 3 | 4 | ## My research paper on this work 5 | https://ieeexplore.ieee.org/abstract/document/9467263 6 | 7 | ![image](https://user-images.githubusercontent.com/54509188/127798179-54e41259-0f75-490b-939e-bb597d439cae.png) 8 | ![image](https://user-images.githubusercontent.com/54509188/127798265-00d6c3ad-0ade-4c37-abe8-7d64eb9540e5.png) 9 | ![image](https://user-images.githubusercontent.com/54509188/127798317-610c5567-6e9c-41f4-bbe3-30b319895c2a.png) 10 | ![image](https://user-images.githubusercontent.com/54509188/127798379-041a74c4-ed53-4c6f-8752-8e868282db8f.png) 11 | ![image](https://user-images.githubusercontent.com/54509188/127798457-afb55d77-e7ad-4b07-ba68-2826d945ca0a.png) 12 | -------------------------------------------------------------------------------- /model_evaluation.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "model_evaluation.ipynb", 7 | "provenance": [], 8 | "mount_file_id": "1cQnOzxRufL6yqlPbvtJGFk_28QDbmhVD", 9 | "authorship_tag": "ABX9TyNwIvER85mRzyjjw+qJmAkp", 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | }, 16 | "accelerator": "GPU" 17 | }, 18 | "cells": [ 19 | { 20 | "cell_type": "markdown", 21 | "metadata": { 22 | "id": "view-in-github", 23 | "colab_type": "text" 24 | }, 25 | "source": [ 26 | "\"Open" 27 | ] 28 | }, 29 | { 30 | "cell_type": "markdown", 31 | "metadata": { 32 | "id": "myxsc_lo-COs", 33 | "colab_type": "text" 34 | }, 35 | "source": [ 36 | "import the necessary packages" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "metadata": { 42 | "id": "QPG9fAf2-G5f", 43 | "colab_type": "code", 44 | "colab": {} 45 | }, 46 | "source": [ 47 | "from keras.preprocessing.image import img_to_array\n", 48 | "from keras.models import load_model\n", 49 | "from sklearn.metrics import classification_report\n", 50 | "from sklearn.model_selection import train_test_split\n", 51 | "import numpy as np\n", 52 | "import argparse\n", 53 | "import imutils\n", 54 | "from imutils import paths\n", 55 | "import pickle\n", 56 | "import cv2\n", 57 | "from google.colab.patches import cv2_imshow\n", 58 | "import os\n", 59 | "import random" 60 | ], 61 | "execution_count": 3, 62 | "outputs": [] 63 | }, 64 | { 65 | "cell_type": "markdown", 66 | "metadata": { 67 | "id": "mxkmJ9Ns-LUW", 68 | "colab_type": "text" 69 | }, 70 | "source": [ 71 | "loading the image data" 72 | ] 73 | }, 74 | { 75 | "cell_type": "code", 76 | "metadata": { 77 | "id": "Usy5GwVe_ZQD", 78 | "colab_type": "code", 79 | "colab": { 80 | "base_uri": "https://localhost:8080/", 81 | "height": 54 82 | }, 83 | "outputId": "536dcdc7-0883-4646-8eb5-aad050f7b449" 84 | }, 85 | "source": [ 86 | "# initialize the number of epochs to train for, initial learning rate,\n", 87 | "# batch size, and image dimensions\n", 88 | "EPOCHS = 400\n", 89 | "INIT_LR = 1e-3\n", 90 | "BS = 32\n", 91 | "IMAGE_DIMS = (96, 96, 3)\n", 92 | "\n", 93 | "# initialize the data and labels\n", 94 | "data = []\n", 95 | "labels = []\n", 96 | "\n", 97 | "# grab the image paths and randomly shuffle them\n", 98 | "print(\"[INFO] loading images...\")\n", 99 | "imagePaths = sorted(list(paths.list_images('/content/drive/My Drive/Colab Notebooks/weld_dataset_10cls')))\n", 100 | "random.seed(42)\n", 101 | "random.shuffle(imagePaths)\n", 102 | "\n", 103 | "# loop over the input images\n", 104 | "for imagePath in imagePaths:\n", 105 | " # load the image, pre-process it, and store it in the data list\n", 106 | " image = cv2.imread(imagePath)\n", 107 | " image = cv2.resize(image, (IMAGE_DIMS[1], IMAGE_DIMS[0]))\n", 108 | " image = img_to_array(image)\n", 109 | " data.append(image)\n", 110 | " # extract the class label from the image path and update the\n", 111 | " # labels list\n", 112 | " label = imagePath.split(os.path.sep)[-2]\n", 113 | " labels.append(label)\n", 114 | "\n", 115 | "# scale the raw pixel intensities to the range [0, 1]\n", 116 | "data = np.array(data, dtype=\"float\") / 255.0\n", 117 | "labels = np.array(labels)\n", 118 | "print(\"[INFO] data matrix: {:.2f}MB\".format(\n", 119 | " data.nbytes / (1024 * 1000.0)))\n", 120 | "\n", 121 | "# partition the data into training and testing splits using 80% of\n", 122 | "# the data for training and the remaining 20% for testing\n", 123 | "(trainX, testX, trainY, testY) = train_test_split(data,\n", 124 | " labels, test_size=0.2, random_state=42)" 125 | ], 126 | "execution_count": 4, 127 | "outputs": [ 128 | { 129 | "output_type": "stream", 130 | "text": [ 131 | "[INFO] loading images...\n", 132 | "[INFO] data matrix: 194.62MB\n" 133 | ], 134 | "name": "stdout" 135 | } 136 | ] 137 | }, 138 | { 139 | "cell_type": "markdown", 140 | "metadata": { 141 | "id": "D0UFRGM7AW3F", 142 | "colab_type": "text" 143 | }, 144 | "source": [ 145 | "load the trained convolutional neural network and the label\n", 146 | "binarizer" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "metadata": { 152 | "id": "Oq4rEdSjAZFg", 153 | "colab_type": "code", 154 | "colab": { 155 | "base_uri": "https://localhost:8080/", 156 | "height": 35 157 | }, 158 | "outputId": "08de7624-2ee8-448a-c585-ae05303667c7" 159 | }, 160 | "source": [ 161 | "print(\"[INFO] loading network...\")\n", 162 | "model = load_model('/content/drive/My Drive/Colab Notebooks/Results/wdef_10cls_400ep/Wld_10cls.model')\n", 163 | "lb = pickle.loads(open('/content/drive/My Drive/Colab Notebooks/Results/wdef_10cls_400ep/lb.pickle', \"rb\").read())" 164 | ], 165 | "execution_count": 5, 166 | "outputs": [ 167 | { 168 | "output_type": "stream", 169 | "text": [ 170 | "[INFO] loading network...\n" 171 | ], 172 | "name": "stdout" 173 | } 174 | ] 175 | }, 176 | { 177 | "cell_type": "markdown", 178 | "metadata": { 179 | "id": "o_o4LFenB3BA", 180 | "colab_type": "text" 181 | }, 182 | "source": [ 183 | "making prediction and taking the classification report" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "metadata": { 189 | "id": "wQbtikjpCFS5", 190 | "colab_type": "code", 191 | "colab": { 192 | "base_uri": "https://localhost:8080/", 193 | "height": 246 194 | }, 195 | "outputId": "ce64f2fa-4418-4345-e314-93c9169572c9" 196 | }, 197 | "source": [ 198 | "# make predictions on the testing set\n", 199 | "print(\"[INFO] evaluating network...\")\n", 200 | "predIdxs = model.predict(testX, batch_size=BS)\n", 201 | "\n", 202 | "# for each image in the testing set we need to find the index of the\n", 203 | "# label with corresponding largest predicted probability\n", 204 | "predIdxs = np.argmax(predIdxs, axis=1)\n", 205 | "\n", 206 | "# show a nicely formatted classification report\n", 207 | "print(classification_report(testY.argmax(axis=1), predIdxs,\n", 208 | "\ttarget_names=lb.classes_))" 209 | ], 210 | "execution_count": 10, 211 | "outputs": [ 212 | { 213 | "output_type": "stream", 214 | "text": [ 215 | "[INFO] evaluating network...\n" 216 | ], 217 | "name": "stdout" 218 | }, 219 | { 220 | "output_type": "error", 221 | "ename": "AxisError", 222 | "evalue": "ignored", 223 | "traceback": [ 224 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 225 | "\u001b[0;31mAxisError\u001b[0m Traceback (most recent call last)", 226 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# show a nicely formatted classification report\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m print(classification_report(testY.argmax(axis=1), predIdxs,\n\u001b[0m\u001b[1;32m 11\u001b[0m \ttarget_names=lb.classes_))\n", 227 | "\u001b[0;31mAxisError\u001b[0m: axis 1 is out of bounds for array of dimension 1" 228 | ] 229 | } 230 | ] 231 | } 232 | ] 233 | } -------------------------------------------------------------------------------- /model_summary_CNN_10def.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "model_summary.ipynb", 7 | "provenance": [], 8 | "mount_file_id": "1-RS4qG07CiGX6lGaTeMCKqsmGJZsR0eI", 9 | "authorship_tag": "ABX9TyO6/f6tTUP9hHF7QhPO2E5/", 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "\"Open" 26 | ] 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "metadata": { 31 | "id": "s9kJvkhCmbD-", 32 | "colab_type": "text" 33 | }, 34 | "source": [ 35 | "import the necessary libraries" 36 | ] 37 | }, 38 | { 39 | "cell_type": "code", 40 | "metadata": { 41 | "id": "SSvxl2vWmNpv", 42 | "colab_type": "code", 43 | "colab": {} 44 | }, 45 | "source": [ 46 | "from keras.preprocessing.image import img_to_array\n", 47 | "from keras.models import load_model\n", 48 | "import numpy as np\n", 49 | "import argparse\n", 50 | "import imutils\n", 51 | "import pickle\n", 52 | "import cv2\n", 53 | "from google.colab.patches import cv2_imshow\n", 54 | "import os" 55 | ], 56 | "execution_count": 1, 57 | "outputs": [] 58 | }, 59 | { 60 | "cell_type": "markdown", 61 | "metadata": { 62 | "id": "I5OHlNPFmwp1", 63 | "colab_type": "text" 64 | }, 65 | "source": [ 66 | "load the trained convolutional neural network" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "metadata": { 72 | "id": "F3rfsHSmmy3l", 73 | "colab_type": "code", 74 | "colab": { 75 | "base_uri": "https://localhost:8080/", 76 | "height": 34 77 | }, 78 | "outputId": "f93f6b47-de4e-42c5-c9ea-8ccd734fd763" 79 | }, 80 | "source": [ 81 | "print(\"[INFO] loading network...\")\n", 82 | "model = load_model('/content/drive/My Drive/Colab Notebooks/Results/wdef_10cls_400ep/Wld_10cls.model')" 83 | ], 84 | "execution_count": 2, 85 | "outputs": [ 86 | { 87 | "output_type": "stream", 88 | "text": [ 89 | "[INFO] loading network...\n" 90 | ], 91 | "name": "stdout" 92 | } 93 | ] 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "metadata": { 98 | "id": "dILtHbasm6lI", 99 | "colab_type": "text" 100 | }, 101 | "source": [ 102 | "getting the network summary" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "metadata": { 108 | "id": "cHq_f5Yhm-aU", 109 | "colab_type": "code", 110 | "colab": { 111 | "base_uri": "https://localhost:8080/", 112 | "height": 1000 113 | }, 114 | "outputId": "3407a3d3-3c05-491e-d715-263af0c1d991" 115 | }, 116 | "source": [ 117 | "model.summary()" 118 | ], 119 | "execution_count": 3, 120 | "outputs": [ 121 | { 122 | "output_type": "stream", 123 | "text": [ 124 | "Model: \"sequential_7\"\n", 125 | "_________________________________________________________________\n", 126 | "Layer (type) Output Shape Param # \n", 127 | "=================================================================\n", 128 | "conv2d_31 (Conv2D) (None, 96, 96, 32) 896 \n", 129 | "_________________________________________________________________\n", 130 | "activation_43 (Activation) (None, 96, 96, 32) 0 \n", 131 | "_________________________________________________________________\n", 132 | "batch_normalization_37 (Batc (None, 96, 96, 32) 128 \n", 133 | "_________________________________________________________________\n", 134 | "max_pooling2d_19 (MaxPooling (None, 32, 32, 32) 0 \n", 135 | "_________________________________________________________________\n", 136 | "dropout_25 (Dropout) (None, 32, 32, 32) 0 \n", 137 | "_________________________________________________________________\n", 138 | "conv2d_32 (Conv2D) (None, 32, 32, 64) 18496 \n", 139 | "_________________________________________________________________\n", 140 | "activation_44 (Activation) (None, 32, 32, 64) 0 \n", 141 | "_________________________________________________________________\n", 142 | "batch_normalization_38 (Batc (None, 32, 32, 64) 256 \n", 143 | "_________________________________________________________________\n", 144 | "conv2d_33 (Conv2D) (None, 32, 32, 64) 36928 \n", 145 | "_________________________________________________________________\n", 146 | "activation_45 (Activation) (None, 32, 32, 64) 0 \n", 147 | "_________________________________________________________________\n", 148 | "batch_normalization_39 (Batc (None, 32, 32, 64) 256 \n", 149 | "_________________________________________________________________\n", 150 | "max_pooling2d_20 (MaxPooling (None, 16, 16, 64) 0 \n", 151 | "_________________________________________________________________\n", 152 | "dropout_26 (Dropout) (None, 16, 16, 64) 0 \n", 153 | "_________________________________________________________________\n", 154 | "conv2d_34 (Conv2D) (None, 16, 16, 128) 73856 \n", 155 | "_________________________________________________________________\n", 156 | "activation_46 (Activation) (None, 16, 16, 128) 0 \n", 157 | "_________________________________________________________________\n", 158 | "batch_normalization_40 (Batc (None, 16, 16, 128) 512 \n", 159 | "_________________________________________________________________\n", 160 | "conv2d_35 (Conv2D) (None, 16, 16, 128) 147584 \n", 161 | "_________________________________________________________________\n", 162 | "activation_47 (Activation) (None, 16, 16, 128) 0 \n", 163 | "_________________________________________________________________\n", 164 | "batch_normalization_41 (Batc (None, 16, 16, 128) 512 \n", 165 | "_________________________________________________________________\n", 166 | "max_pooling2d_21 (MaxPooling (None, 8, 8, 128) 0 \n", 167 | "_________________________________________________________________\n", 168 | "dropout_27 (Dropout) (None, 8, 8, 128) 0 \n", 169 | "_________________________________________________________________\n", 170 | "flatten_7 (Flatten) (None, 8192) 0 \n", 171 | "_________________________________________________________________\n", 172 | "dense_13 (Dense) (None, 1024) 8389632 \n", 173 | "_________________________________________________________________\n", 174 | "activation_48 (Activation) (None, 1024) 0 \n", 175 | "_________________________________________________________________\n", 176 | "batch_normalization_42 (Batc (None, 1024) 4096 \n", 177 | "_________________________________________________________________\n", 178 | "dropout_28 (Dropout) (None, 1024) 0 \n", 179 | "_________________________________________________________________\n", 180 | "dense_14 (Dense) (None, 10) 10250 \n", 181 | "_________________________________________________________________\n", 182 | "activation_49 (Activation) (None, 10) 0 \n", 183 | "=================================================================\n", 184 | "Total params: 8,683,402\n", 185 | "Trainable params: 8,680,522\n", 186 | "Non-trainable params: 2,880\n", 187 | "_________________________________________________________________\n" 188 | ], 189 | "name": "stdout" 190 | } 191 | ] 192 | } 193 | ] 194 | } -------------------------------------------------------------------------------- /classifier_on_action.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Untitled6.ipynb", 7 | "provenance": [], 8 | "toc_visible": true, 9 | "mount_file_id": "1P8mpkwsAh4o_CLC3jiU_xQ0ECUCE1-xZ", 10 | "authorship_tag": "ABX9TyOuv/qFahwrAmg46U44cozv", 11 | "include_colab_link": true 12 | }, 13 | "kernelspec": { 14 | "name": "python3", 15 | "display_name": "Python 3" 16 | } 17 | }, 18 | "cells": [ 19 | { 20 | "cell_type": "markdown", 21 | "metadata": { 22 | "id": "view-in-github", 23 | "colab_type": "text" 24 | }, 25 | "source": [ 26 | "\"Open" 27 | ] 28 | }, 29 | { 30 | "cell_type": "markdown", 31 | "metadata": { 32 | "id": "Qf4mjm9MU1nB", 33 | "colab_type": "text" 34 | }, 35 | "source": [ 36 | "## import the necessary packages" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "metadata": { 42 | "id": "cvsBGmOiU_wv", 43 | "colab_type": "code", 44 | "colab": {} 45 | }, 46 | "source": [ 47 | "from keras.preprocessing.image import img_to_array\n", 48 | "from keras.models import load_model\n", 49 | "import numpy as np\n", 50 | "import argparse\n", 51 | "import imutils\n", 52 | "import pickle\n", 53 | "import cv2\n", 54 | "from google.colab.patches import cv2_imshow\n", 55 | "import os" 56 | ], 57 | "execution_count": 139, 58 | "outputs": [] 59 | }, 60 | { 61 | "cell_type": "markdown", 62 | "metadata": { 63 | "id": "BIdhodvKVHiS", 64 | "colab_type": "text" 65 | }, 66 | "source": [ 67 | "# load the image" 68 | ] 69 | }, 70 | { 71 | "cell_type": "code", 72 | "metadata": { 73 | "id": "HdWzt8EcVOXY", 74 | "colab_type": "code", 75 | "colab": {} 76 | }, 77 | "source": [ 78 | "image_path='/content/drive/My Drive/Colab Notebooks/weld_dataset_10cls/cap undercut/0000089.jpg'\n", 79 | "image = cv2.imread(image_path)\n", 80 | "output = image.copy()" 81 | ], 82 | "execution_count": 140, 83 | "outputs": [] 84 | }, 85 | { 86 | "cell_type": "markdown", 87 | "metadata": { 88 | "id": "UdMA5IlVVUqB", 89 | "colab_type": "text" 90 | }, 91 | "source": [ 92 | "# pre-process the image for classification" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "metadata": { 98 | "id": "TfUShK7MVZ34", 99 | "colab_type": "code", 100 | "colab": {} 101 | }, 102 | "source": [ 103 | "image = cv2.resize(image, (96, 96))\n", 104 | "image = image.astype(\"float\") / 255.0\n", 105 | "image = img_to_array(image)\n", 106 | "image = np.expand_dims(image, axis=0)" 107 | ], 108 | "execution_count": 141, 109 | "outputs": [] 110 | }, 111 | { 112 | "cell_type": "markdown", 113 | "metadata": { 114 | "id": "yocuWMylVjsk", 115 | "colab_type": "text" 116 | }, 117 | "source": [ 118 | "# load the trained convolutional neural network and the label\n", 119 | "# binarizer" 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "metadata": { 125 | "id": "y4OLF_8YV619", 126 | "colab_type": "code", 127 | "colab": { 128 | "base_uri": "https://localhost:8080/", 129 | "height": 34 130 | }, 131 | "outputId": "8779169a-e32d-4639-e7f0-928b8dac2bf4" 132 | }, 133 | "source": [ 134 | "print(\"[INFO] loading network...\")\n", 135 | "model = load_model('/content/drive/My Drive/Colab Notebooks/Results/wdef_10cls_400ep/Wld_10cls.model')\n", 136 | "lb = pickle.loads(open('/content/drive/My Drive/Colab Notebooks/Results/wdef_10cls_400ep/lb.pickle', \"rb\").read())" 137 | ], 138 | "execution_count": 142, 139 | "outputs": [ 140 | { 141 | "output_type": "stream", 142 | "text": [ 143 | "[INFO] loading network...\n" 144 | ], 145 | "name": "stdout" 146 | } 147 | ] 148 | }, 149 | { 150 | "cell_type": "markdown", 151 | "metadata": { 152 | "id": "it8735b7WW_Z", 153 | "colab_type": "text" 154 | }, 155 | "source": [ 156 | "# classify the input image" 157 | ] 158 | }, 159 | { 160 | "cell_type": "code", 161 | "metadata": { 162 | "id": "55jUu0jLWilT", 163 | "colab_type": "code", 164 | "colab": { 165 | "base_uri": "https://localhost:8080/", 166 | "height": 72 167 | }, 168 | "outputId": "9fedfe83-8794-4026-c019-5043d964b2c3" 169 | }, 170 | "source": [ 171 | "print(\"[INFO] classifying image...\")\n", 172 | "proba = model.predict(image)[0]\n", 173 | "idx = np.argmax(proba)\n", 174 | "label = lb.classes_[idx]" 175 | ], 176 | "execution_count": 143, 177 | "outputs": [ 178 | { 179 | "output_type": "stream", 180 | "text": [ 181 | "[INFO] classifying image...\n", 182 | "WARNING:tensorflow:11 out of the last 11 calls to .predict_function at 0x7f128a6738c8> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/tutorials/customization/performance#python_or_tensor_args and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n" 183 | ], 184 | "name": "stdout" 185 | } 186 | ] 187 | }, 188 | { 189 | "cell_type": "markdown", 190 | "metadata": { 191 | "id": "MSga2lJ5Wpks", 192 | "colab_type": "text" 193 | }, 194 | "source": [ 195 | "# we'll mark our prediction as \"correct\" of the input image filename contains the predicted label text (obviously this makes the assumption that you have named your testing image files this way)" 196 | ] 197 | }, 198 | { 199 | "cell_type": "code", 200 | "metadata": { 201 | "id": "JCnACPewW2qJ", 202 | "colab_type": "code", 203 | "colab": {} 204 | }, 205 | "source": [ 206 | "filename = image_path[image_path.rfind(os.path.sep) + 1:]\n", 207 | "\n", 208 | "#correct = \"correct\" if filename.rfind(label) != -1 else \"incorrect\"" 209 | ], 210 | "execution_count": 144, 211 | "outputs": [] 212 | }, 213 | { 214 | "cell_type": "markdown", 215 | "metadata": { 216 | "id": "nm5qKZeMXAuB", 217 | "colab_type": "text" 218 | }, 219 | "source": [ 220 | "# build the label and draw the label on the image" 221 | ] 222 | }, 223 | { 224 | "cell_type": "code", 225 | "metadata": { 226 | "id": "Gl-iMJtcW-IY", 227 | "colab_type": "code", 228 | "colab": { 229 | "base_uri": "https://localhost:8080/", 230 | "height": 868 231 | }, 232 | "outputId": "6cdb5b5a-ad9f-4354-e5cd-89aef1ca1bfe" 233 | }, 234 | "source": [ 235 | "label = \"{}: {:.2f}% \".format(label, proba[idx] * 100)\n", 236 | "output = imutils.resize(output, width=400)\n", 237 | "cv2.putText(output, label, (10, 25), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)" 238 | ], 239 | "execution_count": 145, 240 | "outputs": [ 241 | { 242 | "output_type": "execute_result", 243 | "data": { 244 | "text/plain": [ 245 | "array([[[ 42, 42, 42],\n", 246 | " [ 42, 42, 42],\n", 247 | " [ 42, 42, 42],\n", 248 | " ...,\n", 249 | " [108, 108, 108],\n", 250 | " [108, 108, 108],\n", 251 | " [108, 108, 108]],\n", 252 | "\n", 253 | " [[ 42, 42, 42],\n", 254 | " [ 42, 42, 42],\n", 255 | " [ 42, 42, 42],\n", 256 | " ...,\n", 257 | " [108, 108, 108],\n", 258 | " [108, 108, 108],\n", 259 | " [108, 108, 108]],\n", 260 | "\n", 261 | " [[ 42, 42, 42],\n", 262 | " [ 42, 42, 42],\n", 263 | " [ 42, 42, 42],\n", 264 | " ...,\n", 265 | " [108, 108, 108],\n", 266 | " [108, 108, 108],\n", 267 | " [108, 108, 108]],\n", 268 | "\n", 269 | " ...,\n", 270 | "\n", 271 | " [[145, 145, 145],\n", 272 | " [145, 145, 145],\n", 273 | " [145, 145, 145],\n", 274 | " ...,\n", 275 | " [110, 110, 110],\n", 276 | " [110, 110, 110],\n", 277 | " [110, 110, 110]],\n", 278 | "\n", 279 | " [[145, 145, 145],\n", 280 | " [145, 145, 145],\n", 281 | " [145, 145, 145],\n", 282 | " ...,\n", 283 | " [110, 110, 110],\n", 284 | " [110, 110, 110],\n", 285 | " [110, 110, 110]],\n", 286 | "\n", 287 | " [[145, 145, 145],\n", 288 | " [145, 145, 145],\n", 289 | " [145, 145, 145],\n", 290 | " ...,\n", 291 | " [110, 110, 110],\n", 292 | " [110, 110, 110],\n", 293 | " [110, 110, 110]]], dtype=uint8)" 294 | ] 295 | }, 296 | "metadata": { 297 | "tags": [] 298 | }, 299 | "execution_count": 145 300 | } 301 | ] 302 | }, 303 | { 304 | "cell_type": "markdown", 305 | "metadata": { 306 | "id": "CCbhic_sXTlr", 307 | "colab_type": "text" 308 | }, 309 | "source": [ 310 | "# show the output image" 311 | ] 312 | }, 313 | { 314 | "cell_type": "code", 315 | "metadata": { 316 | "id": "uL8vHP3fXY7x", 317 | "colab_type": "code", 318 | "colab": { 319 | "base_uri": "https://localhost:8080/", 320 | "height": 448 321 | }, 322 | "outputId": "c4cee088-f587-42a0-936a-47356e840506" 323 | }, 324 | "source": [ 325 | "print(\"[INFO] {}\".format(label))\n", 326 | "cv2_imshow( output)\n", 327 | "cv2.waitKey(0)" 328 | ], 329 | "execution_count": 146, 330 | "outputs": [ 331 | { 332 | "output_type": "stream", 333 | "text": [ 334 | "[INFO] cap undercut: 93.51% \n" 335 | ], 336 | "name": "stdout" 337 | }, 338 | { 339 | "output_type": "display_data", 340 | "data": { 341 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAGMCAIAAAB7yWN7AABj8ElEQVR4nO29W7Alx3UdmFWnzjn30ff2AwABiBha5sgkge4GQJEAH6MJi7JFj03aBGXZlOSwwvPhiZF/bE2EFTH2/IxjHCPTPyPH2PPhiRjZVIStt0jbEiXZfEmmSFAPvEl9jId62JDUpEA0+va951nzUejd62TunTuzTp1zb3Xv9dGRXTcrMysra59cK3fuLB555BEXoK7r8KJzrqqqJlEUxWAwaNLL5XK5XDbp6XTa3FvX9fXr1ylzWZZNend3dzQaNelLly4114uiGA6HVDXVPh6PqZYLFy4UReGcGw6H9957L2XY2dmhDOPxmEpuMg8Gg729PWo8tX84HDYZ8KGalngJ5xw1vimQMrCZMY2g69i3UlptBpZGnY9dx15EUIbEzHR9Pp/TxcViQRepkPl8TmOAMmPJJycndH0ymTTXl8vlzZs3m4uz2WwymTTp6XRKJR8fHzeJxWJxdHREGSjzV7/6Vbr+h3/4h9ROqm5/f5/Gw8WLF5tRVxQFDhIaUbu7uzSi9vb2sP9DqO895UZ2PKiji33vTv6Ku0XWV8Aiq52xd2AwGAxnCmawDAZDb1CxV4uiiM/TIhPg+I3e9DUkSp3MY9UZaV3XWbPWeAnrl5ZSi5SBTYf/bVF1mM4tk218WZZEr5BZ00XMUJalWimykiYtdQXLebGTJaavotsx4HV+WLKXITIMtobNfQWIimXm3tdI13GcsTfS9bquMQMaKRI+FotFcx0VsbBASrDdIQ21Jl2WZfwu72I6Ic9l7O2+eUngkDKvb/fZEiTjxdaCfchmrqrbo47UseVySeImvjXvMyB1jK6UZUkqpGcKKQ8pO4vFIpTVcPgNBgNKS4OHRetvVe1naRLA9i1qWFswH4jtVGeU0GAw9AZmsAwGQ29QSXwnS8NCGQInpQSVEtJF5GUS45Cuo/DRFCKxPNWfgIX0V4lBq4RO6uR2hC7lLpVcxK9LNFAC22ODwYDeFDrHkGsL1ohuDVR7Dc4cWAt6riDrREpIIw19NXDksJ4rKlorOJKnwpYJXV/AGyypv1jhxrvYvHtPUMcRj6OHDBZdjKhj8Sah4sBqWCnjT9Ww0hWx7SNlxSO9NO+tqVXHu85rG+pZNAbQIY4wGAxYg8VKq4PBIDRYnpRGBgvB6v1Zr7X1GGg3Y8AbT0tlPxXwq4QGxNUrV59/4fnTbkUMb3vr277y21/pvNh3v+vdTeLzv/Z5Kc/7vv190p9+4ZO/oFbxkb/6Efb6P/u//lnkrn/6f/7Tv/Hf/w3pr09/8WlKP/hND4YZ/uDlP3jgwQfUthnOIEzDUvDYo485565euXraDRHxtre+jf7tCk+884l3Pfku+u973/Pe977nvWG2iLVyzv35/+7Px2v50F/6kPSnv/UDf0v60z/5kX/inPvR/+dH2b+itXLOvfxfXv7ata816ZPjk1f++JU/ePkPnHPNv4beYWWGJdFDNR2W4ElR4b6NJk1bcyiDxwdR/CpuudhgLexkvp0M4RLYH4tupajcWjAD62SU24wn3vkEe/2973nv53/t80ivPvXpT33H+75DKufnf+HnlzUjaLqEvv3n//c/d0PnnENhy92yVl5RVNpnPv0ZtrST45PwIulZ3shBUrkFso8OPa031mQppL3GKVDCUMHtiv+H5qZbZeFugGetvvj0F72p1ud+5XOY4VOf/pRzbrFYNB/bn3v/n1OrCAWaH/+JH6/rejabNf9dLBaL8nWliazGD/3dH0p/ij/97X/6s5/5bCTDvffdWz/Ib95M98XrBK1rQUctLOGOtFME07AMPJ7+0tPN0P/i019cLpfvefd71FvQWv38L/z8Bhu3Hu69797TboKhJfIM1rPPPEvpd7zzHVK2F55/gdJvfOiNL/+Xl+97w32Y4T///n9+40NvfPGFF+nKe97LfA/qRPcf/K//4If/0Q+HeT7wFz6AH8z7vv19n/7Mp5v0t/0330bXv/DFL7Dtb3QrFY88fDvQxUtffonN0FynnF62eAmPPPzIl7/y5bDYh9/2MEnsKF01pb340u1eJent2eeedV0j8kvedH46U0bp/WM/9jF2ovHRf/zRH/q7P/S3/87f/pH/40fUtuH06pve+E2vvPLK8c3XIz2E1qqTKUlrRwT2xjt7lrQOiitXrryeEhygmqk+GhfE429/HP/7zG89I9XUDJSyLP/oD/9IyvOud78Ld1rs7u5S+vz5803zhsPh/fff75z76D/6aPOnj/7jjzrn7rnnniYwyF/7vr/WXP/kL36yLMv3f+f7peqcc1/44hdIJSmK4lvf/q1SzmahkLroyuUrYR40FpcfucyW0+SR/kpmS7VxL335JbR3XhWL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\n", 342 | "text/plain": [ 343 | "" 344 | ] 345 | }, 346 | "metadata": { 347 | "tags": [] 348 | } 349 | }, 350 | { 351 | "output_type": "execute_result", 352 | "data": { 353 | "text/plain": [ 354 | "-1" 355 | ] 356 | }, 357 | "metadata": { 358 | "tags": [] 359 | }, 360 | "execution_count": 146 361 | } 362 | ] 363 | } 364 | ] 365 | } -------------------------------------------------------------------------------- /Weld_def_10cls_small_VGGnet.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Weld_def_10cls.ipynb", 7 | "provenance": [], 8 | "collapsed_sections": [], 9 | "toc_visible": true, 10 | "mount_file_id": "1RUnR7PABC5HdG19OSNWAHKxyODfKLdCm", 11 | "authorship_tag": "ABX9TyMajuShjk1Oe7u0UHipM4ym", 12 | "include_colab_link": true 13 | }, 14 | "kernelspec": { 15 | "name": "python3", 16 | "display_name": "Python 3" 17 | }, 18 | "accelerator": "GPU" 19 | }, 20 | "cells": [ 21 | { 22 | "cell_type": "markdown", 23 | "metadata": { 24 | "id": "view-in-github", 25 | "colab_type": "text" 26 | }, 27 | "source": [ 28 | "\"Open" 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "metadata": { 34 | "id": "m_mppGH8nYTc", 35 | "colab_type": "code", 36 | "colab": { 37 | "base_uri": "https://localhost:8080/", 38 | "height": 1000 39 | }, 40 | "outputId": "ed026104-1410-4a52-8ef6-7cf2cd673456" 41 | }, 42 | "source": [ 43 | "# USAGE\n", 44 | "# python train.py --dataset dataset --model pokedex.model --labelbin lb.pickle\n", 45 | "\n", 46 | "# set the matplotlib backend so figures can be saved in the background\n", 47 | "import matplotlib\n", 48 | "\n", 49 | "matplotlib.use(\"Agg\")\n", 50 | "import pandas as pd\n", 51 | "# import the necessary packages\n", 52 | "from keras.models import Sequential\n", 53 | "from sklearn.metrics import classification_report\n", 54 | "from keras.layers.normalization import BatchNormalization\n", 55 | "from keras.layers.convolutional import Conv2D\n", 56 | "from keras.layers.convolutional import MaxPooling2D\n", 57 | "from keras.layers.core import Activation\n", 58 | "from keras.layers.core import Flatten\n", 59 | "from keras.layers.core import Dropout\n", 60 | "from keras.layers.core import Dense\n", 61 | "from keras import backend as K\n", 62 | "from keras.callbacks import ModelCheckpoint\n", 63 | "from keras.preprocessing.image import ImageDataGenerator\n", 64 | "from keras.optimizers import Adam\n", 65 | "from keras.preprocessing.image import img_to_array\n", 66 | "from sklearn.preprocessing import LabelBinarizer\n", 67 | "from sklearn.model_selection import train_test_split\n", 68 | "#from pyimagesearch.smallervggnet import SmallerVGGNet\n", 69 | "import matplotlib.pyplot as plt\n", 70 | "from imutils import paths\n", 71 | "import numpy as np\n", 72 | "import argparse\n", 73 | "import random\n", 74 | "import pickle\n", 75 | "import cv2\n", 76 | "import os\n", 77 | "\n", 78 | "#######################################################################\n", 79 | "\n", 80 | "class SmallerVGGNet:\n", 81 | "\t@staticmethod\n", 82 | "\tdef build(width, height, depth, classes):\n", 83 | "\t\t# initialize the model along with the input shape to be\n", 84 | "\t\t# \"channels last\" and the channels dimension itself\n", 85 | "\t\tmodel = Sequential()\n", 86 | "\t\tinputShape = (height, width, depth)\n", 87 | "\t\tchanDim = -1\n", 88 | "\n", 89 | "\t\t# if we are using \"channels first\", update the input shape\n", 90 | "\t\t# and channels dimension\n", 91 | "\t\tif K.image_data_format() == \"channels_first\":\n", 92 | "\t\t\tinputShape = (depth, height, width)\n", 93 | "\t\t\tchanDim = 1\n", 94 | "\n", 95 | "\t\t# CONV => RELU => POOL\n", 96 | "\t\tmodel.add(Conv2D(32, (3, 3), padding=\"same\",\n", 97 | "\t\t\tinput_shape=inputShape))\n", 98 | "\t\tmodel.add(Activation(\"relu\"))\n", 99 | "\t\tmodel.add(BatchNormalization(axis=chanDim))\n", 100 | "\t\tmodel.add(MaxPooling2D(pool_size=(3, 3)))\n", 101 | "\t\tmodel.add(Dropout(0.25))\n", 102 | "\n", 103 | "\t\t# (CONV => RELU) * 2 => POOL\n", 104 | "\t\tmodel.add(Conv2D(64, (3, 3), padding=\"same\"))\n", 105 | "\t\tmodel.add(Activation(\"relu\"))\n", 106 | "\t\tmodel.add(BatchNormalization(axis=chanDim))\n", 107 | "\t\tmodel.add(Conv2D(64, (3, 3), padding=\"same\"))\n", 108 | "\t\tmodel.add(Activation(\"relu\"))\n", 109 | "\t\tmodel.add(BatchNormalization(axis=chanDim))\n", 110 | "\t\tmodel.add(MaxPooling2D(pool_size=(2, 2)))\n", 111 | "\t\tmodel.add(Dropout(0.25))\n", 112 | "\n", 113 | "\t\t# (CONV => RELU) * 2 => POOL\n", 114 | "\t\tmodel.add(Conv2D(128, (3, 3), padding=\"same\"))\n", 115 | "\t\tmodel.add(Activation(\"relu\"))\n", 116 | "\t\tmodel.add(BatchNormalization(axis=chanDim))\n", 117 | "\t\tmodel.add(Conv2D(128, (3, 3), padding=\"same\"))\n", 118 | "\t\tmodel.add(Activation(\"relu\"))\n", 119 | "\t\tmodel.add(BatchNormalization(axis=chanDim))\n", 120 | "\t\tmodel.add(MaxPooling2D(pool_size=(2, 2)))\n", 121 | "\t\tmodel.add(Dropout(0.25))\n", 122 | "\n", 123 | "\t\t# first (and only) set of FC => RELU layers\n", 124 | "\t\tmodel.add(Flatten())\n", 125 | "\t\tmodel.add(Dense(1024))\n", 126 | "\t\tmodel.add(Activation(\"relu\"))\n", 127 | "\t\tmodel.add(BatchNormalization())\n", 128 | "\t\tmodel.add(Dropout(0.5))\n", 129 | "\n", 130 | "\t\t# softmax classifier\n", 131 | "\t\tmodel.add(Dense(classes))\n", 132 | "\t\tmodel.add(Activation(\"softmax\"))\n", 133 | "\n", 134 | "\t\t# return the constructed network architecture\n", 135 | "\t\treturn model\n", 136 | "\n", 137 | "\n", 138 | "##############################################################################\n", 139 | "\n", 140 | "\n", 141 | "\n", 142 | "\n", 143 | "# construct the argument parse and parse the arguments\n", 144 | "#ap = argparse.ArgumentParser()\n", 145 | "#ap.add_argument(\"-d\", \"--dataset\", required=True,\n", 146 | "# help=\"path to input dataset (i.e., directory of images)\")\n", 147 | "#ap.add_argument(\"-m\", \"--model\", required=True,\n", 148 | "# help=\"path to output model\")\n", 149 | "#ap.add_argument(\"-l\", \"--labelbin\", required=True,\n", 150 | "# help=\"path to output label binarizer\")\n", 151 | "#ap.add_argument(\"-p\", \"--plot\", type=str, default=\"plot.png\",\n", 152 | "# help=\"path to output accuracy/loss plot\")\n", 153 | "#args = vars(ap.parse_args())\n", 154 | "\n", 155 | "# initialize the number of epochs to train for, initial learning rate,\n", 156 | "# batch size, and image dimensions\n", 157 | "EPOCHS = 400\n", 158 | "INIT_LR = 1e-3\n", 159 | "BS = 32\n", 160 | "IMAGE_DIMS = (96, 96, 3)\n", 161 | "\n", 162 | "# initialize the data and labels\n", 163 | "data = []\n", 164 | "labels = []\n", 165 | "\n", 166 | "# grab the image paths and randomly shuffle them\n", 167 | "print(\"[INFO] loading images...\")\n", 168 | "imagePaths = sorted(list(paths.list_images('/content/drive/My Drive/Colab Notebooks/weld_dataset_10cls (1)')))\n", 169 | "random.seed(42)\n", 170 | "random.shuffle(imagePaths)\n", 171 | "\n", 172 | "# loop over the input images\n", 173 | "for imagePath in imagePaths:\n", 174 | " # load the image, pre-process it, and store it in the data list\n", 175 | " image = cv2.imread(imagePath)\n", 176 | " image = cv2.resize(image, (IMAGE_DIMS[1], IMAGE_DIMS[0]))\n", 177 | " image = img_to_array(image)\n", 178 | " data.append(image)\n", 179 | "\n", 180 | " # extract the class label from the image path and update the\n", 181 | " # labels list\n", 182 | " label = imagePath.split(os.path.sep)[-2]\n", 183 | " labels.append(label)\n", 184 | "\n", 185 | "# scale the raw pixel intensities to the range [0, 1]\n", 186 | "data = np.array(data, dtype=\"float\") / 255.0\n", 187 | "labels = np.array(labels)\n", 188 | "print(\"[INFO] data matrix: {:.2f}MB\".format(\n", 189 | " data.nbytes / (1024 * 1000.0)))\n", 190 | "\n", 191 | "# binarize the labels\n", 192 | "lb = LabelBinarizer()\n", 193 | "labels = lb.fit_transform(labels)\n", 194 | "\n", 195 | "# partition the data into training and testing splits using 80% of\n", 196 | "# the data for training and the remaining 20% for testing\n", 197 | "(trainX, testX, trainY, testY) = train_test_split(data,\n", 198 | " labels, test_size=0.2, random_state=42)\n", 199 | "\n", 200 | "# account for skew in the labeled data\n", 201 | "classTotals = trainY.sum(axis=0)\n", 202 | "classWeight = classTotals.max() / classTotals\n", 203 | "\n", 204 | "# construct the image generator for data augmentation\n", 205 | "aug = ImageDataGenerator(rotation_range=False, width_shift_range=0.1,\n", 206 | " height_shift_range=0.1, shear_range=0.2, zoom_range=0.2,\n", 207 | " horizontal_flip=True, vertical_flip=True, fill_mode=\"nearest\")\n", 208 | "\n", 209 | "# initialize the model\n", 210 | "print(\"[INFO] compiling model...\")\n", 211 | "model = SmallerVGGNet.build(width=IMAGE_DIMS[1], height=IMAGE_DIMS[0],\n", 212 | " depth=IMAGE_DIMS[2], classes=len(lb.classes_))\n", 213 | "opt = Adam(lr=INIT_LR, decay=INIT_LR / EPOCHS)\n", 214 | "model.compile(loss=\"categorical_crossentropy\", optimizer=opt,\n", 215 | " metrics=[\"accuracy\"])\n", 216 | "\n", 217 | "# checkpoint\n", 218 | "filepath=\"/content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:{epoch:03d}-val_acc:{val_accuracy:.3f}.hdf5\"\n", 219 | "#filepath=\"/content/drive/My Drive/Colab Notebooks/Results/weld_def_10cls/best.hdf5\"\n", 220 | "checkpoint = ModelCheckpoint(filepath, monitor= 'val_accuracy' , verbose=1, save_best_only=True,\n", 221 | " mode= 'max' )\n", 222 | "callbacks_list = [checkpoint]\n", 223 | "\n", 224 | "# train the network\n", 225 | "print(\"[INFO] training network...\")\n", 226 | "H = model.fit_generator(\n", 227 | " aug.flow(trainX, trainY, batch_size=BS),\n", 228 | " validation_data=(testX, testY),\n", 229 | " steps_per_epoch=len(trainX) // BS,\n", 230 | " epochs=EPOCHS,\n", 231 | " class_weight=classWeight, callbacks=callbacks_list,\n", 232 | " verbose=1)\n", 233 | "\n", 234 | "# save the model to disk\n", 235 | "print(\"[INFO] serializing network...\")\n", 236 | "model.save('/content/drive/My Drive/Colab Notebooks/Results/weld_def_10cls/Wld_10cls.model')\n", 237 | "\n", 238 | "# save the label binarizer to disk\n", 239 | "print(\"[INFO] serializing label binarizer...\")\n", 240 | "f = open('/content/drive/My Drive/Colab Notebooks/Results/weld_def_10cls/lb.pickle', \"wb\")\n", 241 | "f.write(pickle.dumps(lb))\n", 242 | "f.close()\n", 243 | "\n", 244 | "# save the training history\n", 245 | "# convert the history.history dict to a pandas DataFrame: \n", 246 | "hist_df = pd.DataFrame(H.history)\n", 247 | "hist_csv_file = '/content/drive/My Drive/Colab Notebooks/Results/weld_def_10cls/history.csv'\n", 248 | "with open(hist_csv_file, mode='w') as f:\n", 249 | " hist_df.to_csv(f)\n", 250 | "\n", 251 | "\n", 252 | "# make predictions on the testing set\n", 253 | "print(\"[INFO] evaluating network...\")\n", 254 | "predIdxs = model.predict(testX, batch_size=BS)\n", 255 | "\n", 256 | "# for each image in the testing set we need to find the index of the\n", 257 | "# label with corresponding largest predicted probability\n", 258 | "predIdxs = np.argmax(predIdxs, axis=1)\n", 259 | "\n", 260 | "# show a nicely formatted classification report\n", 261 | "print(classification_report(testY.argmax(axis=1), predIdxs,\n", 262 | "\ttarget_names=lb.classes_))\n", 263 | "\n", 264 | "\n", 265 | "\n", 266 | "# plot the training loss and accuracy\n", 267 | "plt.style.use(\"ggplot\")\n", 268 | "plt.figure()\n", 269 | "N = EPOCHS\n", 270 | "plt.plot(np.arange(0, N), H.history[\"loss\"], label=\"train_loss\")\n", 271 | "plt.plot(np.arange(0, N), H.history[\"val_loss\"], label=\"val_loss\")\n", 272 | "plt.plot(np.arange(0, N), H.history[\"accuracy\"], label=\"train_acc\")\n", 273 | "plt.plot(np.arange(0, N), H.history[\"val_accuracy\"], label=\"val_acc\")\n", 274 | "plt.title(\"Training Loss and Accuracy\")\n", 275 | "plt.xlabel(\"Epoch #\")\n", 276 | "plt.ylabel(\"Loss/Accuracy\")\n", 277 | "plt.legend(loc=\"upper right\")\n", 278 | "plt.savefig('/content/drive/My Drive/Colab Notebooks/Results/weld_def_10cls/plot.png',dpi=300)" 279 | ], 280 | "execution_count": null, 281 | "outputs": [ 282 | { 283 | "output_type": "stream", 284 | "text": [ 285 | "[INFO] loading images...\n", 286 | "[INFO] data matrix: 194.62MB\n", 287 | "[INFO] compiling model...\n", 288 | "[INFO] training network...\n", 289 | "Epoch 1/400\n", 290 | "22/22 [==============================] - 4s 175ms/step - loss: 2.7770 - accuracy: 0.3765 - val_loss: 2.4818 - val_accuracy: 0.1215\n", 291 | "\n", 292 | "Epoch 00001: val_accuracy improved from -inf to 0.12155, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:001-val_acc:0.122.hdf5\n", 293 | "Epoch 2/400\n", 294 | "22/22 [==============================] - 2s 108ms/step - loss: 1.7697 - accuracy: 0.4956 - val_loss: 2.8470 - val_accuracy: 0.1602\n", 295 | "\n", 296 | "Epoch 00002: val_accuracy improved from 0.12155 to 0.16022, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:002-val_acc:0.160.hdf5\n", 297 | "Epoch 3/400\n", 298 | "22/22 [==============================] - 2s 112ms/step - loss: 1.3640 - accuracy: 0.5753 - val_loss: 3.2001 - val_accuracy: 0.1878\n", 299 | "\n", 300 | "Epoch 00003: val_accuracy improved from 0.16022 to 0.18785, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:003-val_acc:0.188.hdf5\n", 301 | "Epoch 4/400\n", 302 | "22/22 [==============================] - 2s 107ms/step - loss: 1.3209 - accuracy: 0.6161 - val_loss: 3.9521 - val_accuracy: 0.1934\n", 303 | "\n", 304 | "Epoch 00004: val_accuracy improved from 0.18785 to 0.19337, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:004-val_acc:0.193.hdf5\n", 305 | "Epoch 5/400\n", 306 | "22/22 [==============================] - 3s 138ms/step - loss: 1.2923 - accuracy: 0.5872 - val_loss: 3.6635 - val_accuracy: 0.2044\n", 307 | "\n", 308 | "Epoch 00005: val_accuracy improved from 0.19337 to 0.20442, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:005-val_acc:0.204.hdf5\n", 309 | "Epoch 6/400\n", 310 | "22/22 [==============================] - 3s 120ms/step - loss: 1.1728 - accuracy: 0.6512 - val_loss: 6.1743 - val_accuracy: 0.1989\n", 311 | "\n", 312 | "Epoch 00006: val_accuracy did not improve from 0.20442\n", 313 | "Epoch 7/400\n", 314 | "22/22 [==============================] - 2s 113ms/step - loss: 1.0916 - accuracy: 0.6860 - val_loss: 5.5821 - val_accuracy: 0.1878\n", 315 | "\n", 316 | "Epoch 00007: val_accuracy did not improve from 0.20442\n", 317 | "Epoch 8/400\n", 318 | "22/22 [==============================] - 2s 107ms/step - loss: 0.9031 - accuracy: 0.7093 - val_loss: 6.6275 - val_accuracy: 0.1989\n", 319 | "\n", 320 | "Epoch 00008: val_accuracy did not improve from 0.20442\n", 321 | "Epoch 9/400\n", 322 | "22/22 [==============================] - 3s 117ms/step - loss: 0.8907 - accuracy: 0.7088 - val_loss: 4.6007 - val_accuracy: 0.2376\n", 323 | "\n", 324 | "Epoch 00009: val_accuracy improved from 0.20442 to 0.23757, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:009-val_acc:0.238.hdf5\n", 325 | "Epoch 10/400\n", 326 | "22/22 [==============================] - 2s 105ms/step - loss: 0.8703 - accuracy: 0.7078 - val_loss: 5.8484 - val_accuracy: 0.1657\n", 327 | "\n", 328 | "Epoch 00010: val_accuracy did not improve from 0.23757\n", 329 | "Epoch 11/400\n", 330 | "22/22 [==============================] - 2s 106ms/step - loss: 0.6715 - accuracy: 0.7645 - val_loss: 7.3440 - val_accuracy: 0.2044\n", 331 | "\n", 332 | "Epoch 00011: val_accuracy did not improve from 0.23757\n", 333 | "Epoch 12/400\n", 334 | "22/22 [==============================] - 2s 106ms/step - loss: 0.7669 - accuracy: 0.7366 - val_loss: 6.1060 - val_accuracy: 0.1602\n", 335 | "\n", 336 | "Epoch 00012: val_accuracy did not improve from 0.23757\n", 337 | "Epoch 13/400\n", 338 | "22/22 [==============================] - 2s 104ms/step - loss: 0.7068 - accuracy: 0.7616 - val_loss: 6.5976 - val_accuracy: 0.1989\n", 339 | "\n", 340 | "Epoch 00013: val_accuracy did not improve from 0.23757\n", 341 | "Epoch 14/400\n", 342 | "22/22 [==============================] - 3s 119ms/step - loss: 0.7206 - accuracy: 0.7599 - val_loss: 6.2825 - val_accuracy: 0.1602\n", 343 | "\n", 344 | "Epoch 00014: val_accuracy did not improve from 0.23757\n", 345 | "Epoch 15/400\n", 346 | "22/22 [==============================] - 2s 105ms/step - loss: 0.6997 - accuracy: 0.7545 - val_loss: 4.7757 - val_accuracy: 0.2099\n", 347 | "\n", 348 | "Epoch 00015: val_accuracy did not improve from 0.23757\n", 349 | "Epoch 16/400\n", 350 | "22/22 [==============================] - 2s 109ms/step - loss: 0.6986 - accuracy: 0.7718 - val_loss: 4.7776 - val_accuracy: 0.2210\n", 351 | "\n", 352 | "Epoch 00016: val_accuracy did not improve from 0.23757\n", 353 | "Epoch 17/400\n", 354 | "22/22 [==============================] - 2s 106ms/step - loss: 0.5831 - accuracy: 0.7884 - val_loss: 4.0641 - val_accuracy: 0.3149\n", 355 | "\n", 356 | "Epoch 00017: val_accuracy improved from 0.23757 to 0.31492, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:017-val_acc:0.315.hdf5\n", 357 | "Epoch 18/400\n", 358 | "22/22 [==============================] - 2s 102ms/step - loss: 0.5564 - accuracy: 0.8140 - val_loss: 2.2950 - val_accuracy: 0.4751\n", 359 | "\n", 360 | "Epoch 00018: val_accuracy improved from 0.31492 to 0.47514, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:018-val_acc:0.475.hdf5\n", 361 | "Epoch 19/400\n", 362 | "22/22 [==============================] - 2s 105ms/step - loss: 0.5288 - accuracy: 0.8038 - val_loss: 4.3396 - val_accuracy: 0.2818\n", 363 | "\n", 364 | "Epoch 00019: val_accuracy did not improve from 0.47514\n", 365 | "Epoch 20/400\n", 366 | "22/22 [==============================] - 2s 106ms/step - loss: 0.5066 - accuracy: 0.8154 - val_loss: 5.8961 - val_accuracy: 0.4199\n", 367 | "\n", 368 | "Epoch 00020: val_accuracy did not improve from 0.47514\n", 369 | "Epoch 21/400\n", 370 | "22/22 [==============================] - 2s 109ms/step - loss: 0.4508 - accuracy: 0.8241 - val_loss: 3.2828 - val_accuracy: 0.5304\n", 371 | "\n", 372 | "Epoch 00021: val_accuracy improved from 0.47514 to 0.53039, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:021-val_acc:0.530.hdf5\n", 373 | "Epoch 22/400\n", 374 | "22/22 [==============================] - 2s 112ms/step - loss: 0.4962 - accuracy: 0.8372 - val_loss: 2.0360 - val_accuracy: 0.6077\n", 375 | "\n", 376 | "Epoch 00022: val_accuracy improved from 0.53039 to 0.60773, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:022-val_acc:0.608.hdf5\n", 377 | "Epoch 23/400\n", 378 | "22/22 [==============================] - 2s 103ms/step - loss: 0.4607 - accuracy: 0.8445 - val_loss: 5.4238 - val_accuracy: 0.3315\n", 379 | "\n", 380 | "Epoch 00023: val_accuracy did not improve from 0.60773\n", 381 | "Epoch 24/400\n", 382 | "22/22 [==============================] - 2s 105ms/step - loss: 0.4166 - accuracy: 0.8576 - val_loss: 3.8973 - val_accuracy: 0.3039\n", 383 | "\n", 384 | "Epoch 00024: val_accuracy did not improve from 0.60773\n", 385 | "Epoch 25/400\n", 386 | "22/22 [==============================] - 3s 124ms/step - loss: 0.4221 - accuracy: 0.8416 - val_loss: 3.0128 - val_accuracy: 0.5470\n", 387 | "\n", 388 | "Epoch 00025: val_accuracy did not improve from 0.60773\n", 389 | "Epoch 26/400\n", 390 | "22/22 [==============================] - 3s 116ms/step - loss: 0.4080 - accuracy: 0.8565 - val_loss: 3.0209 - val_accuracy: 0.4365\n", 391 | "\n", 392 | "Epoch 00026: val_accuracy did not improve from 0.60773\n", 393 | "Epoch 27/400\n", 394 | "22/22 [==============================] - 2s 106ms/step - loss: 0.4155 - accuracy: 0.8532 - val_loss: 5.8317 - val_accuracy: 0.2818\n", 395 | "\n", 396 | "Epoch 00027: val_accuracy did not improve from 0.60773\n", 397 | "Epoch 28/400\n", 398 | "22/22 [==============================] - 2s 103ms/step - loss: 0.3562 - accuracy: 0.8839 - val_loss: 3.7793 - val_accuracy: 0.5580\n", 399 | "\n", 400 | "Epoch 00028: val_accuracy did not improve from 0.60773\n", 401 | "Epoch 29/400\n", 402 | "22/22 [==============================] - 2s 108ms/step - loss: 0.3221 - accuracy: 0.8794 - val_loss: 2.9725 - val_accuracy: 0.4530\n", 403 | "\n", 404 | "Epoch 00029: val_accuracy did not improve from 0.60773\n", 405 | "Epoch 30/400\n", 406 | "22/22 [==============================] - 2s 102ms/step - loss: 0.3423 - accuracy: 0.8808 - val_loss: 3.2842 - val_accuracy: 0.3536\n", 407 | "\n", 408 | "Epoch 00030: val_accuracy did not improve from 0.60773\n", 409 | "Epoch 31/400\n", 410 | "22/22 [==============================] - 2s 104ms/step - loss: 0.3067 - accuracy: 0.8881 - val_loss: 4.0141 - val_accuracy: 0.4530\n", 411 | "\n", 412 | "Epoch 00031: val_accuracy did not improve from 0.60773\n", 413 | "Epoch 32/400\n", 414 | "22/22 [==============================] - 2s 105ms/step - loss: 0.2515 - accuracy: 0.9215 - val_loss: 1.4352 - val_accuracy: 0.6464\n", 415 | "\n", 416 | "Epoch 00032: val_accuracy improved from 0.60773 to 0.64641, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:032-val_acc:0.646.hdf5\n", 417 | "Epoch 33/400\n", 418 | "22/22 [==============================] - 2s 103ms/step - loss: 0.3100 - accuracy: 0.8866 - val_loss: 4.4969 - val_accuracy: 0.3867\n", 419 | "\n", 420 | "Epoch 00033: val_accuracy did not improve from 0.64641\n", 421 | "Epoch 34/400\n", 422 | "22/22 [==============================] - 2s 107ms/step - loss: 0.2280 - accuracy: 0.9048 - val_loss: 0.8159 - val_accuracy: 0.7735\n", 423 | "\n", 424 | "Epoch 00034: val_accuracy improved from 0.64641 to 0.77348, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:034-val_acc:0.773.hdf5\n", 425 | "Epoch 35/400\n", 426 | "22/22 [==============================] - 2s 99ms/step - loss: 0.3340 - accuracy: 0.8914 - val_loss: 2.1911 - val_accuracy: 0.6022\n", 427 | "\n", 428 | "Epoch 00035: val_accuracy did not improve from 0.77348\n", 429 | "Epoch 36/400\n", 430 | "22/22 [==============================] - 2s 105ms/step - loss: 0.2677 - accuracy: 0.8939 - val_loss: 0.9171 - val_accuracy: 0.7017\n", 431 | "\n", 432 | "Epoch 00036: val_accuracy did not improve from 0.77348\n", 433 | "Epoch 37/400\n", 434 | "22/22 [==============================] - 3s 121ms/step - loss: 0.2868 - accuracy: 0.8983 - val_loss: 1.0672 - val_accuracy: 0.7293\n", 435 | "\n", 436 | "Epoch 00037: val_accuracy did not improve from 0.77348\n", 437 | "Epoch 38/400\n", 438 | "22/22 [==============================] - 3s 116ms/step - loss: 0.2274 - accuracy: 0.9162 - val_loss: 3.7766 - val_accuracy: 0.6133\n", 439 | "\n", 440 | "Epoch 00038: val_accuracy did not improve from 0.77348\n", 441 | "Epoch 39/400\n", 442 | "22/22 [==============================] - 2s 105ms/step - loss: 0.3356 - accuracy: 0.8929 - val_loss: 4.4233 - val_accuracy: 0.3591\n", 443 | "\n", 444 | "Epoch 00039: val_accuracy did not improve from 0.77348\n", 445 | "Epoch 40/400\n", 446 | "22/22 [==============================] - 2s 108ms/step - loss: 0.2821 - accuracy: 0.9006 - val_loss: 1.3813 - val_accuracy: 0.5746\n", 447 | "\n", 448 | "Epoch 00040: val_accuracy did not improve from 0.77348\n", 449 | "Epoch 41/400\n", 450 | "22/22 [==============================] - 2s 105ms/step - loss: 0.4160 - accuracy: 0.8634 - val_loss: 1.9183 - val_accuracy: 0.5691\n", 451 | "\n", 452 | "Epoch 00041: val_accuracy did not improve from 0.77348\n", 453 | "Epoch 42/400\n", 454 | "22/22 [==============================] - 2s 104ms/step - loss: 0.3764 - accuracy: 0.8808 - val_loss: 17.6693 - val_accuracy: 0.2155\n", 455 | "\n", 456 | "Epoch 00042: val_accuracy did not improve from 0.77348\n", 457 | "Epoch 43/400\n", 458 | "22/22 [==============================] - 2s 104ms/step - loss: 0.4831 - accuracy: 0.8488 - val_loss: 9.9246 - val_accuracy: 0.2320\n", 459 | "\n", 460 | "Epoch 00043: val_accuracy did not improve from 0.77348\n", 461 | "Epoch 44/400\n", 462 | "22/22 [==============================] - 2s 105ms/step - loss: 0.3998 - accuracy: 0.8663 - val_loss: 15.9998 - val_accuracy: 0.1934\n", 463 | "\n", 464 | "Epoch 00044: val_accuracy did not improve from 0.77348\n", 465 | "Epoch 45/400\n", 466 | "22/22 [==============================] - 2s 106ms/step - loss: 0.4123 - accuracy: 0.8677 - val_loss: 8.0739 - val_accuracy: 0.2597\n", 467 | "\n", 468 | "Epoch 00045: val_accuracy did not improve from 0.77348\n", 469 | "Epoch 46/400\n", 470 | "22/22 [==============================] - 2s 104ms/step - loss: 0.4110 - accuracy: 0.8706 - val_loss: 4.9937 - val_accuracy: 0.3812\n", 471 | "\n", 472 | "Epoch 00046: val_accuracy did not improve from 0.77348\n", 473 | "Epoch 47/400\n", 474 | "22/22 [==============================] - 2s 106ms/step - loss: 0.3668 - accuracy: 0.8794 - val_loss: 6.3676 - val_accuracy: 0.2541\n", 475 | "\n", 476 | "Epoch 00047: val_accuracy did not improve from 0.77348\n", 477 | "Epoch 48/400\n", 478 | "22/22 [==============================] - 2s 106ms/step - loss: 0.3414 - accuracy: 0.8706 - val_loss: 3.3502 - val_accuracy: 0.4033\n", 479 | "\n", 480 | "Epoch 00048: val_accuracy did not improve from 0.77348\n", 481 | "Epoch 49/400\n", 482 | "22/22 [==============================] - 2s 106ms/step - loss: 0.2878 - accuracy: 0.8852 - val_loss: 3.1713 - val_accuracy: 0.5525\n", 483 | "\n", 484 | "Epoch 00049: val_accuracy did not improve from 0.77348\n", 485 | "Epoch 50/400\n", 486 | "22/22 [==============================] - 2s 104ms/step - loss: 0.2392 - accuracy: 0.9113 - val_loss: 3.1113 - val_accuracy: 0.5249\n", 487 | "\n", 488 | "Epoch 00050: val_accuracy did not improve from 0.77348\n", 489 | "Epoch 51/400\n", 490 | "22/22 [==============================] - 2s 108ms/step - loss: 0.2838 - accuracy: 0.8939 - val_loss: 4.9743 - val_accuracy: 0.4254\n", 491 | "\n", 492 | "Epoch 00051: val_accuracy did not improve from 0.77348\n", 493 | "Epoch 52/400\n", 494 | "22/22 [==============================] - 2s 105ms/step - loss: 0.2332 - accuracy: 0.9055 - val_loss: 13.4438 - val_accuracy: 0.2597\n", 495 | "\n", 496 | "Epoch 00052: val_accuracy did not improve from 0.77348\n", 497 | "Epoch 53/400\n", 498 | "22/22 [==============================] - 2s 107ms/step - loss: 0.2357 - accuracy: 0.9113 - val_loss: 5.5264 - val_accuracy: 0.4586\n", 499 | "\n", 500 | "Epoch 00053: val_accuracy did not improve from 0.77348\n", 501 | "Epoch 54/400\n", 502 | "22/22 [==============================] - 2s 107ms/step - loss: 0.2428 - accuracy: 0.9247 - val_loss: 2.2657 - val_accuracy: 0.6133\n", 503 | "\n", 504 | "Epoch 00054: val_accuracy did not improve from 0.77348\n", 505 | "Epoch 55/400\n", 506 | "22/22 [==============================] - 2s 101ms/step - loss: 0.2239 - accuracy: 0.9167 - val_loss: 2.3776 - val_accuracy: 0.6464\n", 507 | "\n", 508 | "Epoch 00055: val_accuracy did not improve from 0.77348\n", 509 | "Epoch 56/400\n", 510 | "22/22 [==============================] - 2s 104ms/step - loss: 0.2228 - accuracy: 0.9244 - val_loss: 4.5208 - val_accuracy: 0.4309\n", 511 | "\n", 512 | "Epoch 00056: val_accuracy did not improve from 0.77348\n", 513 | "Epoch 57/400\n", 514 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1800 - accuracy: 0.9332 - val_loss: 1.7410 - val_accuracy: 0.6961\n", 515 | "\n", 516 | "Epoch 00057: val_accuracy did not improve from 0.77348\n", 517 | "Epoch 58/400\n", 518 | "22/22 [==============================] - 2s 105ms/step - loss: 0.2000 - accuracy: 0.9375 - val_loss: 2.5491 - val_accuracy: 0.6133\n", 519 | "\n", 520 | "Epoch 00058: val_accuracy did not improve from 0.77348\n", 521 | "Epoch 59/400\n", 522 | "22/22 [==============================] - 2s 104ms/step - loss: 0.2955 - accuracy: 0.9018 - val_loss: 0.8419 - val_accuracy: 0.7680\n", 523 | "\n", 524 | "Epoch 00059: val_accuracy did not improve from 0.77348\n", 525 | "Epoch 60/400\n", 526 | "22/22 [==============================] - 2s 106ms/step - loss: 0.3427 - accuracy: 0.8837 - val_loss: 1.5728 - val_accuracy: 0.6961\n", 527 | "\n", 528 | "Epoch 00060: val_accuracy did not improve from 0.77348\n", 529 | "Epoch 61/400\n", 530 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1991 - accuracy: 0.9247 - val_loss: 2.5317 - val_accuracy: 0.5414\n", 531 | "\n", 532 | "Epoch 00061: val_accuracy did not improve from 0.77348\n", 533 | "Epoch 62/400\n", 534 | "22/22 [==============================] - 2s 107ms/step - loss: 0.2323 - accuracy: 0.9230 - val_loss: 5.0536 - val_accuracy: 0.5359\n", 535 | "\n", 536 | "Epoch 00062: val_accuracy did not improve from 0.77348\n", 537 | "Epoch 63/400\n", 538 | "22/22 [==============================] - 2s 103ms/step - loss: 0.2029 - accuracy: 0.9259 - val_loss: 2.7141 - val_accuracy: 0.5856\n", 539 | "\n", 540 | "Epoch 00063: val_accuracy did not improve from 0.77348\n", 541 | "Epoch 64/400\n", 542 | "22/22 [==============================] - 2s 103ms/step - loss: 0.2547 - accuracy: 0.9113 - val_loss: 2.8813 - val_accuracy: 0.5580\n", 543 | "\n", 544 | "Epoch 00064: val_accuracy did not improve from 0.77348\n", 545 | "Epoch 65/400\n", 546 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1811 - accuracy: 0.9331 - val_loss: 1.7082 - val_accuracy: 0.6685\n", 547 | "\n", 548 | "Epoch 00065: val_accuracy did not improve from 0.77348\n", 549 | "Epoch 66/400\n", 550 | "22/22 [==============================] - 2s 106ms/step - loss: 0.2607 - accuracy: 0.9157 - val_loss: 3.0871 - val_accuracy: 0.5414\n", 551 | "\n", 552 | "Epoch 00066: val_accuracy did not improve from 0.77348\n", 553 | "Epoch 67/400\n", 554 | "22/22 [==============================] - 2s 106ms/step - loss: 0.2568 - accuracy: 0.9172 - val_loss: 1.5151 - val_accuracy: 0.7072\n", 555 | "\n", 556 | "Epoch 00067: val_accuracy did not improve from 0.77348\n", 557 | "Epoch 68/400\n", 558 | "22/22 [==============================] - 2s 106ms/step - loss: 0.2453 - accuracy: 0.9244 - val_loss: 3.8749 - val_accuracy: 0.4807\n", 559 | "\n", 560 | "Epoch 00068: val_accuracy did not improve from 0.77348\n", 561 | "Epoch 69/400\n", 562 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1393 - accuracy: 0.9535 - val_loss: 0.4558 - val_accuracy: 0.8343\n", 563 | "\n", 564 | "Epoch 00069: val_accuracy improved from 0.77348 to 0.83425, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:069-val_acc:0.834.hdf5\n", 565 | "Epoch 70/400\n", 566 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1980 - accuracy: 0.9302 - val_loss: 0.6136 - val_accuracy: 0.8011\n", 567 | "\n", 568 | "Epoch 00070: val_accuracy did not improve from 0.83425\n", 569 | "Epoch 71/400\n", 570 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1776 - accuracy: 0.9433 - val_loss: 2.9844 - val_accuracy: 0.5193\n", 571 | "\n", 572 | "Epoch 00071: val_accuracy did not improve from 0.83425\n", 573 | "Epoch 72/400\n", 574 | "22/22 [==============================] - 2s 110ms/step - loss: 0.1388 - accuracy: 0.9531 - val_loss: 2.3940 - val_accuracy: 0.5304\n", 575 | "\n", 576 | "Epoch 00072: val_accuracy did not improve from 0.83425\n", 577 | "Epoch 73/400\n", 578 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1656 - accuracy: 0.9345 - val_loss: 1.4938 - val_accuracy: 0.6796\n", 579 | "\n", 580 | "Epoch 00073: val_accuracy did not improve from 0.83425\n", 581 | "Epoch 74/400\n", 582 | "22/22 [==============================] - 3s 116ms/step - loss: 0.1594 - accuracy: 0.9477 - val_loss: 1.2033 - val_accuracy: 0.7735\n", 583 | "\n", 584 | "Epoch 00074: val_accuracy did not improve from 0.83425\n", 585 | "Epoch 75/400\n", 586 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1923 - accuracy: 0.9360 - val_loss: 0.6979 - val_accuracy: 0.7901\n", 587 | "\n", 588 | "Epoch 00075: val_accuracy did not improve from 0.83425\n", 589 | "Epoch 76/400\n", 590 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1279 - accuracy: 0.9535 - val_loss: 2.8214 - val_accuracy: 0.5470\n", 591 | "\n", 592 | "Epoch 00076: val_accuracy did not improve from 0.83425\n", 593 | "Epoch 77/400\n", 594 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1429 - accuracy: 0.9517 - val_loss: 0.8876 - val_accuracy: 0.7403\n", 595 | "\n", 596 | "Epoch 00077: val_accuracy did not improve from 0.83425\n", 597 | "Epoch 78/400\n", 598 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1648 - accuracy: 0.9390 - val_loss: 3.8799 - val_accuracy: 0.5801\n", 599 | "\n", 600 | "Epoch 00078: val_accuracy did not improve from 0.83425\n", 601 | "Epoch 79/400\n", 602 | "22/22 [==============================] - 2s 110ms/step - loss: 0.1340 - accuracy: 0.9474 - val_loss: 1.1154 - val_accuracy: 0.8122\n", 603 | "\n", 604 | "Epoch 00079: val_accuracy did not improve from 0.83425\n", 605 | "Epoch 80/400\n", 606 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1593 - accuracy: 0.9477 - val_loss: 0.9611 - val_accuracy: 0.7569\n", 607 | "\n", 608 | "Epoch 00080: val_accuracy did not improve from 0.83425\n", 609 | "Epoch 81/400\n", 610 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1497 - accuracy: 0.9477 - val_loss: 10.7489 - val_accuracy: 0.3370\n", 611 | "\n", 612 | "Epoch 00081: val_accuracy did not improve from 0.83425\n", 613 | "Epoch 82/400\n", 614 | "22/22 [==============================] - 2s 106ms/step - loss: 0.2110 - accuracy: 0.9331 - val_loss: 1.1642 - val_accuracy: 0.7624\n", 615 | "\n", 616 | "Epoch 00082: val_accuracy did not improve from 0.83425\n", 617 | "Epoch 83/400\n", 618 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1050 - accuracy: 0.9666 - val_loss: 2.9225 - val_accuracy: 0.4917\n", 619 | "\n", 620 | "Epoch 00083: val_accuracy did not improve from 0.83425\n", 621 | "Epoch 84/400\n", 622 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1134 - accuracy: 0.9578 - val_loss: 0.5155 - val_accuracy: 0.8785\n", 623 | "\n", 624 | "Epoch 00084: val_accuracy improved from 0.83425 to 0.87845, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:084-val_acc:0.878.hdf5\n", 625 | "Epoch 85/400\n", 626 | "22/22 [==============================] - 2s 101ms/step - loss: 0.1330 - accuracy: 0.9520 - val_loss: 3.2822 - val_accuracy: 0.4033\n", 627 | "\n", 628 | "Epoch 00085: val_accuracy did not improve from 0.87845\n", 629 | "Epoch 86/400\n", 630 | "22/22 [==============================] - 2s 106ms/step - loss: 0.2195 - accuracy: 0.9317 - val_loss: 7.6123 - val_accuracy: 0.2541\n", 631 | "\n", 632 | "Epoch 00086: val_accuracy did not improve from 0.87845\n", 633 | "Epoch 87/400\n", 634 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1851 - accuracy: 0.9404 - val_loss: 5.1759 - val_accuracy: 0.4696\n", 635 | "\n", 636 | "Epoch 00087: val_accuracy did not improve from 0.87845\n", 637 | "Epoch 88/400\n", 638 | "22/22 [==============================] - 2s 108ms/step - loss: 0.1927 - accuracy: 0.9360 - val_loss: 1.8861 - val_accuracy: 0.6796\n", 639 | "\n", 640 | "Epoch 00088: val_accuracy did not improve from 0.87845\n", 641 | "Epoch 89/400\n", 642 | "22/22 [==============================] - 3s 115ms/step - loss: 0.1600 - accuracy: 0.9520 - val_loss: 1.4306 - val_accuracy: 0.6740\n", 643 | "\n", 644 | "Epoch 00089: val_accuracy did not improve from 0.87845\n", 645 | "Epoch 90/400\n", 646 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1230 - accuracy: 0.9637 - val_loss: 4.5250 - val_accuracy: 0.4420\n", 647 | "\n", 648 | "Epoch 00090: val_accuracy did not improve from 0.87845\n", 649 | "Epoch 91/400\n", 650 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1299 - accuracy: 0.9477 - val_loss: 7.1234 - val_accuracy: 0.3978\n", 651 | "\n", 652 | "Epoch 00091: val_accuracy did not improve from 0.87845\n", 653 | "Epoch 92/400\n", 654 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1693 - accuracy: 0.9404 - val_loss: 6.4034 - val_accuracy: 0.4420\n", 655 | "\n", 656 | "Epoch 00092: val_accuracy did not improve from 0.87845\n", 657 | "Epoch 93/400\n", 658 | "22/22 [==============================] - 2s 103ms/step - loss: 0.2040 - accuracy: 0.9404 - val_loss: 7.1273 - val_accuracy: 0.2376\n", 659 | "\n", 660 | "Epoch 00093: val_accuracy did not improve from 0.87845\n", 661 | "Epoch 94/400\n", 662 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1265 - accuracy: 0.9549 - val_loss: 5.7275 - val_accuracy: 0.4365\n", 663 | "\n", 664 | "Epoch 00094: val_accuracy did not improve from 0.87845\n", 665 | "Epoch 95/400\n", 666 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1075 - accuracy: 0.9637 - val_loss: 2.3938 - val_accuracy: 0.6133\n", 667 | "\n", 668 | "Epoch 00095: val_accuracy did not improve from 0.87845\n", 669 | "Epoch 96/400\n", 670 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0960 - accuracy: 0.9673 - val_loss: 0.6834 - val_accuracy: 0.8122\n", 671 | "\n", 672 | "Epoch 00096: val_accuracy did not improve from 0.87845\n", 673 | "Epoch 97/400\n", 674 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1032 - accuracy: 0.9613 - val_loss: 4.7659 - val_accuracy: 0.4696\n", 675 | "\n", 676 | "Epoch 00097: val_accuracy did not improve from 0.87845\n", 677 | "Epoch 98/400\n", 678 | "22/22 [==============================] - 2s 105ms/step - loss: 0.1497 - accuracy: 0.9462 - val_loss: 3.4242 - val_accuracy: 0.6464\n", 679 | "\n", 680 | "Epoch 00098: val_accuracy did not improve from 0.87845\n", 681 | "Epoch 99/400\n", 682 | "22/22 [==============================] - 2s 108ms/step - loss: 0.1360 - accuracy: 0.9574 - val_loss: 4.1894 - val_accuracy: 0.4807\n", 683 | "\n", 684 | "Epoch 00099: val_accuracy did not improve from 0.87845\n", 685 | "Epoch 100/400\n", 686 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1371 - accuracy: 0.9524 - val_loss: 0.8596 - val_accuracy: 0.8453\n", 687 | "\n", 688 | "Epoch 00100: val_accuracy did not improve from 0.87845\n", 689 | "Epoch 101/400\n", 690 | "22/22 [==============================] - 2s 108ms/step - loss: 0.1392 - accuracy: 0.9545 - val_loss: 1.7769 - val_accuracy: 0.7182\n", 691 | "\n", 692 | "Epoch 00101: val_accuracy did not improve from 0.87845\n", 693 | "Epoch 102/400\n", 694 | "22/22 [==============================] - 2s 105ms/step - loss: 0.1062 - accuracy: 0.9593 - val_loss: 2.6512 - val_accuracy: 0.5746\n", 695 | "\n", 696 | "Epoch 00102: val_accuracy did not improve from 0.87845\n", 697 | "Epoch 103/400\n", 698 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1019 - accuracy: 0.9695 - val_loss: 2.2719 - val_accuracy: 0.6851\n", 699 | "\n", 700 | "Epoch 00103: val_accuracy did not improve from 0.87845\n", 701 | "Epoch 104/400\n", 702 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0752 - accuracy: 0.9637 - val_loss: 0.8582 - val_accuracy: 0.8011\n", 703 | "\n", 704 | "Epoch 00104: val_accuracy did not improve from 0.87845\n", 705 | "Epoch 105/400\n", 706 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1267 - accuracy: 0.9643 - val_loss: 1.3964 - val_accuracy: 0.7624\n", 707 | "\n", 708 | "Epoch 00105: val_accuracy did not improve from 0.87845\n", 709 | "Epoch 106/400\n", 710 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0889 - accuracy: 0.9688 - val_loss: 1.1718 - val_accuracy: 0.7459\n", 711 | "\n", 712 | "Epoch 00106: val_accuracy did not improve from 0.87845\n", 713 | "Epoch 107/400\n", 714 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0674 - accuracy: 0.9797 - val_loss: 1.1615 - val_accuracy: 0.7459\n", 715 | "\n", 716 | "Epoch 00107: val_accuracy did not improve from 0.87845\n", 717 | "Epoch 108/400\n", 718 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0837 - accuracy: 0.9680 - val_loss: 4.5288 - val_accuracy: 0.4088\n", 719 | "\n", 720 | "Epoch 00108: val_accuracy did not improve from 0.87845\n", 721 | "Epoch 109/400\n", 722 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0936 - accuracy: 0.9724 - val_loss: 0.7368 - val_accuracy: 0.8066\n", 723 | "\n", 724 | "Epoch 00109: val_accuracy did not improve from 0.87845\n", 725 | "Epoch 110/400\n", 726 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0818 - accuracy: 0.9762 - val_loss: 10.2796 - val_accuracy: 0.3039\n", 727 | "\n", 728 | "Epoch 00110: val_accuracy did not improve from 0.87845\n", 729 | "Epoch 111/400\n", 730 | "22/22 [==============================] - 2s 106ms/step - loss: 0.2078 - accuracy: 0.9347 - val_loss: 4.8824 - val_accuracy: 0.4917\n", 731 | "\n", 732 | "Epoch 00111: val_accuracy did not improve from 0.87845\n", 733 | "Epoch 112/400\n", 734 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1191 - accuracy: 0.9593 - val_loss: 1.7797 - val_accuracy: 0.7293\n", 735 | "\n", 736 | "Epoch 00112: val_accuracy did not improve from 0.87845\n", 737 | "Epoch 113/400\n", 738 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1194 - accuracy: 0.9724 - val_loss: 0.7617 - val_accuracy: 0.7790\n", 739 | "\n", 740 | "Epoch 00113: val_accuracy did not improve from 0.87845\n", 741 | "Epoch 114/400\n", 742 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0601 - accuracy: 0.9797 - val_loss: 3.2012 - val_accuracy: 0.5414\n", 743 | "\n", 744 | "Epoch 00114: val_accuracy did not improve from 0.87845\n", 745 | "Epoch 115/400\n", 746 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1199 - accuracy: 0.9520 - val_loss: 0.4683 - val_accuracy: 0.8840\n", 747 | "\n", 748 | "Epoch 00115: val_accuracy improved from 0.87845 to 0.88398, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:115-val_acc:0.884.hdf5\n", 749 | "Epoch 116/400\n", 750 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1101 - accuracy: 0.9659 - val_loss: 1.2118 - val_accuracy: 0.7680\n", 751 | "\n", 752 | "Epoch 00116: val_accuracy did not improve from 0.88398\n", 753 | "Epoch 117/400\n", 754 | "22/22 [==============================] - 2s 110ms/step - loss: 0.0768 - accuracy: 0.9717 - val_loss: 2.4029 - val_accuracy: 0.6519\n", 755 | "\n", 756 | "Epoch 00117: val_accuracy did not improve from 0.88398\n", 757 | "Epoch 118/400\n", 758 | "22/22 [==============================] - 2s 111ms/step - loss: 0.0713 - accuracy: 0.9738 - val_loss: 5.8478 - val_accuracy: 0.4641\n", 759 | "\n", 760 | "Epoch 00118: val_accuracy did not improve from 0.88398\n", 761 | "Epoch 119/400\n", 762 | "22/22 [==============================] - 2s 109ms/step - loss: 0.0587 - accuracy: 0.9767 - val_loss: 2.5032 - val_accuracy: 0.6796\n", 763 | "\n", 764 | "Epoch 00119: val_accuracy did not improve from 0.88398\n", 765 | "Epoch 120/400\n", 766 | "22/22 [==============================] - 3s 117ms/step - loss: 0.1277 - accuracy: 0.9651 - val_loss: 1.1024 - val_accuracy: 0.7624\n", 767 | "\n", 768 | "Epoch 00120: val_accuracy did not improve from 0.88398\n", 769 | "Epoch 121/400\n", 770 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0536 - accuracy: 0.9815 - val_loss: 2.9352 - val_accuracy: 0.4254\n", 771 | "\n", 772 | "Epoch 00121: val_accuracy did not improve from 0.88398\n", 773 | "Epoch 122/400\n", 774 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0727 - accuracy: 0.9826 - val_loss: 7.3713 - val_accuracy: 0.3978\n", 775 | "\n", 776 | "Epoch 00122: val_accuracy did not improve from 0.88398\n", 777 | "Epoch 123/400\n", 778 | "22/22 [==============================] - 2s 101ms/step - loss: 0.1033 - accuracy: 0.9673 - val_loss: 1.2264 - val_accuracy: 0.7735\n", 779 | "\n", 780 | "Epoch 00123: val_accuracy did not improve from 0.88398\n", 781 | "Epoch 124/400\n", 782 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0943 - accuracy: 0.9622 - val_loss: 2.2997 - val_accuracy: 0.7127\n", 783 | "\n", 784 | "Epoch 00124: val_accuracy did not improve from 0.88398\n", 785 | "Epoch 125/400\n", 786 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0892 - accuracy: 0.9724 - val_loss: 5.8668 - val_accuracy: 0.4033\n", 787 | "\n", 788 | "Epoch 00125: val_accuracy did not improve from 0.88398\n", 789 | "Epoch 126/400\n", 790 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0668 - accuracy: 0.9826 - val_loss: 0.3840 - val_accuracy: 0.9227\n", 791 | "\n", 792 | "Epoch 00126: val_accuracy improved from 0.88398 to 0.92265, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:126-val_acc:0.923.hdf5\n", 793 | "Epoch 127/400\n", 794 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1153 - accuracy: 0.9608 - val_loss: 1.2071 - val_accuracy: 0.8232\n", 795 | "\n", 796 | "Epoch 00127: val_accuracy did not improve from 0.92265\n", 797 | "Epoch 128/400\n", 798 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0918 - accuracy: 0.9666 - val_loss: 3.5696 - val_accuracy: 0.4144\n", 799 | "\n", 800 | "Epoch 00128: val_accuracy did not improve from 0.92265\n", 801 | "Epoch 129/400\n", 802 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0831 - accuracy: 0.9730 - val_loss: 1.8297 - val_accuracy: 0.6575\n", 803 | "\n", 804 | "Epoch 00129: val_accuracy did not improve from 0.92265\n", 805 | "Epoch 130/400\n", 806 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1201 - accuracy: 0.9535 - val_loss: 0.6209 - val_accuracy: 0.8674\n", 807 | "\n", 808 | "Epoch 00130: val_accuracy did not improve from 0.92265\n", 809 | "Epoch 131/400\n", 810 | "22/22 [==============================] - 3s 115ms/step - loss: 0.1331 - accuracy: 0.9462 - val_loss: 5.8372 - val_accuracy: 0.4862\n", 811 | "\n", 812 | "Epoch 00131: val_accuracy did not improve from 0.92265\n", 813 | "Epoch 132/400\n", 814 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0930 - accuracy: 0.9709 - val_loss: 4.0952 - val_accuracy: 0.6464\n", 815 | "\n", 816 | "Epoch 00132: val_accuracy did not improve from 0.92265\n", 817 | "Epoch 133/400\n", 818 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1362 - accuracy: 0.9608 - val_loss: 1.1469 - val_accuracy: 0.7569\n", 819 | "\n", 820 | "Epoch 00133: val_accuracy did not improve from 0.92265\n", 821 | "Epoch 134/400\n", 822 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0591 - accuracy: 0.9797 - val_loss: 3.3931 - val_accuracy: 0.5635\n", 823 | "\n", 824 | "Epoch 00134: val_accuracy did not improve from 0.92265\n", 825 | "Epoch 135/400\n", 826 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0801 - accuracy: 0.9695 - val_loss: 0.2504 - val_accuracy: 0.9171\n", 827 | "\n", 828 | "Epoch 00135: val_accuracy did not improve from 0.92265\n", 829 | "Epoch 136/400\n", 830 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1048 - accuracy: 0.9637 - val_loss: 5.1250 - val_accuracy: 0.5249\n", 831 | "\n", 832 | "Epoch 00136: val_accuracy did not improve from 0.92265\n", 833 | "Epoch 137/400\n", 834 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1153 - accuracy: 0.9666 - val_loss: 6.4135 - val_accuracy: 0.3370\n", 835 | "\n", 836 | "Epoch 00137: val_accuracy did not improve from 0.92265\n", 837 | "Epoch 138/400\n", 838 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1033 - accuracy: 0.9637 - val_loss: 3.9030 - val_accuracy: 0.2486\n", 839 | "\n", 840 | "Epoch 00138: val_accuracy did not improve from 0.92265\n", 841 | "Epoch 139/400\n", 842 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1039 - accuracy: 0.9709 - val_loss: 5.2560 - val_accuracy: 0.2486\n", 843 | "\n", 844 | "Epoch 00139: val_accuracy did not improve from 0.92265\n", 845 | "Epoch 140/400\n", 846 | "22/22 [==============================] - 2s 105ms/step - loss: 0.1338 - accuracy: 0.9578 - val_loss: 1.4621 - val_accuracy: 0.7901\n", 847 | "\n", 848 | "Epoch 00140: val_accuracy did not improve from 0.92265\n", 849 | "Epoch 141/400\n", 850 | "22/22 [==============================] - 2s 105ms/step - loss: 0.1046 - accuracy: 0.9549 - val_loss: 3.0216 - val_accuracy: 0.5028\n", 851 | "\n", 852 | "Epoch 00141: val_accuracy did not improve from 0.92265\n", 853 | "Epoch 142/400\n", 854 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0683 - accuracy: 0.9767 - val_loss: 5.9865 - val_accuracy: 0.5470\n", 855 | "\n", 856 | "Epoch 00142: val_accuracy did not improve from 0.92265\n", 857 | "Epoch 143/400\n", 858 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1114 - accuracy: 0.9688 - val_loss: 4.9420 - val_accuracy: 0.4751\n", 859 | "\n", 860 | "Epoch 00143: val_accuracy did not improve from 0.92265\n", 861 | "Epoch 144/400\n", 862 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0994 - accuracy: 0.9658 - val_loss: 1.2060 - val_accuracy: 0.7790\n", 863 | "\n", 864 | "Epoch 00144: val_accuracy did not improve from 0.92265\n", 865 | "Epoch 145/400\n", 866 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0788 - accuracy: 0.9709 - val_loss: 1.1308 - val_accuracy: 0.8122\n", 867 | "\n", 868 | "Epoch 00145: val_accuracy did not improve from 0.92265\n", 869 | "Epoch 146/400\n", 870 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0590 - accuracy: 0.9811 - val_loss: 1.8553 - val_accuracy: 0.7127\n", 871 | "\n", 872 | "Epoch 00146: val_accuracy did not improve from 0.92265\n", 873 | "Epoch 147/400\n", 874 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0970 - accuracy: 0.9753 - val_loss: 7.5041 - val_accuracy: 0.3591\n", 875 | "\n", 876 | "Epoch 00147: val_accuracy did not improve from 0.92265\n", 877 | "Epoch 148/400\n", 878 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1032 - accuracy: 0.9651 - val_loss: 11.4658 - val_accuracy: 0.2541\n", 879 | "\n", 880 | "Epoch 00148: val_accuracy did not improve from 0.92265\n", 881 | "Epoch 149/400\n", 882 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0806 - accuracy: 0.9753 - val_loss: 4.7140 - val_accuracy: 0.5359\n", 883 | "\n", 884 | "Epoch 00149: val_accuracy did not improve from 0.92265\n", 885 | "Epoch 150/400\n", 886 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0752 - accuracy: 0.9744 - val_loss: 1.6864 - val_accuracy: 0.7514\n", 887 | "\n", 888 | "Epoch 00150: val_accuracy did not improve from 0.92265\n", 889 | "Epoch 151/400\n", 890 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0592 - accuracy: 0.9797 - val_loss: 2.6814 - val_accuracy: 0.6133\n", 891 | "\n", 892 | "Epoch 00151: val_accuracy did not improve from 0.92265\n", 893 | "Epoch 152/400\n", 894 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0840 - accuracy: 0.9680 - val_loss: 0.7374 - val_accuracy: 0.8398\n", 895 | "\n", 896 | "Epoch 00152: val_accuracy did not improve from 0.92265\n", 897 | "Epoch 153/400\n", 898 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0683 - accuracy: 0.9777 - val_loss: 7.5254 - val_accuracy: 0.3867\n", 899 | "\n", 900 | "Epoch 00153: val_accuracy did not improve from 0.92265\n", 901 | "Epoch 154/400\n", 902 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0568 - accuracy: 0.9787 - val_loss: 2.5033 - val_accuracy: 0.6077\n", 903 | "\n", 904 | "Epoch 00154: val_accuracy did not improve from 0.92265\n", 905 | "Epoch 155/400\n", 906 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0962 - accuracy: 0.9709 - val_loss: 0.2301 - val_accuracy: 0.9392\n", 907 | "\n", 908 | "Epoch 00155: val_accuracy improved from 0.92265 to 0.93923, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:155-val_acc:0.939.hdf5\n", 909 | "Epoch 156/400\n", 910 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1291 - accuracy: 0.9680 - val_loss: 12.1034 - val_accuracy: 0.3094\n", 911 | "\n", 912 | "Epoch 00156: val_accuracy did not improve from 0.93923\n", 913 | "Epoch 157/400\n", 914 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0984 - accuracy: 0.9717 - val_loss: 0.5733 - val_accuracy: 0.8453\n", 915 | "\n", 916 | "Epoch 00157: val_accuracy did not improve from 0.93923\n", 917 | "Epoch 158/400\n", 918 | "22/22 [==============================] - 2s 110ms/step - loss: 0.0794 - accuracy: 0.9787 - val_loss: 0.5880 - val_accuracy: 0.8840\n", 919 | "\n", 920 | "Epoch 00158: val_accuracy did not improve from 0.93923\n", 921 | "Epoch 159/400\n", 922 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0846 - accuracy: 0.9767 - val_loss: 0.5030 - val_accuracy: 0.8398\n", 923 | "\n", 924 | "Epoch 00159: val_accuracy did not improve from 0.93923\n", 925 | "Epoch 160/400\n", 926 | "22/22 [==============================] - 3s 117ms/step - loss: 0.0466 - accuracy: 0.9884 - val_loss: 0.1794 - val_accuracy: 0.9503\n", 927 | "\n", 928 | "Epoch 00160: val_accuracy improved from 0.93923 to 0.95028, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:160-val_acc:0.950.hdf5\n", 929 | "Epoch 161/400\n", 930 | "22/22 [==============================] - 2s 101ms/step - loss: 0.0829 - accuracy: 0.9767 - val_loss: 5.3081 - val_accuracy: 0.3094\n", 931 | "\n", 932 | "Epoch 00161: val_accuracy did not improve from 0.95028\n", 933 | "Epoch 162/400\n", 934 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0792 - accuracy: 0.9753 - val_loss: 5.5409 - val_accuracy: 0.4696\n", 935 | "\n", 936 | "Epoch 00162: val_accuracy did not improve from 0.95028\n", 937 | "Epoch 163/400\n", 938 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0434 - accuracy: 0.9869 - val_loss: 10.7213 - val_accuracy: 0.2983\n", 939 | "\n", 940 | "Epoch 00163: val_accuracy did not improve from 0.95028\n", 941 | "Epoch 164/400\n", 942 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0464 - accuracy: 0.9840 - val_loss: 0.3968 - val_accuracy: 0.9061\n", 943 | "\n", 944 | "Epoch 00164: val_accuracy did not improve from 0.95028\n", 945 | "Epoch 165/400\n", 946 | "22/22 [==============================] - 3s 117ms/step - loss: 0.0399 - accuracy: 0.9884 - val_loss: 2.0155 - val_accuracy: 0.7624\n", 947 | "\n", 948 | "Epoch 00165: val_accuracy did not improve from 0.95028\n", 949 | "Epoch 166/400\n", 950 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0475 - accuracy: 0.9884 - val_loss: 0.2255 - val_accuracy: 0.9558\n", 951 | "\n", 952 | "Epoch 00166: val_accuracy improved from 0.95028 to 0.95580, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:166-val_acc:0.956.hdf5\n", 953 | "Epoch 167/400\n", 954 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0600 - accuracy: 0.9840 - val_loss: 2.5546 - val_accuracy: 0.6575\n", 955 | "\n", 956 | "Epoch 00167: val_accuracy did not improve from 0.95580\n", 957 | "Epoch 168/400\n", 958 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0491 - accuracy: 0.9869 - val_loss: 3.5513 - val_accuracy: 0.5746\n", 959 | "\n", 960 | "Epoch 00168: val_accuracy did not improve from 0.95580\n", 961 | "Epoch 169/400\n", 962 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0819 - accuracy: 0.9738 - val_loss: 1.5736 - val_accuracy: 0.7348\n", 963 | "\n", 964 | "Epoch 00169: val_accuracy did not improve from 0.95580\n", 965 | "Epoch 170/400\n", 966 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0581 - accuracy: 0.9797 - val_loss: 1.1723 - val_accuracy: 0.7624\n", 967 | "\n", 968 | "Epoch 00170: val_accuracy did not improve from 0.95580\n", 969 | "Epoch 171/400\n", 970 | "22/22 [==============================] - 3s 118ms/step - loss: 0.0327 - accuracy: 0.9901 - val_loss: 1.1512 - val_accuracy: 0.8011\n", 971 | "\n", 972 | "Epoch 00171: val_accuracy did not improve from 0.95580\n", 973 | "Epoch 172/400\n", 974 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0759 - accuracy: 0.9777 - val_loss: 0.7545 - val_accuracy: 0.8177\n", 975 | "\n", 976 | "Epoch 00172: val_accuracy did not improve from 0.95580\n", 977 | "Epoch 173/400\n", 978 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0644 - accuracy: 0.9782 - val_loss: 5.9874 - val_accuracy: 0.4088\n", 979 | "\n", 980 | "Epoch 00173: val_accuracy did not improve from 0.95580\n", 981 | "Epoch 174/400\n", 982 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1220 - accuracy: 0.9753 - val_loss: 0.6327 - val_accuracy: 0.8232\n", 983 | "\n", 984 | "Epoch 00174: val_accuracy did not improve from 0.95580\n", 985 | "Epoch 175/400\n", 986 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0221 - accuracy: 0.9901 - val_loss: 0.7410 - val_accuracy: 0.8398\n", 987 | "\n", 988 | "Epoch 00175: val_accuracy did not improve from 0.95580\n", 989 | "Epoch 176/400\n", 990 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0423 - accuracy: 0.9881 - val_loss: 0.7400 - val_accuracy: 0.8840\n", 991 | "\n", 992 | "Epoch 00176: val_accuracy did not improve from 0.95580\n", 993 | "Epoch 177/400\n", 994 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0352 - accuracy: 0.9915 - val_loss: 2.6001 - val_accuracy: 0.5249\n", 995 | "\n", 996 | "Epoch 00177: val_accuracy did not improve from 0.95580\n", 997 | "Epoch 178/400\n", 998 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0227 - accuracy: 0.9898 - val_loss: 0.4332 - val_accuracy: 0.9227\n", 999 | "\n", 1000 | "Epoch 00178: val_accuracy did not improve from 0.95580\n", 1001 | "Epoch 179/400\n", 1002 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0455 - accuracy: 0.9840 - val_loss: 3.5731 - val_accuracy: 0.5525\n", 1003 | "\n", 1004 | "Epoch 00179: val_accuracy did not improve from 0.95580\n", 1005 | "Epoch 180/400\n", 1006 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0745 - accuracy: 0.9695 - val_loss: 4.2391 - val_accuracy: 0.5359\n", 1007 | "\n", 1008 | "Epoch 00180: val_accuracy did not improve from 0.95580\n", 1009 | "Epoch 181/400\n", 1010 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0441 - accuracy: 0.9869 - val_loss: 3.2847 - val_accuracy: 0.5580\n", 1011 | "\n", 1012 | "Epoch 00181: val_accuracy did not improve from 0.95580\n", 1013 | "Epoch 182/400\n", 1014 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1136 - accuracy: 0.9637 - val_loss: 4.4289 - val_accuracy: 0.4088\n", 1015 | "\n", 1016 | "Epoch 00182: val_accuracy did not improve from 0.95580\n", 1017 | "Epoch 183/400\n", 1018 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1471 - accuracy: 0.9578 - val_loss: 5.9207 - val_accuracy: 0.2155\n", 1019 | "\n", 1020 | "Epoch 00183: val_accuracy did not improve from 0.95580\n", 1021 | "Epoch 184/400\n", 1022 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1058 - accuracy: 0.9666 - val_loss: 0.5800 - val_accuracy: 0.8950\n", 1023 | "\n", 1024 | "Epoch 00184: val_accuracy did not improve from 0.95580\n", 1025 | "Epoch 185/400\n", 1026 | "22/22 [==============================] - 2s 105ms/step - loss: 0.1037 - accuracy: 0.9651 - val_loss: 8.9750 - val_accuracy: 0.1492\n", 1027 | "\n", 1028 | "Epoch 00185: val_accuracy did not improve from 0.95580\n", 1029 | "Epoch 186/400\n", 1030 | "22/22 [==============================] - 2s 109ms/step - loss: 0.1933 - accuracy: 0.9375 - val_loss: 10.6212 - val_accuracy: 0.1934\n", 1031 | "\n", 1032 | "Epoch 00186: val_accuracy did not improve from 0.95580\n", 1033 | "Epoch 187/400\n", 1034 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0754 - accuracy: 0.9753 - val_loss: 9.4370 - val_accuracy: 0.1989\n", 1035 | "\n", 1036 | "Epoch 00187: val_accuracy did not improve from 0.95580\n", 1037 | "Epoch 188/400\n", 1038 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1442 - accuracy: 0.9651 - val_loss: 2.4009 - val_accuracy: 0.6354\n", 1039 | "\n", 1040 | "Epoch 00188: val_accuracy did not improve from 0.95580\n", 1041 | "Epoch 189/400\n", 1042 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1221 - accuracy: 0.9549 - val_loss: 3.8480 - val_accuracy: 0.5359\n", 1043 | "\n", 1044 | "Epoch 00189: val_accuracy did not improve from 0.95580\n", 1045 | "Epoch 190/400\n", 1046 | "22/22 [==============================] - 2s 108ms/step - loss: 0.1160 - accuracy: 0.9631 - val_loss: 2.8260 - val_accuracy: 0.6188\n", 1047 | "\n", 1048 | "Epoch 00190: val_accuracy did not improve from 0.95580\n", 1049 | "Epoch 191/400\n", 1050 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1740 - accuracy: 0.9554 - val_loss: 13.7641 - val_accuracy: 0.2044\n", 1051 | "\n", 1052 | "Epoch 00191: val_accuracy did not improve from 0.95580\n", 1053 | "Epoch 192/400\n", 1054 | "22/22 [==============================] - 2s 105ms/step - loss: 0.1486 - accuracy: 0.9520 - val_loss: 7.7603 - val_accuracy: 0.3481\n", 1055 | "\n", 1056 | "Epoch 00192: val_accuracy did not improve from 0.95580\n", 1057 | "Epoch 193/400\n", 1058 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1193 - accuracy: 0.9659 - val_loss: 5.5162 - val_accuracy: 0.6022\n", 1059 | "\n", 1060 | "Epoch 00193: val_accuracy did not improve from 0.95580\n", 1061 | "Epoch 194/400\n", 1062 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1161 - accuracy: 0.9628 - val_loss: 11.5473 - val_accuracy: 0.1989\n", 1063 | "\n", 1064 | "Epoch 00194: val_accuracy did not improve from 0.95580\n", 1065 | "Epoch 195/400\n", 1066 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0623 - accuracy: 0.9801 - val_loss: 4.5639 - val_accuracy: 0.5691\n", 1067 | "\n", 1068 | "Epoch 00195: val_accuracy did not improve from 0.95580\n", 1069 | "Epoch 196/400\n", 1070 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0939 - accuracy: 0.9608 - val_loss: 1.4375 - val_accuracy: 0.8066\n", 1071 | "\n", 1072 | "Epoch 00196: val_accuracy did not improve from 0.95580\n", 1073 | "Epoch 197/400\n", 1074 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1148 - accuracy: 0.9666 - val_loss: 1.7889 - val_accuracy: 0.6630\n", 1075 | "\n", 1076 | "Epoch 00197: val_accuracy did not improve from 0.95580\n", 1077 | "Epoch 198/400\n", 1078 | "22/22 [==============================] - 2s 102ms/step - loss: 0.1313 - accuracy: 0.9539 - val_loss: 4.4392 - val_accuracy: 0.4420\n", 1079 | "\n", 1080 | "Epoch 00198: val_accuracy did not improve from 0.95580\n", 1081 | "Epoch 199/400\n", 1082 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0727 - accuracy: 0.9797 - val_loss: 1.8323 - val_accuracy: 0.6243\n", 1083 | "\n", 1084 | "Epoch 00199: val_accuracy did not improve from 0.95580\n", 1085 | "Epoch 200/400\n", 1086 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0603 - accuracy: 0.9787 - val_loss: 3.4972 - val_accuracy: 0.4199\n", 1087 | "\n", 1088 | "Epoch 00200: val_accuracy did not improve from 0.95580\n", 1089 | "Epoch 201/400\n", 1090 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0760 - accuracy: 0.9762 - val_loss: 2.8228 - val_accuracy: 0.6133\n", 1091 | "\n", 1092 | "Epoch 00201: val_accuracy did not improve from 0.95580\n", 1093 | "Epoch 202/400\n", 1094 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0577 - accuracy: 0.9858 - val_loss: 5.1937 - val_accuracy: 0.4365\n", 1095 | "\n", 1096 | "Epoch 00202: val_accuracy did not improve from 0.95580\n", 1097 | "Epoch 203/400\n", 1098 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0812 - accuracy: 0.9724 - val_loss: 2.0349 - val_accuracy: 0.6630\n", 1099 | "\n", 1100 | "Epoch 00203: val_accuracy did not improve from 0.95580\n", 1101 | "Epoch 204/400\n", 1102 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0989 - accuracy: 0.9753 - val_loss: 1.8585 - val_accuracy: 0.6906\n", 1103 | "\n", 1104 | "Epoch 00204: val_accuracy did not improve from 0.95580\n", 1105 | "Epoch 205/400\n", 1106 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0964 - accuracy: 0.9738 - val_loss: 1.0430 - val_accuracy: 0.8177\n", 1107 | "\n", 1108 | "Epoch 00205: val_accuracy did not improve from 0.95580\n", 1109 | "Epoch 206/400\n", 1110 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0487 - accuracy: 0.9869 - val_loss: 3.2446 - val_accuracy: 0.5635\n", 1111 | "\n", 1112 | "Epoch 00206: val_accuracy did not improve from 0.95580\n", 1113 | "Epoch 207/400\n", 1114 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0480 - accuracy: 0.9855 - val_loss: 0.6339 - val_accuracy: 0.8453\n", 1115 | "\n", 1116 | "Epoch 00207: val_accuracy did not improve from 0.95580\n", 1117 | "Epoch 208/400\n", 1118 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0618 - accuracy: 0.9797 - val_loss: 1.5732 - val_accuracy: 0.7127\n", 1119 | "\n", 1120 | "Epoch 00208: val_accuracy did not improve from 0.95580\n", 1121 | "Epoch 209/400\n", 1122 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0387 - accuracy: 0.9826 - val_loss: 0.4002 - val_accuracy: 0.8895\n", 1123 | "\n", 1124 | "Epoch 00209: val_accuracy did not improve from 0.95580\n", 1125 | "Epoch 210/400\n", 1126 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0566 - accuracy: 0.9811 - val_loss: 1.0169 - val_accuracy: 0.8011\n", 1127 | "\n", 1128 | "Epoch 00210: val_accuracy did not improve from 0.95580\n", 1129 | "Epoch 211/400\n", 1130 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0691 - accuracy: 0.9811 - val_loss: 4.5908 - val_accuracy: 0.4862\n", 1131 | "\n", 1132 | "Epoch 00211: val_accuracy did not improve from 0.95580\n", 1133 | "Epoch 212/400\n", 1134 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0269 - accuracy: 0.9929 - val_loss: 2.0443 - val_accuracy: 0.6630\n", 1135 | "\n", 1136 | "Epoch 00212: val_accuracy did not improve from 0.95580\n", 1137 | "Epoch 213/400\n", 1138 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0316 - accuracy: 0.9911 - val_loss: 0.3684 - val_accuracy: 0.9006\n", 1139 | "\n", 1140 | "Epoch 00213: val_accuracy did not improve from 0.95580\n", 1141 | "Epoch 214/400\n", 1142 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0558 - accuracy: 0.9815 - val_loss: 8.9936 - val_accuracy: 0.4309\n", 1143 | "\n", 1144 | "Epoch 00214: val_accuracy did not improve from 0.95580\n", 1145 | "Epoch 215/400\n", 1146 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0718 - accuracy: 0.9767 - val_loss: 6.0431 - val_accuracy: 0.4586\n", 1147 | "\n", 1148 | "Epoch 00215: val_accuracy did not improve from 0.95580\n", 1149 | "Epoch 216/400\n", 1150 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0739 - accuracy: 0.9826 - val_loss: 0.8869 - val_accuracy: 0.7901\n", 1151 | "\n", 1152 | "Epoch 00216: val_accuracy did not improve from 0.95580\n", 1153 | "Epoch 217/400\n", 1154 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1017 - accuracy: 0.9666 - val_loss: 0.8994 - val_accuracy: 0.8066\n", 1155 | "\n", 1156 | "Epoch 00217: val_accuracy did not improve from 0.95580\n", 1157 | "Epoch 218/400\n", 1158 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0691 - accuracy: 0.9782 - val_loss: 0.6172 - val_accuracy: 0.8619\n", 1159 | "\n", 1160 | "Epoch 00218: val_accuracy did not improve from 0.95580\n", 1161 | "Epoch 219/400\n", 1162 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0756 - accuracy: 0.9792 - val_loss: 3.7863 - val_accuracy: 0.5525\n", 1163 | "\n", 1164 | "Epoch 00219: val_accuracy did not improve from 0.95580\n", 1165 | "Epoch 220/400\n", 1166 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0473 - accuracy: 0.9872 - val_loss: 0.9698 - val_accuracy: 0.8453\n", 1167 | "\n", 1168 | "Epoch 00220: val_accuracy did not improve from 0.95580\n", 1169 | "Epoch 221/400\n", 1170 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0693 - accuracy: 0.9767 - val_loss: 0.7631 - val_accuracy: 0.8011\n", 1171 | "\n", 1172 | "Epoch 00221: val_accuracy did not improve from 0.95580\n", 1173 | "Epoch 222/400\n", 1174 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0719 - accuracy: 0.9826 - val_loss: 1.3747 - val_accuracy: 0.8232\n", 1175 | "\n", 1176 | "Epoch 00222: val_accuracy did not improve from 0.95580\n", 1177 | "Epoch 223/400\n", 1178 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0675 - accuracy: 0.9709 - val_loss: 1.1728 - val_accuracy: 0.7514\n", 1179 | "\n", 1180 | "Epoch 00223: val_accuracy did not improve from 0.95580\n", 1181 | "Epoch 224/400\n", 1182 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1044 - accuracy: 0.9651 - val_loss: 7.4000 - val_accuracy: 0.4033\n", 1183 | "\n", 1184 | "Epoch 00224: val_accuracy did not improve from 0.95580\n", 1185 | "Epoch 225/400\n", 1186 | "22/22 [==============================] - 2s 100ms/step - loss: 0.0620 - accuracy: 0.9836 - val_loss: 3.3078 - val_accuracy: 0.5856\n", 1187 | "\n", 1188 | "Epoch 00225: val_accuracy did not improve from 0.95580\n", 1189 | "Epoch 226/400\n", 1190 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0267 - accuracy: 0.9901 - val_loss: 2.2365 - val_accuracy: 0.6188\n", 1191 | "\n", 1192 | "Epoch 00226: val_accuracy did not improve from 0.95580\n", 1193 | "Epoch 227/400\n", 1194 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0451 - accuracy: 0.9884 - val_loss: 7.1150 - val_accuracy: 0.4420\n", 1195 | "\n", 1196 | "Epoch 00227: val_accuracy did not improve from 0.95580\n", 1197 | "Epoch 228/400\n", 1198 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0751 - accuracy: 0.9747 - val_loss: 1.4338 - val_accuracy: 0.7624\n", 1199 | "\n", 1200 | "Epoch 00228: val_accuracy did not improve from 0.95580\n", 1201 | "Epoch 229/400\n", 1202 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0665 - accuracy: 0.9830 - val_loss: 4.0587 - val_accuracy: 0.5912\n", 1203 | "\n", 1204 | "Epoch 00229: val_accuracy did not improve from 0.95580\n", 1205 | "Epoch 230/400\n", 1206 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0399 - accuracy: 0.9826 - val_loss: 4.9407 - val_accuracy: 0.5249\n", 1207 | "\n", 1208 | "Epoch 00230: val_accuracy did not improve from 0.95580\n", 1209 | "Epoch 231/400\n", 1210 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0470 - accuracy: 0.9840 - val_loss: 2.2978 - val_accuracy: 0.6575\n", 1211 | "\n", 1212 | "Epoch 00231: val_accuracy did not improve from 0.95580\n", 1213 | "Epoch 232/400\n", 1214 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0399 - accuracy: 0.9869 - val_loss: 1.9676 - val_accuracy: 0.7459\n", 1215 | "\n", 1216 | "Epoch 00232: val_accuracy did not improve from 0.95580\n", 1217 | "Epoch 233/400\n", 1218 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0653 - accuracy: 0.9797 - val_loss: 6.6792 - val_accuracy: 0.4420\n", 1219 | "\n", 1220 | "Epoch 00233: val_accuracy did not improve from 0.95580\n", 1221 | "Epoch 234/400\n", 1222 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0339 - accuracy: 0.9872 - val_loss: 0.5047 - val_accuracy: 0.8840\n", 1223 | "\n", 1224 | "Epoch 00234: val_accuracy did not improve from 0.95580\n", 1225 | "Epoch 235/400\n", 1226 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0807 - accuracy: 0.9762 - val_loss: 0.2044 - val_accuracy: 0.9337\n", 1227 | "\n", 1228 | "Epoch 00235: val_accuracy did not improve from 0.95580\n", 1229 | "Epoch 236/400\n", 1230 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0404 - accuracy: 0.9869 - val_loss: 0.7950 - val_accuracy: 0.8895\n", 1231 | "\n", 1232 | "Epoch 00236: val_accuracy did not improve from 0.95580\n", 1233 | "Epoch 237/400\n", 1234 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0642 - accuracy: 0.9801 - val_loss: 4.9207 - val_accuracy: 0.5083\n", 1235 | "\n", 1236 | "Epoch 00237: val_accuracy did not improve from 0.95580\n", 1237 | "Epoch 238/400\n", 1238 | "22/22 [==============================] - 2s 101ms/step - loss: 0.0295 - accuracy: 0.9881 - val_loss: 0.8688 - val_accuracy: 0.8177\n", 1239 | "\n", 1240 | "Epoch 00238: val_accuracy did not improve from 0.95580\n", 1241 | "Epoch 239/400\n", 1242 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0533 - accuracy: 0.9811 - val_loss: 0.1609 - val_accuracy: 0.9503\n", 1243 | "\n", 1244 | "Epoch 00239: val_accuracy did not improve from 0.95580\n", 1245 | "Epoch 240/400\n", 1246 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0191 - accuracy: 0.9943 - val_loss: 0.2457 - val_accuracy: 0.9282\n", 1247 | "\n", 1248 | "Epoch 00240: val_accuracy did not improve from 0.95580\n", 1249 | "Epoch 241/400\n", 1250 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0126 - accuracy: 0.9971 - val_loss: 0.0893 - val_accuracy: 0.9779\n", 1251 | "\n", 1252 | "Epoch 00241: val_accuracy improved from 0.95580 to 0.97790, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:241-val_acc:0.978.hdf5\n", 1253 | "Epoch 242/400\n", 1254 | "22/22 [==============================] - 2s 101ms/step - loss: 0.0480 - accuracy: 0.9881 - val_loss: 0.2050 - val_accuracy: 0.9558\n", 1255 | "\n", 1256 | "Epoch 00242: val_accuracy did not improve from 0.97790\n", 1257 | "Epoch 243/400\n", 1258 | "22/22 [==============================] - 2s 109ms/step - loss: 0.0761 - accuracy: 0.9797 - val_loss: 0.1785 - val_accuracy: 0.9503\n", 1259 | "\n", 1260 | "Epoch 00243: val_accuracy did not improve from 0.97790\n", 1261 | "Epoch 244/400\n", 1262 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0912 - accuracy: 0.9695 - val_loss: 8.4647 - val_accuracy: 0.3812\n", 1263 | "\n", 1264 | "Epoch 00244: val_accuracy did not improve from 0.97790\n", 1265 | "Epoch 245/400\n", 1266 | "22/22 [==============================] - 2s 109ms/step - loss: 0.0567 - accuracy: 0.9797 - val_loss: 0.6716 - val_accuracy: 0.9006\n", 1267 | "\n", 1268 | "Epoch 00245: val_accuracy did not improve from 0.97790\n", 1269 | "Epoch 246/400\n", 1270 | "22/22 [==============================] - 3s 120ms/step - loss: 0.0480 - accuracy: 0.9858 - val_loss: 9.6143 - val_accuracy: 0.3757\n", 1271 | "\n", 1272 | "Epoch 00246: val_accuracy did not improve from 0.97790\n", 1273 | "Epoch 247/400\n", 1274 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0343 - accuracy: 0.9884 - val_loss: 3.8950 - val_accuracy: 0.5083\n", 1275 | "\n", 1276 | "Epoch 00247: val_accuracy did not improve from 0.97790\n", 1277 | "Epoch 248/400\n", 1278 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0659 - accuracy: 0.9753 - val_loss: 3.6526 - val_accuracy: 0.5635\n", 1279 | "\n", 1280 | "Epoch 00248: val_accuracy did not improve from 0.97790\n", 1281 | "Epoch 249/400\n", 1282 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0359 - accuracy: 0.9811 - val_loss: 1.3721 - val_accuracy: 0.7790\n", 1283 | "\n", 1284 | "Epoch 00249: val_accuracy did not improve from 0.97790\n", 1285 | "Epoch 250/400\n", 1286 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0369 - accuracy: 0.9855 - val_loss: 0.0436 - val_accuracy: 0.9890\n", 1287 | "\n", 1288 | "Epoch 00250: val_accuracy improved from 0.97790 to 0.98895, saving model to /content/drive/My Drive/Colab Notebooks/Results/checkpoint/epochs:250-val_acc:0.989.hdf5\n", 1289 | "Epoch 251/400\n", 1290 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0420 - accuracy: 0.9866 - val_loss: 0.5751 - val_accuracy: 0.8619\n", 1291 | "\n", 1292 | "Epoch 00251: val_accuracy did not improve from 0.98895\n", 1293 | "Epoch 252/400\n", 1294 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0268 - accuracy: 0.9901 - val_loss: 1.9318 - val_accuracy: 0.7348\n", 1295 | "\n", 1296 | "Epoch 00252: val_accuracy did not improve from 0.98895\n", 1297 | "Epoch 253/400\n", 1298 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0386 - accuracy: 0.9913 - val_loss: 1.1280 - val_accuracy: 0.8011\n", 1299 | "\n", 1300 | "Epoch 00253: val_accuracy did not improve from 0.98895\n", 1301 | "Epoch 254/400\n", 1302 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0772 - accuracy: 0.9826 - val_loss: 9.1966 - val_accuracy: 0.3370\n", 1303 | "\n", 1304 | "Epoch 00254: val_accuracy did not improve from 0.98895\n", 1305 | "Epoch 255/400\n", 1306 | "22/22 [==============================] - 3s 118ms/step - loss: 0.1170 - accuracy: 0.9724 - val_loss: 0.9848 - val_accuracy: 0.8177\n", 1307 | "\n", 1308 | "Epoch 00255: val_accuracy did not improve from 0.98895\n", 1309 | "Epoch 256/400\n", 1310 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0687 - accuracy: 0.9767 - val_loss: 0.8939 - val_accuracy: 0.8177\n", 1311 | "\n", 1312 | "Epoch 00256: val_accuracy did not improve from 0.98895\n", 1313 | "Epoch 257/400\n", 1314 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0736 - accuracy: 0.9797 - val_loss: 4.4775 - val_accuracy: 0.5193\n", 1315 | "\n", 1316 | "Epoch 00257: val_accuracy did not improve from 0.98895\n", 1317 | "Epoch 258/400\n", 1318 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0645 - accuracy: 0.9782 - val_loss: 2.9161 - val_accuracy: 0.5691\n", 1319 | "\n", 1320 | "Epoch 00258: val_accuracy did not improve from 0.98895\n", 1321 | "Epoch 259/400\n", 1322 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0244 - accuracy: 0.9927 - val_loss: 6.6637 - val_accuracy: 0.4807\n", 1323 | "\n", 1324 | "Epoch 00259: val_accuracy did not improve from 0.98895\n", 1325 | "Epoch 260/400\n", 1326 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0533 - accuracy: 0.9844 - val_loss: 8.0427 - val_accuracy: 0.3425\n", 1327 | "\n", 1328 | "Epoch 00260: val_accuracy did not improve from 0.98895\n", 1329 | "Epoch 261/400\n", 1330 | "22/22 [==============================] - 2s 101ms/step - loss: 0.0461 - accuracy: 0.9836 - val_loss: 0.8981 - val_accuracy: 0.7735\n", 1331 | "\n", 1332 | "Epoch 00261: val_accuracy did not improve from 0.98895\n", 1333 | "Epoch 262/400\n", 1334 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0687 - accuracy: 0.9826 - val_loss: 0.3800 - val_accuracy: 0.8895\n", 1335 | "\n", 1336 | "Epoch 00262: val_accuracy did not improve from 0.98895\n", 1337 | "Epoch 263/400\n", 1338 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0715 - accuracy: 0.9855 - val_loss: 2.5003 - val_accuracy: 0.6796\n", 1339 | "\n", 1340 | "Epoch 00263: val_accuracy did not improve from 0.98895\n", 1341 | "Epoch 264/400\n", 1342 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0570 - accuracy: 0.9767 - val_loss: 2.6186 - val_accuracy: 0.6409\n", 1343 | "\n", 1344 | "Epoch 00264: val_accuracy did not improve from 0.98895\n", 1345 | "Epoch 265/400\n", 1346 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0459 - accuracy: 0.9858 - val_loss: 0.2075 - val_accuracy: 0.9669\n", 1347 | "\n", 1348 | "Epoch 00265: val_accuracy did not improve from 0.98895\n", 1349 | "Epoch 266/400\n", 1350 | "22/22 [==============================] - 2s 104ms/step - loss: 0.1477 - accuracy: 0.9782 - val_loss: 4.3815 - val_accuracy: 0.6409\n", 1351 | "\n", 1352 | "Epoch 00266: val_accuracy did not improve from 0.98895\n", 1353 | "Epoch 267/400\n", 1354 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0560 - accuracy: 0.9826 - val_loss: 5.4030 - val_accuracy: 0.4641\n", 1355 | "\n", 1356 | "Epoch 00267: val_accuracy did not improve from 0.98895\n", 1357 | "Epoch 268/400\n", 1358 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0634 - accuracy: 0.9811 - val_loss: 1.6999 - val_accuracy: 0.7017\n", 1359 | "\n", 1360 | "Epoch 00268: val_accuracy did not improve from 0.98895\n", 1361 | "Epoch 269/400\n", 1362 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0514 - accuracy: 0.9807 - val_loss: 1.6502 - val_accuracy: 0.8287\n", 1363 | "\n", 1364 | "Epoch 00269: val_accuracy did not improve from 0.98895\n", 1365 | "Epoch 270/400\n", 1366 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0348 - accuracy: 0.9886 - val_loss: 2.3635 - val_accuracy: 0.6298\n", 1367 | "\n", 1368 | "Epoch 00270: val_accuracy did not improve from 0.98895\n", 1369 | "Epoch 271/400\n", 1370 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0490 - accuracy: 0.9869 - val_loss: 0.6977 - val_accuracy: 0.8287\n", 1371 | "\n", 1372 | "Epoch 00271: val_accuracy did not improve from 0.98895\n", 1373 | "Epoch 272/400\n", 1374 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0497 - accuracy: 0.9840 - val_loss: 7.3116 - val_accuracy: 0.2652\n", 1375 | "\n", 1376 | "Epoch 00272: val_accuracy did not improve from 0.98895\n", 1377 | "Epoch 273/400\n", 1378 | "22/22 [==============================] - 2s 106ms/step - loss: 0.1134 - accuracy: 0.9680 - val_loss: 5.6390 - val_accuracy: 0.3149\n", 1379 | "\n", 1380 | "Epoch 00273: val_accuracy did not improve from 0.98895\n", 1381 | "Epoch 274/400\n", 1382 | "22/22 [==============================] - 2s 102ms/step - loss: 0.2138 - accuracy: 0.9448 - val_loss: 1.3136 - val_accuracy: 0.6519\n", 1383 | "\n", 1384 | "Epoch 00274: val_accuracy did not improve from 0.98895\n", 1385 | "Epoch 275/400\n", 1386 | "22/22 [==============================] - 2s 103ms/step - loss: 0.1214 - accuracy: 0.9613 - val_loss: 1.2338 - val_accuracy: 0.7624\n", 1387 | "\n", 1388 | "Epoch 00275: val_accuracy did not improve from 0.98895\n", 1389 | "Epoch 276/400\n", 1390 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0885 - accuracy: 0.9673 - val_loss: 3.0310 - val_accuracy: 0.6133\n", 1391 | "\n", 1392 | "Epoch 00276: val_accuracy did not improve from 0.98895\n", 1393 | "Epoch 277/400\n", 1394 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0627 - accuracy: 0.9826 - val_loss: 3.8177 - val_accuracy: 0.5249\n", 1395 | "\n", 1396 | "Epoch 00277: val_accuracy did not improve from 0.98895\n", 1397 | "Epoch 278/400\n", 1398 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0625 - accuracy: 0.9753 - val_loss: 1.1010 - val_accuracy: 0.8287\n", 1399 | "\n", 1400 | "Epoch 00278: val_accuracy did not improve from 0.98895\n", 1401 | "Epoch 279/400\n", 1402 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0876 - accuracy: 0.9738 - val_loss: 3.8017 - val_accuracy: 0.5470\n", 1403 | "\n", 1404 | "Epoch 00279: val_accuracy did not improve from 0.98895\n", 1405 | "Epoch 280/400\n", 1406 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0763 - accuracy: 0.9782 - val_loss: 4.4105 - val_accuracy: 0.6409\n", 1407 | "\n", 1408 | "Epoch 00280: val_accuracy did not improve from 0.98895\n", 1409 | "Epoch 281/400\n", 1410 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0609 - accuracy: 0.9826 - val_loss: 6.1785 - val_accuracy: 0.5193\n", 1411 | "\n", 1412 | "Epoch 00281: val_accuracy did not improve from 0.98895\n", 1413 | "Epoch 282/400\n", 1414 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0428 - accuracy: 0.9855 - val_loss: 1.0336 - val_accuracy: 0.8343\n", 1415 | "\n", 1416 | "Epoch 00282: val_accuracy did not improve from 0.98895\n", 1417 | "Epoch 283/400\n", 1418 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0465 - accuracy: 0.9855 - val_loss: 3.0169 - val_accuracy: 0.5967\n", 1419 | "\n", 1420 | "Epoch 00283: val_accuracy did not improve from 0.98895\n", 1421 | "Epoch 284/400\n", 1422 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0412 - accuracy: 0.9801 - val_loss: 1.6395 - val_accuracy: 0.7072\n", 1423 | "\n", 1424 | "Epoch 00284: val_accuracy did not improve from 0.98895\n", 1425 | "Epoch 285/400\n", 1426 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0697 - accuracy: 0.9762 - val_loss: 0.6167 - val_accuracy: 0.8895\n", 1427 | "\n", 1428 | "Epoch 00285: val_accuracy did not improve from 0.98895\n", 1429 | "Epoch 286/400\n", 1430 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0474 - accuracy: 0.9815 - val_loss: 1.7274 - val_accuracy: 0.7680\n", 1431 | "\n", 1432 | "Epoch 00286: val_accuracy did not improve from 0.98895\n", 1433 | "Epoch 287/400\n", 1434 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0334 - accuracy: 0.9896 - val_loss: 0.9511 - val_accuracy: 0.8343\n", 1435 | "\n", 1436 | "Epoch 00287: val_accuracy did not improve from 0.98895\n", 1437 | "Epoch 288/400\n", 1438 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0683 - accuracy: 0.9844 - val_loss: 0.9781 - val_accuracy: 0.8122\n", 1439 | "\n", 1440 | "Epoch 00288: val_accuracy did not improve from 0.98895\n", 1441 | "Epoch 289/400\n", 1442 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0417 - accuracy: 0.9866 - val_loss: 0.3908 - val_accuracy: 0.9061\n", 1443 | "\n", 1444 | "Epoch 00289: val_accuracy did not improve from 0.98895\n", 1445 | "Epoch 290/400\n", 1446 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0381 - accuracy: 0.9815 - val_loss: 1.3445 - val_accuracy: 0.7624\n", 1447 | "\n", 1448 | "Epoch 00290: val_accuracy did not improve from 0.98895\n", 1449 | "Epoch 291/400\n", 1450 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0559 - accuracy: 0.9811 - val_loss: 3.2315 - val_accuracy: 0.6630\n", 1451 | "\n", 1452 | "Epoch 00291: val_accuracy did not improve from 0.98895\n", 1453 | "Epoch 292/400\n", 1454 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0498 - accuracy: 0.9807 - val_loss: 2.7509 - val_accuracy: 0.7017\n", 1455 | "\n", 1456 | "Epoch 00292: val_accuracy did not improve from 0.98895\n", 1457 | "Epoch 293/400\n", 1458 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0268 - accuracy: 0.9869 - val_loss: 1.3800 - val_accuracy: 0.8011\n", 1459 | "\n", 1460 | "Epoch 00293: val_accuracy did not improve from 0.98895\n", 1461 | "Epoch 294/400\n", 1462 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0205 - accuracy: 0.9957 - val_loss: 2.5841 - val_accuracy: 0.7017\n", 1463 | "\n", 1464 | "Epoch 00294: val_accuracy did not improve from 0.98895\n", 1465 | "Epoch 295/400\n", 1466 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0456 - accuracy: 0.9797 - val_loss: 0.7213 - val_accuracy: 0.8177\n", 1467 | "\n", 1468 | "Epoch 00295: val_accuracy did not improve from 0.98895\n", 1469 | "Epoch 296/400\n", 1470 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0751 - accuracy: 0.9821 - val_loss: 3.3744 - val_accuracy: 0.5856\n", 1471 | "\n", 1472 | "Epoch 00296: val_accuracy did not improve from 0.98895\n", 1473 | "Epoch 297/400\n", 1474 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0768 - accuracy: 0.9782 - val_loss: 1.4383 - val_accuracy: 0.7735\n", 1475 | "\n", 1476 | "Epoch 00297: val_accuracy did not improve from 0.98895\n", 1477 | "Epoch 298/400\n", 1478 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0330 - accuracy: 0.9872 - val_loss: 0.7713 - val_accuracy: 0.8785\n", 1479 | "\n", 1480 | "Epoch 00298: val_accuracy did not improve from 0.98895\n", 1481 | "Epoch 299/400\n", 1482 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0615 - accuracy: 0.9840 - val_loss: 2.1728 - val_accuracy: 0.6906\n", 1483 | "\n", 1484 | "Epoch 00299: val_accuracy did not improve from 0.98895\n", 1485 | "Epoch 300/400\n", 1486 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0508 - accuracy: 0.9855 - val_loss: 2.6319 - val_accuracy: 0.6409\n", 1487 | "\n", 1488 | "Epoch 00300: val_accuracy did not improve from 0.98895\n", 1489 | "Epoch 301/400\n", 1490 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0292 - accuracy: 0.9913 - val_loss: 0.8445 - val_accuracy: 0.8564\n", 1491 | "\n", 1492 | "Epoch 00301: val_accuracy did not improve from 0.98895\n", 1493 | "Epoch 302/400\n", 1494 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0415 - accuracy: 0.9811 - val_loss: 3.3914 - val_accuracy: 0.5856\n", 1495 | "\n", 1496 | "Epoch 00302: val_accuracy did not improve from 0.98895\n", 1497 | "Epoch 303/400\n", 1498 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0364 - accuracy: 0.9927 - val_loss: 0.3598 - val_accuracy: 0.9116\n", 1499 | "\n", 1500 | "Epoch 00303: val_accuracy did not improve from 0.98895\n", 1501 | "Epoch 304/400\n", 1502 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0694 - accuracy: 0.9767 - val_loss: 5.7689 - val_accuracy: 0.4862\n", 1503 | "\n", 1504 | "Epoch 00304: val_accuracy did not improve from 0.98895\n", 1505 | "Epoch 305/400\n", 1506 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0434 - accuracy: 0.9901 - val_loss: 7.4134 - val_accuracy: 0.4144\n", 1507 | "\n", 1508 | "Epoch 00305: val_accuracy did not improve from 0.98895\n", 1509 | "Epoch 306/400\n", 1510 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0758 - accuracy: 0.9851 - val_loss: 6.5363 - val_accuracy: 0.3591\n", 1511 | "\n", 1512 | "Epoch 00306: val_accuracy did not improve from 0.98895\n", 1513 | "Epoch 307/400\n", 1514 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0547 - accuracy: 0.9797 - val_loss: 5.4904 - val_accuracy: 0.5414\n", 1515 | "\n", 1516 | "Epoch 00307: val_accuracy did not improve from 0.98895\n", 1517 | "Epoch 308/400\n", 1518 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0702 - accuracy: 0.9801 - val_loss: 2.4234 - val_accuracy: 0.6906\n", 1519 | "\n", 1520 | "Epoch 00308: val_accuracy did not improve from 0.98895\n", 1521 | "Epoch 309/400\n", 1522 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0859 - accuracy: 0.9782 - val_loss: 1.3565 - val_accuracy: 0.8343\n", 1523 | "\n", 1524 | "Epoch 00309: val_accuracy did not improve from 0.98895\n", 1525 | "Epoch 310/400\n", 1526 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0797 - accuracy: 0.9797 - val_loss: 2.6607 - val_accuracy: 0.6961\n", 1527 | "\n", 1528 | "Epoch 00310: val_accuracy did not improve from 0.98895\n", 1529 | "Epoch 311/400\n", 1530 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0795 - accuracy: 0.9836 - val_loss: 1.3465 - val_accuracy: 0.7569\n", 1531 | "\n", 1532 | "Epoch 00311: val_accuracy did not improve from 0.98895\n", 1533 | "Epoch 312/400\n", 1534 | "22/22 [==============================] - 2s 109ms/step - loss: 0.0477 - accuracy: 0.9844 - val_loss: 0.6415 - val_accuracy: 0.8674\n", 1535 | "\n", 1536 | "Epoch 00312: val_accuracy did not improve from 0.98895\n", 1537 | "Epoch 313/400\n", 1538 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0850 - accuracy: 0.9840 - val_loss: 3.1354 - val_accuracy: 0.5580\n", 1539 | "\n", 1540 | "Epoch 00313: val_accuracy did not improve from 0.98895\n", 1541 | "Epoch 314/400\n", 1542 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0708 - accuracy: 0.9767 - val_loss: 4.1811 - val_accuracy: 0.5083\n", 1543 | "\n", 1544 | "Epoch 00314: val_accuracy did not improve from 0.98895\n", 1545 | "Epoch 315/400\n", 1546 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0429 - accuracy: 0.9855 - val_loss: 1.4781 - val_accuracy: 0.8453\n", 1547 | "\n", 1548 | "Epoch 00315: val_accuracy did not improve from 0.98895\n", 1549 | "Epoch 316/400\n", 1550 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0360 - accuracy: 0.9855 - val_loss: 0.7996 - val_accuracy: 0.8564\n", 1551 | "\n", 1552 | "Epoch 00316: val_accuracy did not improve from 0.98895\n", 1553 | "Epoch 317/400\n", 1554 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0663 - accuracy: 0.9826 - val_loss: 1.6688 - val_accuracy: 0.7680\n", 1555 | "\n", 1556 | "Epoch 00317: val_accuracy did not improve from 0.98895\n", 1557 | "Epoch 318/400\n", 1558 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0605 - accuracy: 0.9782 - val_loss: 5.1736 - val_accuracy: 0.5193\n", 1559 | "\n", 1560 | "Epoch 00318: val_accuracy did not improve from 0.98895\n", 1561 | "Epoch 319/400\n", 1562 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0346 - accuracy: 0.9942 - val_loss: 4.3468 - val_accuracy: 0.5470\n", 1563 | "\n", 1564 | "Epoch 00319: val_accuracy did not improve from 0.98895\n", 1565 | "Epoch 320/400\n", 1566 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0485 - accuracy: 0.9811 - val_loss: 0.4919 - val_accuracy: 0.8785\n", 1567 | "\n", 1568 | "Epoch 00320: val_accuracy did not improve from 0.98895\n", 1569 | "Epoch 321/400\n", 1570 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0313 - accuracy: 0.9898 - val_loss: 7.0625 - val_accuracy: 0.4751\n", 1571 | "\n", 1572 | "Epoch 00321: val_accuracy did not improve from 0.98895\n", 1573 | "Epoch 322/400\n", 1574 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0438 - accuracy: 0.9869 - val_loss: 2.6001 - val_accuracy: 0.6685\n", 1575 | "\n", 1576 | "Epoch 00322: val_accuracy did not improve from 0.98895\n", 1577 | "Epoch 323/400\n", 1578 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0842 - accuracy: 0.9767 - val_loss: 6.5047 - val_accuracy: 0.4033\n", 1579 | "\n", 1580 | "Epoch 00323: val_accuracy did not improve from 0.98895\n", 1581 | "Epoch 324/400\n", 1582 | "22/22 [==============================] - 2s 111ms/step - loss: 0.0881 - accuracy: 0.9730 - val_loss: 6.6482 - val_accuracy: 0.4254\n", 1583 | "\n", 1584 | "Epoch 00324: val_accuracy did not improve from 0.98895\n", 1585 | "Epoch 325/400\n", 1586 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0512 - accuracy: 0.9911 - val_loss: 10.1788 - val_accuracy: 0.2486\n", 1587 | "\n", 1588 | "Epoch 00325: val_accuracy did not improve from 0.98895\n", 1589 | "Epoch 326/400\n", 1590 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0429 - accuracy: 0.9913 - val_loss: 4.4595 - val_accuracy: 0.5028\n", 1591 | "\n", 1592 | "Epoch 00326: val_accuracy did not improve from 0.98895\n", 1593 | "Epoch 327/400\n", 1594 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0588 - accuracy: 0.9811 - val_loss: 2.0299 - val_accuracy: 0.7624\n", 1595 | "\n", 1596 | "Epoch 00327: val_accuracy did not improve from 0.98895\n", 1597 | "Epoch 328/400\n", 1598 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0270 - accuracy: 0.9898 - val_loss: 2.7155 - val_accuracy: 0.7624\n", 1599 | "\n", 1600 | "Epoch 00328: val_accuracy did not improve from 0.98895\n", 1601 | "Epoch 329/400\n", 1602 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0259 - accuracy: 0.9901 - val_loss: 2.1697 - val_accuracy: 0.7845\n", 1603 | "\n", 1604 | "Epoch 00329: val_accuracy did not improve from 0.98895\n", 1605 | "Epoch 330/400\n", 1606 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0439 - accuracy: 0.9898 - val_loss: 0.6481 - val_accuracy: 0.8674\n", 1607 | "\n", 1608 | "Epoch 00330: val_accuracy did not improve from 0.98895\n", 1609 | "Epoch 331/400\n", 1610 | "22/22 [==============================] - 2s 101ms/step - loss: 0.0790 - accuracy: 0.9851 - val_loss: 0.8979 - val_accuracy: 0.8729\n", 1611 | "\n", 1612 | "Epoch 00331: val_accuracy did not improve from 0.98895\n", 1613 | "Epoch 332/400\n", 1614 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0185 - accuracy: 0.9913 - val_loss: 4.9225 - val_accuracy: 0.5912\n", 1615 | "\n", 1616 | "Epoch 00332: val_accuracy did not improve from 0.98895\n", 1617 | "Epoch 333/400\n", 1618 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0238 - accuracy: 0.9884 - val_loss: 6.8866 - val_accuracy: 0.5083\n", 1619 | "\n", 1620 | "Epoch 00333: val_accuracy did not improve from 0.98895\n", 1621 | "Epoch 334/400\n", 1622 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0088 - accuracy: 0.9971 - val_loss: 0.1106 - val_accuracy: 0.9613\n", 1623 | "\n", 1624 | "Epoch 00334: val_accuracy did not improve from 0.98895\n", 1625 | "Epoch 335/400\n", 1626 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0257 - accuracy: 0.9929 - val_loss: 0.3377 - val_accuracy: 0.9282\n", 1627 | "\n", 1628 | "Epoch 00335: val_accuracy did not improve from 0.98895\n", 1629 | "Epoch 336/400\n", 1630 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0196 - accuracy: 0.9911 - val_loss: 0.6017 - val_accuracy: 0.8674\n", 1631 | "\n", 1632 | "Epoch 00336: val_accuracy did not improve from 0.98895\n", 1633 | "Epoch 337/400\n", 1634 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0263 - accuracy: 0.9901 - val_loss: 0.6077 - val_accuracy: 0.8840\n", 1635 | "\n", 1636 | "Epoch 00337: val_accuracy did not improve from 0.98895\n", 1637 | "Epoch 338/400\n", 1638 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0238 - accuracy: 0.9942 - val_loss: 0.7775 - val_accuracy: 0.8785\n", 1639 | "\n", 1640 | "Epoch 00338: val_accuracy did not improve from 0.98895\n", 1641 | "Epoch 339/400\n", 1642 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0271 - accuracy: 0.9913 - val_loss: 0.8364 - val_accuracy: 0.8398\n", 1643 | "\n", 1644 | "Epoch 00339: val_accuracy did not improve from 0.98895\n", 1645 | "Epoch 340/400\n", 1646 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0335 - accuracy: 0.9913 - val_loss: 10.0238 - val_accuracy: 0.3867\n", 1647 | "\n", 1648 | "Epoch 00340: val_accuracy did not improve from 0.98895\n", 1649 | "Epoch 341/400\n", 1650 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0508 - accuracy: 0.9855 - val_loss: 5.7061 - val_accuracy: 0.3094\n", 1651 | "\n", 1652 | "Epoch 00341: val_accuracy did not improve from 0.98895\n", 1653 | "Epoch 342/400\n", 1654 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0306 - accuracy: 0.9884 - val_loss: 1.6755 - val_accuracy: 0.8232\n", 1655 | "\n", 1656 | "Epoch 00342: val_accuracy did not improve from 0.98895\n", 1657 | "Epoch 343/400\n", 1658 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0342 - accuracy: 0.9869 - val_loss: 1.3229 - val_accuracy: 0.8564\n", 1659 | "\n", 1660 | "Epoch 00343: val_accuracy did not improve from 0.98895\n", 1661 | "Epoch 344/400\n", 1662 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0562 - accuracy: 0.9826 - val_loss: 0.3984 - val_accuracy: 0.9116\n", 1663 | "\n", 1664 | "Epoch 00344: val_accuracy did not improve from 0.98895\n", 1665 | "Epoch 345/400\n", 1666 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0515 - accuracy: 0.9855 - val_loss: 0.7530 - val_accuracy: 0.8729\n", 1667 | "\n", 1668 | "Epoch 00345: val_accuracy did not improve from 0.98895\n", 1669 | "Epoch 346/400\n", 1670 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0505 - accuracy: 0.9913 - val_loss: 5.5248 - val_accuracy: 0.4530\n", 1671 | "\n", 1672 | "Epoch 00346: val_accuracy did not improve from 0.98895\n", 1673 | "Epoch 347/400\n", 1674 | "22/22 [==============================] - 2s 109ms/step - loss: 0.0640 - accuracy: 0.9811 - val_loss: 2.8908 - val_accuracy: 0.6464\n", 1675 | "\n", 1676 | "Epoch 00347: val_accuracy did not improve from 0.98895\n", 1677 | "Epoch 348/400\n", 1678 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0463 - accuracy: 0.9869 - val_loss: 4.5867 - val_accuracy: 0.6077\n", 1679 | "\n", 1680 | "Epoch 00348: val_accuracy did not improve from 0.98895\n", 1681 | "Epoch 349/400\n", 1682 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0229 - accuracy: 0.9927 - val_loss: 3.1292 - val_accuracy: 0.7127\n", 1683 | "\n", 1684 | "Epoch 00349: val_accuracy did not improve from 0.98895\n", 1685 | "Epoch 350/400\n", 1686 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0477 - accuracy: 0.9840 - val_loss: 2.6480 - val_accuracy: 0.6685\n", 1687 | "\n", 1688 | "Epoch 00350: val_accuracy did not improve from 0.98895\n", 1689 | "Epoch 351/400\n", 1690 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0481 - accuracy: 0.9872 - val_loss: 1.3319 - val_accuracy: 0.7845\n", 1691 | "\n", 1692 | "Epoch 00351: val_accuracy did not improve from 0.98895\n", 1693 | "Epoch 352/400\n", 1694 | "22/22 [==============================] - 2s 101ms/step - loss: 0.0430 - accuracy: 0.9866 - val_loss: 0.6046 - val_accuracy: 0.8729\n", 1695 | "\n", 1696 | "Epoch 00352: val_accuracy did not improve from 0.98895\n", 1697 | "Epoch 353/400\n", 1698 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0505 - accuracy: 0.9855 - val_loss: 1.7643 - val_accuracy: 0.7348\n", 1699 | "\n", 1700 | "Epoch 00353: val_accuracy did not improve from 0.98895\n", 1701 | "Epoch 354/400\n", 1702 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0270 - accuracy: 0.9869 - val_loss: 0.2391 - val_accuracy: 0.9392\n", 1703 | "\n", 1704 | "Epoch 00354: val_accuracy did not improve from 0.98895\n", 1705 | "Epoch 355/400\n", 1706 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0281 - accuracy: 0.9898 - val_loss: 4.2566 - val_accuracy: 0.4751\n", 1707 | "\n", 1708 | "Epoch 00355: val_accuracy did not improve from 0.98895\n", 1709 | "Epoch 356/400\n", 1710 | "22/22 [==============================] - 2s 109ms/step - loss: 0.0107 - accuracy: 0.9972 - val_loss: 0.6923 - val_accuracy: 0.8619\n", 1711 | "\n", 1712 | "Epoch 00356: val_accuracy did not improve from 0.98895\n", 1713 | "Epoch 357/400\n", 1714 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0410 - accuracy: 0.9913 - val_loss: 8.7482 - val_accuracy: 0.3536\n", 1715 | "\n", 1716 | "Epoch 00357: val_accuracy did not improve from 0.98895\n", 1717 | "Epoch 358/400\n", 1718 | "22/22 [==============================] - 2s 102ms/step - loss: 0.0286 - accuracy: 0.9911 - val_loss: 0.1874 - val_accuracy: 0.9337\n", 1719 | "\n", 1720 | "Epoch 00358: val_accuracy did not improve from 0.98895\n", 1721 | "Epoch 359/400\n", 1722 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0124 - accuracy: 0.9942 - val_loss: 4.1315 - val_accuracy: 0.7293\n", 1723 | "\n", 1724 | "Epoch 00359: val_accuracy did not improve from 0.98895\n", 1725 | "Epoch 360/400\n", 1726 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0348 - accuracy: 0.9884 - val_loss: 0.9466 - val_accuracy: 0.8840\n", 1727 | "\n", 1728 | "Epoch 00360: val_accuracy did not improve from 0.98895\n", 1729 | "Epoch 361/400\n", 1730 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0055 - accuracy: 0.9986 - val_loss: 0.1830 - val_accuracy: 0.9558\n", 1731 | "\n", 1732 | "Epoch 00361: val_accuracy did not improve from 0.98895\n", 1733 | "Epoch 362/400\n", 1734 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0513 - accuracy: 0.9884 - val_loss: 1.4977 - val_accuracy: 0.8011\n", 1735 | "\n", 1736 | "Epoch 00362: val_accuracy did not improve from 0.98895\n", 1737 | "Epoch 363/400\n", 1738 | "22/22 [==============================] - 2s 110ms/step - loss: 0.0534 - accuracy: 0.9869 - val_loss: 0.9281 - val_accuracy: 0.8619\n", 1739 | "\n", 1740 | "Epoch 00363: val_accuracy did not improve from 0.98895\n", 1741 | "Epoch 364/400\n", 1742 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0499 - accuracy: 0.9855 - val_loss: 0.1888 - val_accuracy: 0.9448\n", 1743 | "\n", 1744 | "Epoch 00364: val_accuracy did not improve from 0.98895\n", 1745 | "Epoch 365/400\n", 1746 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0723 - accuracy: 0.9840 - val_loss: 0.6020 - val_accuracy: 0.8895\n", 1747 | "\n", 1748 | "Epoch 00365: val_accuracy did not improve from 0.98895\n", 1749 | "Epoch 366/400\n", 1750 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0326 - accuracy: 0.9927 - val_loss: 1.8134 - val_accuracy: 0.7238\n", 1751 | "\n", 1752 | "Epoch 00366: val_accuracy did not improve from 0.98895\n", 1753 | "Epoch 367/400\n", 1754 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0366 - accuracy: 0.9869 - val_loss: 1.6693 - val_accuracy: 0.7403\n", 1755 | "\n", 1756 | "Epoch 00367: val_accuracy did not improve from 0.98895\n", 1757 | "Epoch 368/400\n", 1758 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0210 - accuracy: 0.9927 - val_loss: 0.2362 - val_accuracy: 0.9558\n", 1759 | "\n", 1760 | "Epoch 00368: val_accuracy did not improve from 0.98895\n", 1761 | "Epoch 369/400\n", 1762 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0321 - accuracy: 0.9913 - val_loss: 0.3532 - val_accuracy: 0.9171\n", 1763 | "\n", 1764 | "Epoch 00369: val_accuracy did not improve from 0.98895\n", 1765 | "Epoch 370/400\n", 1766 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0357 - accuracy: 0.9898 - val_loss: 5.3933 - val_accuracy: 0.5193\n", 1767 | "\n", 1768 | "Epoch 00370: val_accuracy did not improve from 0.98895\n", 1769 | "Epoch 371/400\n", 1770 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0704 - accuracy: 0.9738 - val_loss: 3.8125 - val_accuracy: 0.6022\n", 1771 | "\n", 1772 | "Epoch 00371: val_accuracy did not improve from 0.98895\n", 1773 | "Epoch 372/400\n", 1774 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1037 - accuracy: 0.9797 - val_loss: 6.9604 - val_accuracy: 0.4365\n", 1775 | "\n", 1776 | "Epoch 00372: val_accuracy did not improve from 0.98895\n", 1777 | "Epoch 373/400\n", 1778 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0592 - accuracy: 0.9797 - val_loss: 11.8972 - val_accuracy: 0.3646\n", 1779 | "\n", 1780 | "Epoch 00373: val_accuracy did not improve from 0.98895\n", 1781 | "Epoch 374/400\n", 1782 | "22/22 [==============================] - 2s 107ms/step - loss: 0.2170 - accuracy: 0.9549 - val_loss: 4.6215 - val_accuracy: 0.4917\n", 1783 | "\n", 1784 | "Epoch 00374: val_accuracy did not improve from 0.98895\n", 1785 | "Epoch 375/400\n", 1786 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0887 - accuracy: 0.9759 - val_loss: 8.4356 - val_accuracy: 0.4475\n", 1787 | "\n", 1788 | "Epoch 00375: val_accuracy did not improve from 0.98895\n", 1789 | "Epoch 376/400\n", 1790 | "22/22 [==============================] - 2s 103ms/step - loss: 0.0431 - accuracy: 0.9836 - val_loss: 6.1305 - val_accuracy: 0.5359\n", 1791 | "\n", 1792 | "Epoch 00376: val_accuracy did not improve from 0.98895\n", 1793 | "Epoch 377/400\n", 1794 | "22/22 [==============================] - 2s 110ms/step - loss: 0.0813 - accuracy: 0.9787 - val_loss: 1.6999 - val_accuracy: 0.6685\n", 1795 | "\n", 1796 | "Epoch 00377: val_accuracy did not improve from 0.98895\n", 1797 | "Epoch 378/400\n", 1798 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0782 - accuracy: 0.9724 - val_loss: 1.1692 - val_accuracy: 0.8287\n", 1799 | "\n", 1800 | "Epoch 00378: val_accuracy did not improve from 0.98895\n", 1801 | "Epoch 379/400\n", 1802 | "22/22 [==============================] - 2s 107ms/step - loss: 0.1022 - accuracy: 0.9732 - val_loss: 3.3806 - val_accuracy: 0.6022\n", 1803 | "\n", 1804 | "Epoch 00379: val_accuracy did not improve from 0.98895\n", 1805 | "Epoch 380/400\n", 1806 | "22/22 [==============================] - 2s 110ms/step - loss: 0.0666 - accuracy: 0.9872 - val_loss: 0.7162 - val_accuracy: 0.8785\n", 1807 | "\n", 1808 | "Epoch 00380: val_accuracy did not improve from 0.98895\n", 1809 | "Epoch 381/400\n", 1810 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0114 - accuracy: 0.9970 - val_loss: 0.4832 - val_accuracy: 0.9061\n", 1811 | "\n", 1812 | "Epoch 00381: val_accuracy did not improve from 0.98895\n", 1813 | "Epoch 382/400\n", 1814 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0273 - accuracy: 0.9886 - val_loss: 0.0681 - val_accuracy: 0.9834\n", 1815 | "\n", 1816 | "Epoch 00382: val_accuracy did not improve from 0.98895\n", 1817 | "Epoch 383/400\n", 1818 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0140 - accuracy: 0.9971 - val_loss: 0.1672 - val_accuracy: 0.9613\n", 1819 | "\n", 1820 | "Epoch 00383: val_accuracy did not improve from 0.98895\n", 1821 | "Epoch 384/400\n", 1822 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0260 - accuracy: 0.9898 - val_loss: 1.7408 - val_accuracy: 0.7182\n", 1823 | "\n", 1824 | "Epoch 00384: val_accuracy did not improve from 0.98895\n", 1825 | "Epoch 385/400\n", 1826 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0577 - accuracy: 0.9855 - val_loss: 0.1111 - val_accuracy: 0.9834\n", 1827 | "\n", 1828 | "Epoch 00385: val_accuracy did not improve from 0.98895\n", 1829 | "Epoch 386/400\n", 1830 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0322 - accuracy: 0.9898 - val_loss: 0.1198 - val_accuracy: 0.9834\n", 1831 | "\n", 1832 | "Epoch 00386: val_accuracy did not improve from 0.98895\n", 1833 | "Epoch 387/400\n", 1834 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0354 - accuracy: 0.9869 - val_loss: 3.8284 - val_accuracy: 0.6354\n", 1835 | "\n", 1836 | "Epoch 00387: val_accuracy did not improve from 0.98895\n", 1837 | "Epoch 388/400\n", 1838 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0977 - accuracy: 0.9732 - val_loss: 11.5260 - val_accuracy: 0.1878\n", 1839 | "\n", 1840 | "Epoch 00388: val_accuracy did not improve from 0.98895\n", 1841 | "Epoch 389/400\n", 1842 | "22/22 [==============================] - 2s 111ms/step - loss: 0.0864 - accuracy: 0.9730 - val_loss: 1.3363 - val_accuracy: 0.8177\n", 1843 | "\n", 1844 | "Epoch 00389: val_accuracy did not improve from 0.98895\n", 1845 | "Epoch 390/400\n", 1846 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0742 - accuracy: 0.9811 - val_loss: 1.1549 - val_accuracy: 0.8287\n", 1847 | "\n", 1848 | "Epoch 00390: val_accuracy did not improve from 0.98895\n", 1849 | "Epoch 391/400\n", 1850 | "22/22 [==============================] - 2s 105ms/step - loss: 0.0498 - accuracy: 0.9884 - val_loss: 8.7388 - val_accuracy: 0.5083\n", 1851 | "\n", 1852 | "Epoch 00391: val_accuracy did not improve from 0.98895\n", 1853 | "Epoch 392/400\n", 1854 | "22/22 [==============================] - 2s 104ms/step - loss: 0.0612 - accuracy: 0.9898 - val_loss: 2.7869 - val_accuracy: 0.7182\n", 1855 | "\n", 1856 | "Epoch 00392: val_accuracy did not improve from 0.98895\n", 1857 | "Epoch 393/400\n", 1858 | "22/22 [==============================] - 2s 109ms/step - loss: 0.0136 - accuracy: 0.9956 - val_loss: 0.4253 - val_accuracy: 0.9171\n", 1859 | "\n", 1860 | "Epoch 00393: val_accuracy did not improve from 0.98895\n", 1861 | "Epoch 394/400\n", 1862 | "22/22 [==============================] - 2s 107ms/step - loss: 0.0771 - accuracy: 0.9855 - val_loss: 0.8329 - val_accuracy: 0.8453\n", 1863 | "\n", 1864 | "Epoch 00394: val_accuracy did not improve from 0.98895\n", 1865 | "Epoch 395/400\n", 1866 | "22/22 [==============================] - 2s 110ms/step - loss: 0.0786 - accuracy: 0.9797 - val_loss: 0.3015 - val_accuracy: 0.9392\n", 1867 | "\n", 1868 | "Epoch 00395: val_accuracy did not improve from 0.98895\n", 1869 | "Epoch 396/400\n", 1870 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0680 - accuracy: 0.9840 - val_loss: 3.6873 - val_accuracy: 0.5746\n", 1871 | "\n", 1872 | "Epoch 00396: val_accuracy did not improve from 0.98895\n", 1873 | "Epoch 397/400\n", 1874 | "22/22 [==============================] - 2s 106ms/step - loss: 0.0483 - accuracy: 0.9797 - val_loss: 0.4572 - val_accuracy: 0.9116\n", 1875 | "\n", 1876 | "Epoch 00397: val_accuracy did not improve from 0.98895\n", 1877 | "Epoch 398/400\n", 1878 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0242 - accuracy: 0.9913 - val_loss: 0.5429 - val_accuracy: 0.8619\n", 1879 | "\n", 1880 | "Epoch 00398: val_accuracy did not improve from 0.98895\n", 1881 | "Epoch 399/400\n", 1882 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0384 - accuracy: 0.9869 - val_loss: 8.1943 - val_accuracy: 0.4586\n", 1883 | "\n", 1884 | "Epoch 00399: val_accuracy did not improve from 0.98895\n", 1885 | "Epoch 400/400\n", 1886 | "22/22 [==============================] - 2s 108ms/step - loss: 0.0209 - accuracy: 0.9915 - val_loss: 1.9546 - val_accuracy: 0.7901\n", 1887 | "\n", 1888 | "Epoch 00400: val_accuracy did not improve from 0.98895\n", 1889 | "[INFO] serializing network...\n", 1890 | "[INFO] serializing label binarizer...\n", 1891 | "[INFO] evaluating network...\n" 1892 | ], 1893 | "name": "stdout" 1894 | }, 1895 | { 1896 | "output_type": "stream", 1897 | "text": [ 1898 | "/usr/local/lib/python3.6/dist-packages/sklearn/metrics/_classification.py:1272: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", 1899 | " _warn_prf(average, modifier, msg_start, len(result))\n" 1900 | ], 1901 | "name": "stderr" 1902 | }, 1903 | { 1904 | "output_type": "stream", 1905 | "text": [ 1906 | " precision recall f1-score support\n", 1907 | "\n", 1908 | " Cluster porosity 0.91 0.77 0.83 13\n", 1909 | " No defect 1.00 1.00 1.00 21\n", 1910 | " cap undercut 0.41 0.88 0.56 17\n", 1911 | "lack of root penetration 1.00 0.35 0.52 17\n", 1912 | " longitudinal crack 0.95 1.00 0.97 36\n", 1913 | " parallel slag lines 1.00 1.00 1.00 14\n", 1914 | " root undercut 0.57 0.73 0.64 11\n", 1915 | " silica inclusions 0.00 0.00 0.00 11\n", 1916 | " slag line 0.64 0.90 0.75 10\n", 1917 | " transverse crack 0.92 0.77 0.84 31\n", 1918 | "\n", 1919 | " accuracy 0.79 181\n", 1920 | " macro avg 0.74 0.74 0.71 181\n", 1921 | " weighted avg 0.81 0.79 0.77 181\n", 1922 | "\n" 1923 | ], 1924 | "name": "stdout" 1925 | } 1926 | ] 1927 | }, 1928 | { 1929 | "cell_type": "code", 1930 | "metadata": { 1931 | "id": "1YhvnkkUZkBg", 1932 | "colab_type": "code", 1933 | "colab": {} 1934 | }, 1935 | "source": [ 1936 | "" 1937 | ], 1938 | "execution_count": null, 1939 | "outputs": [] 1940 | } 1941 | ] 1942 | } --------------------------------------------------------------------------------