├── .DS_Store
├── .gitignore
├── .ipynb_checkpoints
├── PreProcessingModule-checkpoint.ipynb
└── main-checkpoint.ipynb
├── CNN.py
├── CNN.pyc
├── Constants.py
├── Constants.pyc
├── Helper.py
├── ObjectDetection.py
├── PreProcessingModule.ipynb
├── PreProcessingModule.py
├── PreProcessingModule.pyc
├── README.md
├── Report Folder
├── 1.png
├── Img1.png
├── Img10.png
├── Img2.png
├── Img3.png
├── Img4.png
├── Img5.png
├── Img7.png
├── Img8.png
├── Img9.png
├── ObjectDetectionWithImageSegmentation.png
├── image-pipeline
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5-comp.png
│ └── 5-ours.png
├── object-detection-classification.pdf
└── report.txt
├── Tuning_CNN.py
├── __pycache__
├── CNN.cpython-35.pyc
├── CNN.cpython-36.pyc
├── Constants.cpython-35.pyc
├── Constants.cpython-36.pyc
├── Helper.cpython-36.pyc
├── ObjectDetection.cpython-35.pyc
├── ObjectDetection.cpython-36.pyc
├── PreProcessingModule.cpython-35.pyc
└── PreProcessingModule.cpython-36.pyc
├── logs
├── Fold #0
│ ├── events.out.tfevents.1525479917.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525479920.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480085.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480087.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480396.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480398.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480473.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480475.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480660.DESKTOP-8GOVN1C
│ └── events.out.tfevents.1525480662.DESKTOP-8GOVN1C
└── Fold #1
│ ├── events.out.tfevents.1525479946.DESKTOP-8GOVN1C
│ ├── events.out.tfevents.1525480114.DESKTOP-8GOVN1C
│ └── events.out.tfevents.1525480688.DESKTOP-8GOVN1C
├── main.ipynb
├── main.py
├── object_detection_test
├── Original Image 0.png
├── Original Image 1.png
├── Pretrained Version 1 Image 0.png
├── Pretrained Version 1 Image 1.png
├── Pretrained Version 2 Image 0.png
├── Pretrained Version 2 Image 1.png
├── Pretrained Version 3 Image 0.png
├── Pretrained Version 3 Image 1.png
├── Pretrained Version 4 Image 0.png
├── Pretrained Version 4 Image 1.png
├── Pretrained Version 5 Image 0.png
├── Pretrained Version 5 Image 1.png
├── Pretrained Version 6 Image 0.png
├── Pretrained Version 6 Image 1.png
├── Version 3 Image 0.png
├── Version 3 Image 1.png
├── Version 5 Image 0.png
├── Version 5 Image 1.png
├── Version 6 Image 0.png
├── Version 6 Image 1.png
└── test.png
└── text_logs
├── Fold #0.txt
├── Fold #1.txt
├── Fold #2.txt
├── Fold #3.txt
├── Fold #4.txt
├── average.txt
├── pretrained_attempt_4.txt
├── pretrained_attempt_5.txt
└── pretrained_attempt_6.txt
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | images/
2 | small_images/
3 | smallShipData.json
4 | small_test_data.txt
5 | small_training_data.txt
6 | other_small_test_data.json
7 | other_small_training_data.json
8 | *.h5
--------------------------------------------------------------------------------
/.ipynb_checkpoints/PreProcessingModule-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Define Preprocessing Methods"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "from PIL import Image, ImageEnhance, ImageOps\n",
17 | "import numpy as np\n",
18 | "import Constants\n",
19 | "import os\n",
20 | "import cv2\n",
21 | "import pdb\n",
22 | "\n",
23 | "##############################################################################\n",
24 | "#Returns a list of file names for the images\n",
25 | "##############################################################################\n",
26 | "def get_unprocessed_image_files():\n",
27 | " \n",
28 | " #Stores all of the big images in this list\n",
29 | " image_file_list = None\n",
30 | " \n",
31 | " #Retrieve image paths\n",
32 | " for root, dirs, files in os.walk(Constants.IMAGE_FILE_LOCATION):\n",
33 | " image_file_list = files;\n",
34 | " \n",
35 | " return image_file_list;\n"
36 | ]
37 | },
38 | {
39 | "cell_type": "code",
40 | "execution_count": 2,
41 | "metadata": {},
42 | "outputs": [],
43 | "source": [
44 | "#Erosion followed by dilation to remove/reduce noise in an image\n",
45 | "def cv_opening(img, kernel) :\n",
46 | " opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)\n",
47 | " return opening\n",
48 | "\n",
49 | "#Dilation followed by erosion to plug in holes in the image\n",
50 | "def cv_closing(img, kernel) :\n",
51 | " closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)\n",
52 | " return closing\n",
53 | "\n",
54 | "#Cleans the image and combines spaces on the image\n",
55 | "def clean_image(img, kernel) :\n",
56 | " img = cv_opening(img, kernel)\n",
57 | " #Dilate the image in order to fill in empty spots\n",
58 | " dilation_kernel = np.ones((3,3), np.uint8) \n",
59 | " img = cv2.dilate(img, dilation_kernel, iterations = 2)\n",
60 | " #Attempt to return the objects to closer to their normal sizes\n",
61 | " erosion_kernel = np.ones((2,2), np.uint8)\n",
62 | " img = cv2.erode(img, erosion_kernel, iterations = 1)\n",
63 | " \n",
64 | " return img\n"
65 | ]
66 | },
67 | {
68 | "cell_type": "code",
69 | "execution_count": 3,
70 | "metadata": {},
71 | "outputs": [],
72 | "source": [
73 | "##############################################################################\n",
74 | "#Return a list of preprocessed image files where each image is greyscaled\n",
75 | "#the contrast is increased by a large margin to reduce the number of \n",
76 | "#color variation\n",
77 | "#############################################################################\n",
78 | "def get_pr_images(max_images = 1, greyscale=None, greyscale_threshhold = 80):\n",
79 | " #Retrieve image file list\n",
80 | " image_file_list = get_unprocessed_image_files()\n",
81 | " #Turn each image file item into an Image object\n",
82 | " image_list = []\n",
83 | " #Create a kernel to move through the image\n",
84 | " kernel = np.ones((3,3), np.uint8)\n",
85 | " \n",
86 | " #Counter to see how many images we are working on and break once we reach image_count\n",
87 | " counter = 0\n",
88 | " \n",
89 | " #Iterate through each file name and turn them into Image objects\n",
90 | " #then, preprocess them before appending it to the list\n",
91 | " for file_name in image_file_list:\n",
92 | " counter += 1\n",
93 | " image = None\n",
94 | " if greyscale != None: \n",
95 | " #The Image object obtained from the file in greyscale mode\n",
96 | " image = cv2.imread(Constants.IMAGE_FILE_LOCATION + file_name, cv2.IMREAD_GRAYSCALE)\n",
97 | " #Check if the Image should be a binary grey scale with only 0 and 255 values\n",
98 | " if greyscale == 'binary':\n",
99 | " image[image < greyscale_threshhold] = 0\n",
100 | " image[image > greyscale_threshhold] = 255 \n",
101 | " else :\n",
102 | " #The Image object obtained from the file in normal mode\n",
103 | " image = cv2.imread(Constants.IMAGE_FILE_LOCATION + file_name, cv2.IMREAD_UNCHANGED)\n",
104 | " #Clean the image\n",
105 | " image = clean_image(image, kernel)\n",
106 | " #Append the object onto the list\n",
107 | " image_list.append(image)\n",
108 | " \n",
109 | " #Break if we pre-processed enough images\n",
110 | " if counter == max_images:\n",
111 | " break;\n",
112 | " \n",
113 | " #Return the list of Image objects\n",
114 | " return image_list\n",
115 | " "
116 | ]
117 | },
118 | {
119 | "cell_type": "code",
120 | "execution_count": 4,
121 | "metadata": {},
122 | "outputs": [],
123 | "source": [
124 | "##############################################################################\n",
125 | "#Displays an image until the user presses a key\n",
126 | "#############################################################################\n",
127 | "def displayImage(image):\n",
128 | " #Create a window object\n",
129 | " cv2.namedWindow(\"image_window\", cv2.WINDOW_NORMAL)\n",
130 | " #Show the image within that window\n",
131 | " cv2.imshow(\"image_window\", image)\n",
132 | " #Makes the window show the image until the user presses a value\n",
133 | " cv2.waitKey()\n",
134 | " #User has pressed a value\n",
135 | " cv2.destroyAllWindows()"
136 | ]
137 | },
138 | {
139 | "cell_type": "code",
140 | "execution_count": 5,
141 | "metadata": {},
142 | "outputs": [],
143 | "source": [
144 | "##############################################################################\n",
145 | "#Saves an image inside of the object detection test folder\n",
146 | "#############################################################################\n",
147 | "def saveImage(image, file_name = \"test.png\"):\n",
148 | " cv2.imwrite(Constants.PR_SAVE_LOCATION + file_name, image)"
149 | ]
150 | },
151 | {
152 | "cell_type": "code",
153 | "execution_count": 6,
154 | "metadata": {},
155 | "outputs": [],
156 | "source": [
157 | "##############################################################################\n",
158 | "#Creates a binary matrix of 0 and 1 values\n",
159 | "#############################################################################\n",
160 | "def normalize_image(image, reverse = False) :\n",
161 | " if reverse == False:\n",
162 | " image /= 255\n",
163 | " else:\n",
164 | " image *= 255\n",
165 | "\n",
166 | " return image"
167 | ]
168 | },
169 | {
170 | "cell_type": "code",
171 | "execution_count": 7,
172 | "metadata": {},
173 | "outputs": [],
174 | "source": [
175 | "def create_bbox(image, bbox_locations, box_thickness = 3):\n",
176 | " for x, y, width, height in bbox_locations:\n",
177 | " cv2.rectangle(image, (x,y), (x+width, y+height), (255, 0, 0), box_thickness)\n",
178 | " return image"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 8,
184 | "metadata": {},
185 | "outputs": [],
186 | "source": [
187 | "image_list = get_pr_images(max_images=2, greyscale='binary', greyscale_threshhold=104)"
188 | ]
189 | },
190 | {
191 | "cell_type": "code",
192 | "execution_count": 9,
193 | "metadata": {},
194 | "outputs": [],
195 | "source": [
196 | "displayImage(image_list[1])"
197 | ]
198 | },
199 | {
200 | "cell_type": "code",
201 | "execution_count": null,
202 | "metadata": {},
203 | "outputs": [],
204 | "source": [
205 | "saveImage(image_list[1])"
206 | ]
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": null,
211 | "metadata": {},
212 | "outputs": [],
213 | "source": []
214 | }
215 | ],
216 | "metadata": {
217 | "kernelspec": {
218 | "display_name": "Python 3",
219 | "language": "python",
220 | "name": "python3"
221 | },
222 | "language_info": {
223 | "codemirror_mode": {
224 | "name": "ipython",
225 | "version": 3
226 | },
227 | "file_extension": ".py",
228 | "mimetype": "text/x-python",
229 | "name": "python",
230 | "nbconvert_exporter": "python",
231 | "pygments_lexer": "ipython3",
232 | "version": "3.5.2"
233 | }
234 | },
235 | "nbformat": 4,
236 | "nbformat_minor": 2
237 | }
238 |
--------------------------------------------------------------------------------
/.ipynb_checkpoints/main-checkpoint.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Main"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 2,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "#Begin Program\n",
17 | "import PreProcessingModule as ppm\n",
18 | "import CNN\n",
19 | "import ObjectDetection as od\n",
20 | "import Constants as const\n",
21 | "import pdb\n",
22 | "\n",
23 | "GREYSCALE_THRESHHOLD = 104\n",
24 | "IMAGE_COUNT = 2\n",
25 | "\n",
26 | "#Get a list of pre-processed images\n",
27 | "pr_image_list = ppm.get_pr_images(max_images = IMAGE_COUNT, greyscale='binary',\n",
28 | " greyscale_threshhold = GREYSCALE_THRESHHOLD);\n",
29 | "#Get a list of nomral images\n",
30 | "norm_image_list = ppm.get_upr_images(max_images = IMAGE_COUNT)\n",
31 | "#Stores the cropped images whose shape is 80x80x3\n",
32 | "cropped_image_list = []\n",
33 | "#Stores the boxes for later referall to redraw the bounding boxes on \n",
34 | "#items that are ships, where each item is x,y,width,height\n",
35 | "opt_bbox = None\n",
36 | "bbox_image = None\n",
37 | "\n",
38 | "#Create probable bounding boxes around items in the image and put them in a list\n",
39 | "for curr_image_index in range(len(pr_image_list)) :\n",
40 | " #Retrieve a processed and an unprocessed image\n",
41 | " curr_pr_image = pr_image_list[curr_image_index]\n",
42 | " curr_upr_image = norm_image_list[curr_image_index]\n",
43 | " #Get the height and width of the whole image\n",
44 | " image_height = curr_upr_image.shape[0]\n",
45 | " image_width = curr_upr_image.shape[1]\n",
46 | " #Retrieve the locations of all of the objects\n",
47 | " object_locations = od.detect(curr_pr_image)\n",
48 | " #Optimize the bounding boxes\n",
49 | " opt_bbox = ppm.scale_bbox(image_width, image_height, object_locations)\n",
50 | " bbox_image = ppm.create_bbox(curr_pr_image, opt_bbox)\n",
51 | " #Create the bounding box around the original image\n",
52 | " cropped_image_list = ppm.crop(curr_upr_image, opt_bbox)\n",
53 | "\n",
54 | "ppm.display_image(bbox_image)\n"
55 | ]
56 | },
57 | {
58 | "cell_type": "code",
59 | "execution_count": null,
60 | "metadata": {},
61 | "outputs": [],
62 | "source": []
63 | },
64 | {
65 | "cell_type": "code",
66 | "execution_count": null,
67 | "metadata": {},
68 | "outputs": [],
69 | "source": []
70 | }
71 | ],
72 | "metadata": {
73 | "kernelspec": {
74 | "display_name": "Python 3",
75 | "language": "python",
76 | "name": "python3"
77 | },
78 | "language_info": {
79 | "codemirror_mode": {
80 | "name": "ipython",
81 | "version": 3
82 | },
83 | "file_extension": ".py",
84 | "mimetype": "text/x-python",
85 | "name": "python",
86 | "nbconvert_exporter": "python",
87 | "pygments_lexer": "ipython3",
88 | "version": "3.5.2"
89 | }
90 | },
91 | "nbformat": 4,
92 | "nbformat_minor": 2
93 | }
94 |
--------------------------------------------------------------------------------
/CNN.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | import os
3 | os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
4 | from keras.models import Model, Sequential
5 | from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Input
6 | from keras.optimizers import SGD
7 | from keras import metrics
8 | from keras.models import load_model
9 | from keras.applications.vgg16 import VGG16
10 | from keras.preprocessing.image import ImageDataGenerator
11 | import h5py
12 | import json
13 |
14 | #Creates and returns a CNN model with a given architecture
15 | #Structure is a boolean array of size 5, if a given index of structure is False it turns off the cooresponding pooling layer
16 | def build_CNN(learning_rate, decay_rate, momentum_value, structure):
17 |
18 | #Build the CNN model by modifying VGGNet to fit the image size
19 | model = Sequential()
20 |
21 | model.add(Conv2D(64, (3, 3), activation='relu', padding = 'same', input_shape = (80, 80, 3)))
22 | model.add(Conv2D(64, (3, 3), activation='relu', padding = 'same'))
23 | if structure[0]:
24 | model.add(MaxPooling2D((2, 2)))
25 |
26 | model.add(Conv2D(128, (3, 3), activation='relu', padding = 'same'))
27 | model.add(Conv2D(128, (3, 3), activation='relu', padding = 'same'))
28 | if structure[1]:
29 | model.add(MaxPooling2D((2, 2)))
30 |
31 | model.add(Conv2D(256, (3, 3), activation='relu', padding = 'same'))
32 | model.add(Conv2D(256, (3, 3), activation='relu', padding = 'same'))
33 | if structure[2]:
34 | model.add(MaxPooling2D((2, 2)))
35 |
36 | model.add(Conv2D(512, (3, 3), activation='relu', padding = 'same'))
37 | model.add(Conv2D(512, (3, 3), activation='relu', padding = 'same'))
38 | model.add(Conv2D(512, (3, 3), activation='relu', padding = 'same'))
39 | if structure[3]:
40 | model.add(MaxPooling2D((2, 2)))
41 |
42 | model.add(Conv2D(512, (3, 3), activation='relu', padding = 'same'))
43 | model.add(Conv2D(512, (3, 3), activation='relu', padding = 'same'))
44 | model.add(Conv2D(512, (3, 3), activation='relu', padding = 'same'))
45 | if structure[4]:
46 | model.add(MaxPooling2D((2, 2)))
47 |
48 | #add a fully connected layer
49 | model.add(Flatten())
50 | model.add(Dense(4096, activation='relu'))
51 | model.add(Dense(4096, activation='relu'))
52 | model.add(Dense(1, activation='sigmoid'))
53 |
54 | #Set up the input size
55 | img_input = Input(shape=(80, 80, 3))
56 | output = model(img_input)
57 |
58 | #Set up optimizer along with the loss function
59 | sgd = SGD(lr = learning_rate, decay = decay_rate, momentum = momentum_value, nesterov = True)
60 | model.compile(loss = 'binary_crossentropy', optimizer = sgd, metrics=[metrics.binary_accuracy])
61 |
62 | return model
63 |
64 | #Trains a given model with given data and labels
65 | # Batch is the number of samples per gradient update
66 | #Epoch size is how many epochs to train the model
67 | def train_CNN(model, data, labels, batch, epoch_size):
68 |
69 | model.fit(data, labels, batch_size=batch, epochs=epoch_size)
70 |
71 | return model
72 |
73 | #Trains a given model using a generator object (which augments the data)
74 | #Steps defines how many batches of augmented data the model should be trained on per epoch
75 | #Epoch size is how many epochs to train the model
76 | def train_generator_CNN(model, generator, steps, epoch_size, validation, run):
77 |
78 | history = model.fit_generator(generator, steps_per_epoch=steps, epochs=epoch_size, validation_data=validation).history
79 |
80 | #Reformat history
81 | pretty_history = ""
82 | for i in range(len(history["binary_accuracy"])):
83 | pretty_history_format = "Epoch #{4:<3}: Training Accuracy: {0:.16f} Training Loss: {1:.16f} Epoch #{5:<3}: Validation Accuracy: {2:.16f} Validation Loss: {3:.16f}"
84 | pretty_history += pretty_history_format.format(history["binary_accuracy"][i], history["loss"][i], history["val_binary_accuracy"][i], history["val_loss"][i], str(i+1), str(i+1)) + "\n"
85 | if i%5 == 4:
86 | pretty_history += "\n"
87 |
88 | #Log file save location
89 | file_location = "text_logs" + "\\" + run + ".txt"
90 | print(file_location)
91 |
92 | #Save a text file with training information
93 | log_file = open(file_location, 'w')
94 | log_file.write(pretty_history)
95 | log_file.close()
96 |
97 | return model
98 |
99 | #Tests the given model on the data and labels on a given batch size
100 | def test_CNN(model, data, labels, batch):
101 |
102 | loss, accuracy = model.evaluate(data, labels, batch_size=batch)
103 | print("Loss: ", loss, " Accuracy: ", accuracy)
104 |
105 | return loss, accuracy
106 |
107 | #Saves the model passed in to the given file location
108 | def save_CNN(model, location):
109 | model.save(location)
110 |
111 | #Loads and returns a trained model from the given file location
112 | def load_CNN(location):
113 | return load_model(location)
114 |
115 | #Takes in a trained CNN model and data and outputs predicted values for every datapoint
116 | def predict_CNN(model, x):
117 | y = model.predict(x, 50)
118 | return y
119 |
120 | #Loads and freezes the weights of VGG16's convolutional layers and adds trainable fully connected layers
121 | def load_pretrained_VGG16(learning_rate, decay_rate, momentum_value, input_shape):
122 | #Get vgg16 weights
123 | vgg16_model = VGG16(weights="imagenet", include_top=False)
124 |
125 | #Freeze all convolutional layers
126 | # for layer in vgg16_model.layers:
127 | # layer.trainable = False
128 |
129 | #Choose input format
130 | input = Input(shape=input_shape, name="image_input")
131 |
132 | #Use generated model
133 | vgg16_output = vgg16_model(input)
134 |
135 | #Add fully connected layers
136 | x = Flatten(name ='flatten')(vgg16_output)
137 | x = Dense(4096, activation='relu', name='fc1')(x)
138 | x = Dense(4096, activation='relu', name='fc2')(x)
139 | x = Dense(1, activation='sigmoid', name='predications')(x)
140 |
141 | #Create the model
142 | sgd = SGD(lr = learning_rate, decay = decay_rate, momentum = momentum_value, nesterov = True)
143 | pretrained_model = Model(inputs=input, outputs=x)
144 | pretrained_model.compile(loss = 'binary_crossentropy', optimizer = sgd, metrics=[metrics.binary_accuracy])
145 |
146 | return pretrained_model
147 |
148 | #Returns an object that augments the dataset during training
149 | def data_augmentation(x, y, batches=50):
150 | datagen = ImageDataGenerator(
151 | rotation_range=45,
152 | width_shift_range=0.2,
153 | height_shift_range=0.2,
154 | zoom_range = 0.2,
155 | horizontal_flip=True,
156 | vertical_flip=True,
157 | fill_mode='nearest'
158 | )
159 |
160 | return datagen.flow(x, y, batch_size=batches)
--------------------------------------------------------------------------------
/CNN.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/CNN.pyc
--------------------------------------------------------------------------------
/Constants.py:
--------------------------------------------------------------------------------
1 | #Image File Location
2 | IMAGE_FILE_LOCATION = './images/'
3 | PR_SAVE_LOCATION = "./object_detection_test/"
4 | SMALL_IMAGES_LOCATION = "./small_images/"
5 |
6 | #Small Ship Data File Names
7 | FULL_SMALL_IMAGE_DATASET = './smallShipData.json'
8 | TEST_SMALL_IMAGE_DATASET = 'small_test_data.txt'
9 | TRAINING_SMALL_IMAGE_DATASET = 'small_training_data.txt'
10 | TRAINED_CNN_MODEL = 'trained_CNN.h5'
11 |
12 | #New Small Ship Data File Names
13 | OTHER_TEST_SMALL_IMAGE_DATASET = 'other_small_test_data.json'
14 | OTHER_TRAINING_SMALL_IMAGE_DATASET = 'other_small_training_data.json'
15 | OTHER_TRAINED_CNN_MODEL = 'other_trained_CNN.h5'
16 | #Same as version4 (This one sucked)
17 | OTHER_GENERATOR_TRAINED_CNN_MODEL = 'other_generated_trained_CNN.h5'
18 |
19 | #Models after data augmentation
20 | #Unless otherwise specified, learing rate = 00.1, momentum = 1e-6, decay = 0.9
21 | #Default value I saw on website with 50 samples
22 | GENERATOR_TRAINED_CNN_MODEL = 'generated_trained_CNN.h5'
23 | #Same but with 100 samples
24 | GENERATOR_TRAINED_CNN_MODEL_TWO = 'generated_version2_trained_CNN.h5'
25 | #Adding rotational augmentation
26 | GENERATOR_TRAINED_CNN_MODEL_THREE = 'generated_version3_trained_CNN.h5'
27 | #Adding featurewise_center (Not very good)
28 | GENERATOR_TRAINED_CNN_MODEL_FOUR = 'generated_version4_trained_CNN.h5'
29 | #Added 2 fully connected layers 100/100
30 | GENERATOR_TRAINED_CNN_MODEL_FIVE = 'generated_version5_trained_CNN.h5'
31 | #Same as version 5 but 200/100 (Best for the final object detection ship predictions)
32 | GENERATOR_TRAINED_CNN_MODEL_SIX = 'generated_version6_trained_CNN.h5'
33 |
34 |
35 |
36 | #Models with transfer learning
37 | # Learning rate = 0.001, decay = 0.9, epoch = 10
38 | # Training Values loss: 0.0160 - binary_accuracy: 0.9990
39 | # Validation Values Loss: 0.1450024089826009 Accuracy: 0.9860000014305115
40 | PRETRAINED_CNN_MODEL_ONE = "pretrained_attempt_1.h5"
41 |
42 | #Learning rate = 0.0001, decay = 0.75, epoch = 10
43 | # Training Values loss: 0.0042 - binary_accuracy: 0.9995
44 | # Validation Values Loss: 0.06005835090763867 Accuracy: 0.977999997138977
45 | PRETRAINED_CNN_MODEL_TWO = "pretrained_attempt_2.h5"
46 |
47 | # Learning rate = 0.00001, decay = 0.65, epoch = 30
48 | # Training Values loss: 0.0239 - binary_accuracy: 0.9945
49 | # Validation Values Loss: 0.1274039216339588 Accuracy: 0.9580000042915344
50 | PRETRAINED_CNN_MODEL_THREE = "pretrained_attempt_3.h5"
51 |
52 | # Learning rate = 0.001, decay = 0.9, epoch = 10 with data aumentation
53 | # Training Values loss: 4.1746 - binary_accuracy: 0.7410
54 | # Validation Values val_loss: 3.7394 - val_binary_accuracy: 0.7680
55 | PRETRAINED_CNN_MODEL_FOUR = "pretrained_attempt_4.h5"
56 |
57 | #Learning rate = 0.0001, decay = 0.75, epoch = 10 with data augmentation
58 | # Training Values loss: 0.0434 - binary_accuracy: 0.9853
59 | # Validation Values val_loss: 0.0395 - val_binary_accuracy: 0.9860
60 | PRETRAINED_CNN_MODEL_FIVE = "pretrained_attempt_5.h5"
61 |
62 | # Learning rate = 0.00001, decay = 0.65, epoch = 30 with data augmentation
63 | # Training Values loss: 0.0779 - binary_accuracy: 0.9732
64 | # Validation Values val_loss: 0.0575 - val_binary_accuracy: 0.9700
65 | PRETRAINED_CNN_MODEL_SIX = "pretrained_attempt_6.h5"
66 |
--------------------------------------------------------------------------------
/Constants.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Constants.pyc
--------------------------------------------------------------------------------
/Helper.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | import json
3 | import glob
4 | import os
5 | import Constants
6 | import numpy as np
7 | from PreProcessingModule import reshape_data
8 | from keras.preprocessing.image import array_to_img, img_to_array, load_img
9 |
10 | #Extracts the data from the small ship images along with their labels, divdes the data into training and testing data, and saves these into two seperate files
11 | def extract_images():
12 | os.chdir(Constants.SMALL_IMAGES_LOCATION)
13 | full_data = []
14 | full_labels = []
15 |
16 | #Iterate through all images in the small image folder
17 | for file in glob.glob("*.png"):
18 | #Extract data from individual images
19 | img = load_img(file)
20 | img_array = img_to_array(img)
21 |
22 | #Add data to arrays
23 | full_data.append(img_array.astype(int))
24 | full_labels.append(int(file[0]))
25 |
26 | full_data = np.asarray(full_data)
27 |
28 | #Shuffle data
29 | concatenated_data = np.asarray(list(zip(full_data, full_labels)))
30 | np.random.shuffle(concatenated_data)
31 |
32 | #Divide dataset
33 | test_dataset = concatenated_data[2500:]
34 | training_dataset = concatenated_data[:2500]
35 |
36 | test_data, test_labels = zip(*test_dataset)
37 | training_data, training_labels = zip(*training_dataset)
38 |
39 | #Create json objects to be exported to a file
40 | json_test = {}
41 | json_test["data"]=np.array(test_data)
42 | json_test["labels"]=np.array(test_labels)
43 | json_training = {}
44 | json_training["data"]=np.array(training_data)
45 | json_training["labels"]=np.array(training_labels)
46 |
47 | #Save json objects into their respective files
48 | test_file = open(Constants.OTHER_TEST_SMALL_IMAGE_DATASET, 'w')
49 | training_file = open(Constants.OTHER_TRAINING_SMALL_IMAGE_DATASET, 'w')
50 |
51 | np.set_printoptions(threshold=np.inf)
52 | test_file.write(str(json_test))
53 | training_file.write(str(json_training))
54 |
55 | test_file.close()
56 | training_file.close()
57 |
58 | #Divides the original small ship dataset in the json file
59 | def divide_data():
60 |
61 | #Load full dataset from file
62 | json_dataset = json.load(open(Constants.FULL_SMALL_IMAGE_DATASET))
63 |
64 | #Extract necessary information from json
65 | full_data = np.array(json_dataset['data'])
66 | full_labels = np.array(json_dataset['labels'])
67 |
68 | #Shuffle data
69 | concatenated_data = np.asarray(list(zip(full_data, full_labels)))
70 | np.random.shuffle(concatenated_data)
71 |
72 | #Divide dataset
73 | test_dataset = concatenated_data[2500:]
74 | training_dataset = concatenated_data[:2500]
75 |
76 | test_data, test_labels = zip(*test_dataset)
77 | training_data, training_labels = zip(*training_dataset)
78 |
79 | #Create json objects to be exported to a file
80 | json_test = {}
81 | json_test["data"]=np.array(test_data)
82 | json_test["labels"]=np.array(test_labels)
83 | json_training = {}
84 | json_training["data"]=np.array(training_data)
85 | json_training["labels"]=np.array(training_labels)
86 |
87 |
88 | #Save json objects into their respective files
89 | test_file = open(Constants.TEST_SMALL_IMAGE_DATASET, 'w')
90 | training_file = open(Constants.TRAINING_SMALL_IMAGE_DATASET, 'w')
91 |
92 | np.set_printoptions(threshold=np.inf)
93 | test_file.write(str(json_test))
94 | training_file.write(str(json_training))
95 |
96 | test_file.close()
97 | training_file.close()
98 |
99 | #Returns the image data along with their respective labels
100 | def load_data(data_location, data_size=(80,80)):
101 |
102 | #Load data from file
103 | json_dataset = json.load(open(data_location))
104 |
105 | labels = json_dataset['labels']
106 | data = []
107 |
108 | #Turn data into a usuable format for a cnn
109 | for img in json_dataset['data']:
110 | data.append(np.transpose(np.resize(img, (3,80,80))))
111 |
112 | data = reshape_data(data, data_size)
113 | data = np.asarray(data)
114 |
115 | return np.array(data), np.array(labels)
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/ObjectDetection.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import PreProcessingModule as ppm
3 |
4 | test_weight = 0
5 |
6 | def detect(original_img, activation_weight_threshhold = 3000, max_weight_threshhold = 8000,
7 | stride_size = 100):
8 | curr_img = ppm.normalize_image(original_img)
9 | #Store the position of all of the bounding boxes
10 | objectList = []
11 | global MAX_X_AXIS
12 | global MAX_Y_AXIS
13 | global test_weight
14 | #Initialize the max index for the X axis
15 | MAX_X_AXIS = curr_img.shape[1]
16 | #Initialize the max index for the Y axis
17 | MAX_Y_AXIS = curr_img.shape[0]
18 | #The starting and ending position of where the sliding windows is at
19 | start_x = 0;
20 | start_y = 0;
21 | end_x = 0;
22 | end_y = 0;
23 | #Start sliding windows
24 | while(start_y < MAX_Y_AXIS):
25 | #Check to make sure that start_y is smaller than the largest y index
26 | if(start_y + stride_size < MAX_Y_AXIS):
27 | end_y += stride_size
28 | else:
29 | end_y += (MAX_Y_AXIS - start_y)
30 | while(start_x < MAX_X_AXIS):
31 | #Check to make sure that start_x is smaller than the largest x index
32 | if(end_x + stride_size < MAX_X_AXIS):
33 | end_x += stride_size
34 | else:
35 | end_x += (MAX_X_AXIS - start_x);
36 | #Calculate the current weight for the current sliding window position
37 | curr_weight = find_weight(curr_img, start_x, end_x, start_y, end_y)
38 | if(curr_weight < activation_weight_threshhold):
39 | objectList.extend(find_object(original_img, curr_img, max_weight_threshhold, start_x, end_x, start_y, end_y))
40 | objectList.remove([])
41 | #Set the start X position to the end poistion of the previous iteration
42 | start_x = end_x
43 | #Reset start_x and end_x back to 0
44 | start_x = 0
45 | end_x = 0
46 | #Set the start_y position to end_y
47 | start_y = end_y
48 | return objectList
49 |
50 | #Find the weight for the specific poistion
51 | def find_weight(img, start_x, end_x, start_y, end_y):
52 | return np.sum(img[start_y:end_y,start_x:end_x])
53 |
54 | #Check if there a possible object within the given position
55 | def find_object(original_img, curr_img, max_weight_threshhold, start_x, end_x, start_y, end_y):
56 | possible_locations = [[]]
57 | global test_weight
58 | x = 0
59 | y = 0
60 | width = 0
61 | length = 0
62 | for curr_y_axis in range(start_y, end_y):
63 | if(find_weight(curr_img, start_x, end_x, curr_y_axis, curr_y_axis + 1) > 0):
64 | for curr_x in range(start_x, end_x):
65 | if(curr_img[curr_y_axis][curr_x] == 1):
66 | all_positions = find_y_axis_down(curr_img, curr_x, curr_y_axis)
67 | all_positions.extend(find_y_axis_up(curr_img, curr_x, curr_y_axis))
68 | if(test_weight < max_weight_threshhold):
69 | x, y, width, length, curr_img = remove_object(original_img, curr_img, all_positions)
70 | possible_locations.append([x,y,width,length])
71 | test_weight = 0
72 | else:
73 | remove_object(original_img, curr_img, all_positions)
74 | test_weight = 0
75 |
76 | return possible_locations
77 |
78 | #Find the rest of the object below the starting y position
79 | def find_y_axis_down(curr_img, start_x, start_y):
80 | curr_y = start_y
81 | curr_x_start = start_x
82 | curr_x_end = get_end_x_position(curr_img, start_x, curr_y)
83 | indexList = [[curr_y, curr_x_start, curr_x_end]]
84 | while True:
85 | curr_y += 1
86 | if(curr_y + 1 < MAX_Y_AXIS and np.sum(curr_img[curr_y][curr_x_start:curr_x_end]) > 0):
87 | curr_x_start = get_start_x_position(curr_img, curr_x_start, curr_x_end, curr_y)
88 | curr_x_end = get_end_x_position(curr_img, curr_x_start, curr_y) + 1
89 | indexList.append([curr_y, curr_x_start, curr_x_end])
90 | else:
91 | break
92 | return indexList
93 |
94 | #Find the rest of the object above the starting y position
95 | def find_y_axis_up(curr_img, start_x, start_y):
96 | curr_y = start_y
97 | curr_x_start = start_x
98 | curr_x_end = get_end_x_position(curr_img, start_x, curr_y)
99 | indexList = [[curr_y, curr_x_start, curr_x_end]]
100 | while True:
101 | curr_y -= 1
102 | if(curr_y > 0 and np.sum(curr_img[curr_y][curr_x_start:curr_x_end]) > 0):
103 | curr_x_start = get_start_x_position(curr_img, curr_x_start, curr_x_end, curr_y)
104 | curr_x_end = get_end_x_position(curr_img, curr_x_end, curr_y)
105 | indexList.append([curr_y, curr_x_start, curr_x_end])
106 | else:
107 | break
108 | return indexList
109 |
110 | #Get the starting X position
111 | def get_start_x_position(curr_img, start_x, end_x, curr_y):
112 | curr_x_position = start_x
113 | if(curr_img[curr_y][curr_x_position] == 1):
114 | while True:
115 | #Check to make sure is in a valid index
116 | if(curr_x_position - 1 > 0):
117 | if(curr_img[curr_y][curr_x_position - 1] == 0):
118 | break;
119 | else:
120 | curr_x_position -= 1
121 | else:
122 | break
123 | elif(np.sum(curr_img[curr_y][start_x:end_x]) > 0):
124 | while True:
125 | #Check to make sure is in a valid index
126 | if(curr_x_position + 1 < MAX_X_AXIS):
127 | if(curr_img[curr_y][curr_x_position + 1] == 1):
128 | curr_x_position += 1
129 | break;
130 | else:
131 | curr_x_position += 1
132 | else:
133 | break
134 |
135 | return curr_x_position
136 |
137 | #Get the ending X position
138 | def get_end_x_position(curr_img, curr_x_end, curr_y):
139 | global test_weight
140 | curr_x_position = curr_x_end
141 | #Try to find where the X axis will end
142 | while True:
143 | if(curr_x_position == MAX_X_AXIS - 1 or curr_img[curr_y][curr_x_position + 1] == 0):
144 | break
145 | else:
146 | curr_x_position += 1
147 | test_weight += curr_x_position - curr_x_end
148 | return curr_x_position
149 |
150 | #Remove the object form the current image
151 | def remove_object(original_img, curr_img, index_list):
152 | y_list, start_x_list, end_x_list = zip(*index_list)
153 | smallestX = np.min(start_x_list)
154 | biggestX = np.max(end_x_list)
155 | smallestY = np.min(y_list)
156 | biggestY = np.max(y_list)
157 | for y, start_x, end_x in index_list:
158 | temp_end_x = end_x
159 | if(np.sum(curr_img[y][end_x:biggestX]) != 0):
160 | if(y > 0 and y < MAX_Y_AXIS - 1):
161 | while(True):
162 | if(temp_end_x == MAX_X_AXIS - 1):
163 | break;
164 | elif(original_img[y + 1][temp_end_x] == 0 or original_img[y-1][temp_end_x] == 0):
165 | temp_end_x +=1
166 | else:
167 | break;
168 | else:
169 | temp_end_x = biggestX
170 |
171 | curr_img[y][start_x:temp_end_x + 1] = curr_img[y][start_x:temp_end_x + 1] * 0
172 |
173 | if(smallestX > 5):
174 | smallestX -= 5
175 | if(smallestY > 5):
176 | smallestY -= 5
177 |
178 | return smallestX, smallestY, biggestX - smallestX + 10, biggestY - smallestY + 10, curr_img
179 |
--------------------------------------------------------------------------------
/PreProcessingModule.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Define Preprocessing Methods"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "from PIL import Image, ImageEnhance, ImageOps\n",
17 | "import numpy as np\n",
18 | "import Constants\n",
19 | "import os\n",
20 | "import cv2\n",
21 | "import pdb\n",
22 | "\n",
23 | "##############################################################################\n",
24 | "#Returns a list of file names for the images\n",
25 | "##############################################################################\n",
26 | "def get_unprocessed_image_files():\n",
27 | " \n",
28 | " #Stores all of the big images in this list\n",
29 | " image_file_list = None\n",
30 | " \n",
31 | " #Retrieve image paths\n",
32 | " for root, dirs, files in os.walk(Constants.IMAGE_FILE_LOCATION):\n",
33 | " image_file_list = files;\n",
34 | " \n",
35 | " return image_file_list;\n"
36 | ]
37 | },
38 | {
39 | "cell_type": "code",
40 | "execution_count": 34,
41 | "metadata": {},
42 | "outputs": [],
43 | "source": [
44 | "#Erosion followed by dilation to remove/reduce noise in an image\n",
45 | "def cv_opening(img, kernel) :\n",
46 | " opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)\n",
47 | " return opening\n",
48 | "\n",
49 | "#Dilation followed by erosion to plug in holes in the image\n",
50 | "def cv_closing(img, kernel) :\n",
51 | " closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)\n",
52 | " return closing\n",
53 | "\n",
54 | "#Cleans the image and combines spaces on the image\n",
55 | "def clean_image(img, kernel) :\n",
56 | " img = cv_opening(img, kernel)\n",
57 | " #Dilate the image in order to fill in empty spots\n",
58 | " dilation_kernel = np.ones((7,7), np.uint8) \n",
59 | " img = cv2.dilate(img, dilation_kernel, iterations = 2)\n",
60 | " #Attempt to return the objects to closer to their normal sizes\n",
61 | " erosion_kernel = np.ones((2,2), np.uint8)\n",
62 | " img = cv2.erode(img, erosion_kernel, iterations = 1)\n",
63 | " \n",
64 | " return img\n"
65 | ]
66 | },
67 | {
68 | "cell_type": "code",
69 | "execution_count": 35,
70 | "metadata": {},
71 | "outputs": [],
72 | "source": [
73 | "##############################################################################\n",
74 | "#Return a list of preprocessed image files where each image is greyscaled\n",
75 | "#the contrast is increased by a large margin to reduce the number of \n",
76 | "#color variation\n",
77 | "#############################################################################\n",
78 | "def get_pr_images(max_images = 1, greyscale=None, greyscale_threshhold = 80):\n",
79 | " #Retrieve image file list\n",
80 | " image_file_list = get_unprocessed_image_files()\n",
81 | " #Turn each image file item into an Image object\n",
82 | " image_list = []\n",
83 | " #Create a kernel to move through the image\n",
84 | " kernel = np.ones((3,3), np.uint8)\n",
85 | " \n",
86 | " #Counter to see how many images we are working on and break once we reach image_count\n",
87 | " counter = 0\n",
88 | " \n",
89 | " #Iterate through each file name and turn them into Image objects\n",
90 | " #then, preprocess them before appending it to the list\n",
91 | " for file_name in image_file_list:\n",
92 | " counter += 1\n",
93 | " image = None\n",
94 | " if greyscale != None: \n",
95 | " #The Image object obtained from the file in greyscale mode\n",
96 | " image = cv2.imread(Constants.IMAGE_FILE_LOCATION + file_name, cv2.IMREAD_GRAYSCALE)\n",
97 | " #Check if the Image should be a binary grey scale with only 0 and 255 values\n",
98 | " if greyscale == 'binary':\n",
99 | " image[image < greyscale_threshhold] = 0\n",
100 | " image[image > greyscale_threshhold] = 255 \n",
101 | " else :\n",
102 | " #The Image object obtained from the file in normal mode\n",
103 | " image = cv2.imread(Constants.IMAGE_FILE_LOCATION + file_name, cv2.IMREAD_UNCHANGED)\n",
104 | " #Clean the image\n",
105 | " image = clean_image(image, kernel)\n",
106 | " #Append the object onto the list\n",
107 | " image_list.append(image)\n",
108 | " \n",
109 | " #Break if we pre-processed enough images\n",
110 | " if counter == max_images:\n",
111 | " break;\n",
112 | " \n",
113 | " #Return the list of Image objects\n",
114 | " return image_list\n",
115 | " "
116 | ]
117 | },
118 | {
119 | "cell_type": "code",
120 | "execution_count": 36,
121 | "metadata": {},
122 | "outputs": [],
123 | "source": [
124 | "##############################################################################\n",
125 | "#Displays an image until the user presses a key\n",
126 | "#############################################################################\n",
127 | "def displayImage(image):\n",
128 | " #Create a window object\n",
129 | " cv2.namedWindow(\"image_window\", cv2.WINDOW_NORMAL)\n",
130 | " #Show the image within that window\n",
131 | " cv2.imshow(\"image_window\", image)\n",
132 | " #Makes the window show the image until the user presses a value\n",
133 | " cv2.waitKey()\n",
134 | " #User has pressed a value\n",
135 | " cv2.destroyAllWindows()"
136 | ]
137 | },
138 | {
139 | "cell_type": "code",
140 | "execution_count": 37,
141 | "metadata": {},
142 | "outputs": [],
143 | "source": [
144 | "##############################################################################\n",
145 | "#Saves an image inside of the object detection test folder\n",
146 | "#############################################################################\n",
147 | "def saveImage(image, file_name = \"test.png\"):\n",
148 | " cv2.imwrite(Constants.PR_SAVE_LOCATION + file_name, image)"
149 | ]
150 | },
151 | {
152 | "cell_type": "code",
153 | "execution_count": 38,
154 | "metadata": {},
155 | "outputs": [],
156 | "source": [
157 | "##############################################################################\n",
158 | "#Creates a binary matrix of 0 and 1 values\n",
159 | "#############################################################################\n",
160 | "def normalize_image(image, reverse = False) :\n",
161 | " if reverse == False:\n",
162 | " image /= 255\n",
163 | " else:\n",
164 | " image *= 255\n",
165 | "\n",
166 | " return image"
167 | ]
168 | },
169 | {
170 | "cell_type": "code",
171 | "execution_count": 39,
172 | "metadata": {},
173 | "outputs": [],
174 | "source": [
175 | "def create_bbox(image, bbox_locations, box_thickness = 3):\n",
176 | " for x, y, width, height in bbox_locations:\n",
177 | " cv2.rectangle(image, (x,y), (x+width, y+height), (255, 0, 0), box_thickness)\n",
178 | " return image"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 40,
184 | "metadata": {},
185 | "outputs": [],
186 | "source": [
187 | "image_list = get_pr_images(max_images=2, greyscale='binary', greyscale_threshhold=104)"
188 | ]
189 | },
190 | {
191 | "cell_type": "code",
192 | "execution_count": 41,
193 | "metadata": {},
194 | "outputs": [],
195 | "source": [
196 | "displayImage(image_list[1])"
197 | ]
198 | },
199 | {
200 | "cell_type": "code",
201 | "execution_count": null,
202 | "metadata": {},
203 | "outputs": [],
204 | "source": [
205 | "saveImage(image_list[1])"
206 | ]
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": null,
211 | "metadata": {},
212 | "outputs": [],
213 | "source": []
214 | }
215 | ],
216 | "metadata": {
217 | "kernelspec": {
218 | "display_name": "Python 3",
219 | "language": "python",
220 | "name": "python3"
221 | },
222 | "language_info": {
223 | "codemirror_mode": {
224 | "name": "ipython",
225 | "version": 3
226 | },
227 | "file_extension": ".py",
228 | "mimetype": "text/x-python",
229 | "name": "python",
230 | "nbconvert_exporter": "python",
231 | "pygments_lexer": "ipython3",
232 | "version": "3.5.2"
233 | }
234 | },
235 | "nbformat": 4,
236 | "nbformat_minor": 2
237 | }
238 |
--------------------------------------------------------------------------------
/PreProcessingModule.py:
--------------------------------------------------------------------------------
1 | from PIL import Image, ImageEnhance, ImageOps
2 | import numpy as np
3 | import Constants
4 | import os
5 | import cv2
6 |
7 | ##############################################################################
8 | #Returns a list of file names for the images
9 | ##############################################################################
10 | def get_unprocessed_image_files():
11 |
12 | #Stores all of the big images in this list
13 | image_file_list = None
14 |
15 | #Retrieve image paths
16 | for root, dirs, files in os.walk(Constants.IMAGE_FILE_LOCATION):
17 | image_file_list = files
18 |
19 | return image_file_list
20 |
21 |
22 | #############################################################################
23 | #Erosion followed by dilation to remove/reduce noise in an image
24 | #############################################################################
25 | def cv_opening(img, kernel) :
26 | opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
27 | return opening
28 |
29 |
30 | #############################################################################
31 | #Cleans the image by plugging holes and removing noise
32 | #############################################################################
33 | #Cleans the image and combines spaces on the image
34 | def clean_image(img, kernel) :
35 | img = cv_opening(img, kernel)
36 | #Dilate the image in order to fill in empty spots
37 | dilation_kernel = np.ones((5,5), np.uint8)
38 | img = cv2.dilate(img, dilation_kernel, iterations = 2)
39 | #Attempt to return the objects to their normal sizes
40 | erosion_kernel = np.ones((3,3), np.uint8)
41 | img = cv2.erode(img, erosion_kernel, iterations = 1)
42 |
43 | return img
44 |
45 | ##############################################################################
46 | #Return a list of preprocessed image files where each image is greyscaled
47 | #the contrast is increased by a large margin to reduce the number of
48 | #color variation
49 | #############################################################################
50 | def get_pr_images(max_images = 1,greyscale=None, greyscale_threshhold = 80):
51 | #Retrieve image file list
52 | image_file_list = get_unprocessed_image_files()
53 | #Place to store the Image objects
54 | image_list = []
55 | #Create a kernel to move through the image
56 | kernel = np.ones((3,3), np.uint8)
57 |
58 | #Counter to see how many images we are working on and break once we reach image_count
59 | counter = 0
60 |
61 | #Iterate through each file name and turn them into Image objects
62 | #then, preprocess them before appending it to the list
63 | for i in range(max_images):
64 | file_name = image_file_list[i]
65 | image = None
66 | if greyscale != None:
67 | #The Image object obtained from the file in greyscale mode
68 | image = cv2.imread(Constants.IMAGE_FILE_LOCATION + file_name, cv2.IMREAD_GRAYSCALE)
69 | #Check if the Image should be a binary grey scale with only 0 and 255 values
70 | if greyscale == 'binary':
71 | image[image < greyscale_threshhold] = 0
72 | image[image > greyscale_threshhold] = 255
73 | else :
74 | #The Image object obtained from the file in normal mode
75 | image = cv2.imread(Constants.IMAGE_FILE_LOCATION + file_name, cv2.IMREAD_UNCHANGED)
76 | #Clean the image
77 | image = clean_image(image, kernel)
78 | #Append the object onto the list
79 | image_list.append(image)
80 |
81 | #Break if we pre-processed enough images
82 | if counter == max_images:
83 | break
84 |
85 | #Return the list of Image objects
86 | return image_list
87 |
88 | def get_upr_images(max_images = 1) :
89 | #Retrieve image file list
90 | image_file_list = get_unprocessed_image_files()
91 | #Stores the image objects
92 | image_list = []
93 |
94 | for i in range(max_images):
95 | file_name = image_file_list[i]
96 | #Instantiate the image
97 | image = cv2.imread(Constants.IMAGE_FILE_LOCATION + file_name, cv2.IMREAD_UNCHANGED)
98 | #Add the image to the file list
99 | image_list.append(image)
100 |
101 | return image_list
102 |
103 | ##############################################################################
104 | #Creates a binary matrix of 0 and 1 values
105 | #############################################################################
106 | def normalize_image(image, reverse = False) :
107 | if reverse == False:
108 | image = image / 255
109 | else:
110 | image = image * 255
111 |
112 | return image
113 |
114 | ##############################################################################
115 | #Displays an image until the user presses a key
116 | #############################################################################
117 | def display_image(image):
118 | #Create a window object
119 | cv2.namedWindow("image_window", cv2.WINDOW_NORMAL)
120 | #Show the image within that window
121 | cv2.imshow("image_window", image)
122 | #Makes the window show the image until the user presses a value
123 | cv2.waitKey()
124 | #User has pressed a value
125 | cv2.destroyAllWindows()
126 |
127 | ##############################################################################
128 | #Saves an image inside of the object detection test folder
129 | #############################################################################
130 | def saveImage(image, file_name = "test.png"):
131 | cv2.imwrite(Constants.PR_SAVE_LOCATION + file_name, image)
132 |
133 | ##############################################################################
134 | #Creates a bounding box in the given image depending on the top left coordinates
135 | #############################################################################
136 | def create_bbox(image, bbox_locations, box_thickness = 3):
137 | for x, y, width, height in bbox_locations:
138 | cv2.rectangle(image, (x,y), (x+width, y+height), (255, 255, 255), box_thickness)
139 | return image
140 |
141 | ##############################################################################
142 | #Scales the bounding boxes
143 | #############################################################################
144 | def scale_bbox(image_width, image_height, bbox_locations, MAX_IMAGE_HEIGHT = 80, MAX_IMAGE_WIDTH = 80):
145 | new_bbox_locations = list()
146 | for x, y, width, height in bbox_locations:
147 | #Get the center of the image width wise
148 | horizontal_center = (2 * x + width) // 2
149 | #Get the center of the image height wise
150 | vertical_center = (2 * y + height) // 2
151 | if (width < MAX_IMAGE_WIDTH and height < MAX_IMAGE_HEIGHT) :
152 | x = horizontal_center - (MAX_IMAGE_WIDTH // 2)
153 | y = vertical_center - (MAX_IMAGE_HEIGHT // 2)
154 | #Check if the width wise boundary boxes go beyond the boundary
155 | if(x < 0) :
156 | #If the image goes behind the boundary, just set it as the boundary
157 | x = 0
158 | elif(x + MAX_IMAGE_WIDTH > image_width) :
159 | #If the image goes beyond the boundary, just set it as the boundary - MAX_IMAGE_WIDTH
160 | x = image_width - MAX_IMAGE_WIDTH
161 | #Check if the height wise boundary boxes go beyong the boundary
162 | if(y < 0) :
163 | #If the image goes behind the boundary
164 | y = 0
165 | elif(y + MAX_IMAGE_HEIGHT > image_height) :
166 | #If the image goes beyong the boundary, just set it as the boundary - MAX_IMAGE_HEIGHT
167 | y = image_height - MAX_IMAGE_HEIGHT
168 | #Set the new size of the images
169 | width = MAX_IMAGE_WIDTH
170 | height = MAX_IMAGE_HEIGHT
171 | else:
172 | #Here, either one side is greater than MAX, create a square to keep spatial details
173 | if(height > width):
174 | #Make the Width the same size as the height
175 | x = horizontal_center - (height // 2)
176 | if(x < 0):
177 | #If the image goes behind the boundary, set it as the boundary
178 | x = 0
179 | elif(x + height > image_width):
180 | #If the image goes beyond the boundary, set it as the boundary - height
181 | x = image_width - height
182 | width = height
183 | elif(width > height):
184 | #Make the height the same size as the width
185 | y = vertical_center - (width // 2)
186 | if(y < 0):
187 | #If the image goes behind the boundaryu, set it as the boundary
188 | y = 0
189 | elif(y + width > image_height):
190 | #If the image goes beyond the boundary, set is as the boundary - width
191 | y = image_height - width
192 | height = width
193 | #Store the newly created bounding box
194 | new_bbox_locations.append((x,y,width,height))
195 | return new_bbox_locations
196 |
197 | ##############################################################################
198 | #Crop images from the original image
199 | #############################################################################
200 | def crop(image, bbox_set, set_width = 80, set_height = 80) :
201 | images = list()
202 | #Iteratively crop the images and put them into a list
203 | for x, y, width, height in bbox_set:
204 | cropped_image = image[y: y+ height, x: x+width]
205 | resized_image = cv2.resize(cropped_image, (set_width, set_height), interpolation = cv2.INTER_CUBIC)
206 | images.append(resized_image)
207 |
208 | return images
209 |
210 |
211 | ##############################################################################
212 | #Reshapes all images to the specified shape
213 | #############################################################################
214 | def reshape_data(data, new_shape):
215 | new_data = []
216 | #Iteratively crop the images and put them into a list
217 | for i in range(len(data)):
218 | img = data[i]
219 | img = img.astype("uint8")
220 | resized_image = cv2.resize(img, new_shape, interpolation = cv2.INTER_CUBIC)
221 |
222 | new_data.append(resized_image)
223 |
224 | return new_data
225 |
--------------------------------------------------------------------------------
/PreProcessingModule.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/PreProcessingModule.pyc
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DeepLearningProject
2 | The goal for this project was to correctly detect and classify ships in large satellite images using a Convolutional Neural Network (CNN) that was trained on 80x80 images of ship and non-ship data in conjunction with a custom object detection algorithm. Our approach is able to efficiently and accurately detect ships in satellite images of varying size ratios. In comparison to an approach found on Kaggle.com that uses a sliding window across the entire image to detect the ships in 15 minutes, our pipeline is able to detect and output bounding boxes in under 5 seconds.
3 |
4 | ## Official Report
5 | [Project Report](https://github.com/PenguinDan/DeepLearningShipDetection/blob/master/Report%20Folder/object-detection-classification.pdf)
6 |
7 | ## Before you Run the Project
8 | Download the dataset from the following link:
9 | https://www.kaggle.com/rhammell/ships-in-satellite-imagery
10 | Make sure to add in the big images into a file named "images"
11 | Make sure to move the json file with small images and everything else to folder named "small_images"
12 |
13 | ## On Ubuntu, please do the following
14 |
15 | ### To install OpenCV packages for Python3
16 | * pip3 install opencv-python
17 |
18 | ## PreProcessing Module
19 | The main file used to preprocess the images
20 | * PreProcessingModule.py
21 | * Provides the following methods:
22 | * Create a bounding box around specific locations in the image
23 | * Denoise the image using OpenCV's kernel techniques
24 | * Scale the images in such a way that their dimensional features are not lost
25 | * Normalize image data to provide simpler data as an input to the Object Detection Algorithm
26 | * Binary greyscaling using a threshhold to provide simpler data as an input to the Object Detection Algorithm
27 |
28 | ## Object Detection Algorithm
29 | The main file used to output region proposals from the large satellite images
30 | * ObjectDetection.py
31 | * Ouputs a list of region proposals run on preprocessed data
32 |
33 | ## Working with the CNNs
34 | The main files used to create, train, test, and save the CNNs were:
35 | * CNN.py
36 | * For all function that manipulate the CNN model itself
37 | * Tuning_CNN.py
38 | * For training and testing the many possible CNN architectures and hyperparameters
39 | * Helper.py
40 | * Works with the raw image data, such as
41 | * Randomly dividing the data into training/validation and test data
42 | * Loading a given file of data
43 | * Constants.py
44 | * Contains the paths to where the different CNN models are saved as well as a short description on their differences
45 |
46 | ## Project Pipeline
47 | ### Original Image
48 | 
49 | ### After Image Preprocessing
50 | 
51 | ### Object Detection
52 | 
53 | ### After Second Image Preprocessing
54 | 
55 | ### Our Output
56 | 
57 | ### Kaggle Output
58 | 
59 |
--------------------------------------------------------------------------------
/Report Folder/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/1.png
--------------------------------------------------------------------------------
/Report Folder/Img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img1.png
--------------------------------------------------------------------------------
/Report Folder/Img10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img10.png
--------------------------------------------------------------------------------
/Report Folder/Img2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img2.png
--------------------------------------------------------------------------------
/Report Folder/Img3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img3.png
--------------------------------------------------------------------------------
/Report Folder/Img4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img4.png
--------------------------------------------------------------------------------
/Report Folder/Img5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img5.png
--------------------------------------------------------------------------------
/Report Folder/Img7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img7.png
--------------------------------------------------------------------------------
/Report Folder/Img8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img8.png
--------------------------------------------------------------------------------
/Report Folder/Img9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/Img9.png
--------------------------------------------------------------------------------
/Report Folder/ObjectDetectionWithImageSegmentation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/ObjectDetectionWithImageSegmentation.png
--------------------------------------------------------------------------------
/Report Folder/image-pipeline/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/image-pipeline/1.png
--------------------------------------------------------------------------------
/Report Folder/image-pipeline/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/image-pipeline/2.png
--------------------------------------------------------------------------------
/Report Folder/image-pipeline/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/image-pipeline/3.png
--------------------------------------------------------------------------------
/Report Folder/image-pipeline/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/image-pipeline/4.png
--------------------------------------------------------------------------------
/Report Folder/image-pipeline/5-comp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/image-pipeline/5-comp.png
--------------------------------------------------------------------------------
/Report Folder/image-pipeline/5-ours.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/image-pipeline/5-ours.png
--------------------------------------------------------------------------------
/Report Folder/object-detection-classification.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/Report Folder/object-detection-classification.pdf
--------------------------------------------------------------------------------
/Report Folder/report.txt:
--------------------------------------------------------------------------------
1 | Daniel in charge of data pre-processing module
2 | Visal in charge of object detection algorithm
3 | Luis in charge of CNN object classification
4 |
5 | Explain project architecture:
6 | Large Image -> Pre-processing Module -> Object Detection -> Pre-processing Module -> Binary CNN Classification -> Post-Processing Module
7 |
8 | Goal of first pre-processing module:
9 | Make the task of object detection easier for the object detection algorithm
10 | Inpired by Object detection with image segmentation (show image)
11 | Say that we tried Object Detection through Image Segmentation (Selective Search)
12 | Also tried Google's Faster-RCNN with ResNet CNN trained with Coco-Dataset
13 | Say that Visal will explain why these didnt work
14 |
15 | First pre-processing module attempt:
16 | Using Python Image Library : PIL
17 | Retrieve the image
18 | Greyscale the image
19 | Increase contrast to 300% so that the black colors get darker and white colors get whiter
20 | Show Img5.png
21 | Show Img1.png, was really happy until tried another image
22 | Show Img6.png, next slide
23 | Show Img2.png, image contained too much noise
24 |
25 | Second pre-processing module attempt:
26 | Using Open-CV2 Python API
27 | Retrieve the image
28 | Use a binary treshhold for binary color scheme in image
29 | Erosion followed by Dilation using a 5 x 5 kernel
30 | Patch minor holes in the image through dilation followed by erosion
31 | Force the image to be greyscale
32 | Show difference between pre-cleaned Img2.png and Img3.png
33 | Show threshold of 130 Img7, 100 Img8, 80 Img9
34 | Show Img9 and Img6 Side by side and show that all the ships were captured
35 | Divided the values by 255, so image is now a mask of 0 and 1 values, gave it to Visal
36 |
37 | Third pre-processing module attempt:
38 | Using Open-CV2 Python API
39 | Retrieve the image
40 | Use a binary threshhold with a high value (104) so that less whites show
41 | Erosion followed by Dilation using a 3x3 kernel
42 | Dilate the image again in order to fill in the empty spots using a 4x4 kernel and 2 iterations
43 | Erode the image to get reduce the now bloated size of ships using a 2x2 kernel and 1 iteration
44 | Show different between image 9 and image 10, it keeps alot more of the information and connects everything together
45 | Show image11 and then image 12 and the difference
46 |
47 |
48 | Object Detection:
49 | Based on your research, say why Selective Search doesn't work
50 | Faster-RCNN with ResNet CNN does not work because the network was not trained with satelite ship images
51 | Object detection should work on ships that are bigger than 80 by 80 too
52 |
53 | Show your attempts and report your image attempts based off on Img5.png
54 |
55 | Second Pre-Processing Module:
56 | Scale down the image sizes
57 |
58 | Binary CNN Classification:
59 | CNN tells us which bounding boxes to keep and throw away
60 | Draw bounding box on images using post-processing module
61 |
62 | Post-Processing Module:
63 | Draws bounding boxes
64 |
65 |
--------------------------------------------------------------------------------
/Tuning_CNN.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from CNN import build_CNN, train_CNN, test_CNN, save_CNN, load_CNN, train_generator_CNN, load_pretrained_VGG16, data_augmentation
3 | from Helper import load_data
4 | import numpy as np
5 | import Constants
6 |
7 | def k_fold_cross_validation(k, learning_rate, decay_rate, momentum_value, structure, data, labels, batch_size, epoch):
8 |
9 | #initialize values
10 | val_size = int(len(data)/k)
11 | all_loss_scores = []
12 | all_accuracy_scores = []
13 |
14 | #run through k iterations
15 | for i in range(k):
16 | print('Fold #', i)
17 |
18 | #Divide the data into training and validation
19 | #Create the validation data
20 | val_data = data[i * val_size: (i+1) * val_size]
21 | val_labels = labels[i * val_size: (i+1) * val_size]
22 | model = build_CNN(learning_rate, decay_rate, momentum_value, structure)
23 |
24 | #Create the training dataset
25 | train_data = np.concatenate(
26 | [data[:i * val_size],
27 | data[(i+1) * val_size:]],
28 | axis = 0
29 | )
30 |
31 | train_labels = np.concatenate(
32 | [labels[:i * val_size],
33 | labels[(i+1) * val_size:]],
34 | axis = 0
35 | )
36 |
37 | #Train the model
38 | model = train_CNN(model, train_data, train_labels, batch_size, epoch)
39 |
40 | #test the model on the validation dataset
41 | loss, accuracy = test_CNN(model, val_data, val_labels, batch_size)
42 |
43 | #save the loss and accuracy values
44 | all_loss_scores.append(loss)
45 | all_accuracy_scores.append(accuracy)
46 |
47 | #average all the loss and accuracy values from all k folds
48 | average_loss = np.mean(all_loss_scores)
49 | average_accuracy = np.mean(all_accuracy_scores)
50 |
51 | #return the averages
52 | return model, average_loss, average_accuracy
53 |
54 |
55 | def k_fold_cross_validation_with_generator(k, learning_rate, decay_rate, momentum_value, structure, data, labels, steps, epoch):
56 |
57 | #initialize values
58 | val_size = int(len(data)/k)
59 | all_loss_scores = []
60 | all_accuracy_scores = []
61 |
62 | #run through k iterations
63 | for i in range(0,k):
64 | run = 'Fold #'+str(i)
65 | print(run)
66 |
67 | #Divide the data into training and validation
68 | #Create the validation data
69 | val_data = data[i * val_size: (i+1) * val_size]
70 | val_labels = labels[i * val_size: (i+1) * val_size]
71 | model = build_CNN(learning_rate, decay_rate, momentum_value, structure)
72 |
73 | #Create the training dataset
74 | train_data = np.concatenate(
75 | [data[:i * val_size],
76 | data[(i+1) * val_size:]],
77 | axis = 0
78 | )
79 |
80 | train_labels = np.concatenate(
81 | [labels[:i * val_size],
82 | labels[(i+1) * val_size:]],
83 | axis = 0
84 | )
85 |
86 | #Create generator
87 | generator = data_augmentation(train_data, train_labels)
88 |
89 | #Train the model
90 | model = train_generator_CNN(model, generator, steps, epoch, (val_data, val_labels), run)
91 |
92 | #test the model on the validation dataset
93 | loss, accuracy = test_CNN(model, val_data, val_labels, 50)
94 |
95 | #save the loss and accuracy values
96 | all_loss_scores.append(loss)
97 | all_accuracy_scores.append(accuracy)
98 |
99 | #average all the loss and accuracy values from all k folds
100 | average_loss = np.mean(all_loss_scores)
101 | average_accuracy = np.mean(all_accuracy_scores)
102 |
103 | #return the averages
104 | return model, average_loss, average_accuracy
105 |
106 | #Tests the 5 different possible variations of VGG-16 for our data using k-fold validation and outputs the results to the console
107 | def test_models(k, learning_rate, decay_rate, momentum_value, data, labels, batch_size, epoch):
108 | model_1, loss_1, accuracy_1 = k_fold_cross_validation(k, learning_rate, decay_rate, momentum_value, [False, True, True, True, True], data, labels, batch_size, epoch)
109 | model_2, loss_2, accuracy_2 = k_fold_cross_validation(k, learning_rate, decay_rate, momentum_value, [True, False, True, True, True], data, labels, batch_size, epoch)
110 | model_3, loss_3, accuracy_3 = k_fold_cross_validation(k, learning_rate, decay_rate, momentum_value, [True, True, False, True, True], data, labels, batch_size, epoch)
111 | model_4, loss_4, accuracy_4 = k_fold_cross_validation(k, learning_rate, decay_rate, momentum_value, [True, True, True, False, True], data, labels, batch_size, epoch)
112 | model_5, loss_5, accuracy_5 = k_fold_cross_validation(k, learning_rate, decay_rate, momentum_value, [True, True, True, True, False], data, labels, batch_size, epoch)
113 |
114 | #output results to the console
115 | print("\n\n\n\nModel 1 Loss: ", loss_1, " Accuracy: ", accuracy_1)
116 | print("Model 2 Loss: ", loss_2, " Accuracy: ", accuracy_2)
117 | print("Model 3 Loss: ", loss_3, " Accuracy: ", accuracy_3)
118 | print("Model 4 Loss: ", loss_4, " Accuracy: ", accuracy_4)
119 | print("Model 5 Loss: ", loss_5, " Accuracy: ", accuracy_5)
120 |
121 |
122 | x, y = load_data(Constants.TRAINING_SMALL_IMAGE_DATASET, (224,224))
123 |
124 |
125 | # model_1, loss_1, accuracy_1 = k_fold_cross_validation_with_generator(5, 0.0010, 1e-6, 0.9, [False, True, True, True, True], x, y, 200, 100)
126 |
127 | model = load_pretrained_VGG16(0.0001, 1e-6, 0.75, (224,224,3))
128 | generator = data_augmentation(x[500:], y[500:], 25)
129 | run = "pretrained_attempt_6"
130 | model = train_generator_CNN(model, generator, 400, 30, (x[0:500], y[0:500]), run)
131 | # train_CNN(model, x[500:], y[500:], 50, 30)
132 | save_CNN(model, Constants.PRETRAINED_CNN_MODEL_SIX)
133 |
134 | # model = load_CNN("pretrained_attempt_2.h5")
135 | # test_CNN(model, x[:500], y[:500], 50)
136 |
137 |
138 |
--------------------------------------------------------------------------------
/__pycache__/CNN.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/CNN.cpython-35.pyc
--------------------------------------------------------------------------------
/__pycache__/CNN.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/CNN.cpython-36.pyc
--------------------------------------------------------------------------------
/__pycache__/Constants.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/Constants.cpython-35.pyc
--------------------------------------------------------------------------------
/__pycache__/Constants.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/Constants.cpython-36.pyc
--------------------------------------------------------------------------------
/__pycache__/Helper.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/Helper.cpython-36.pyc
--------------------------------------------------------------------------------
/__pycache__/ObjectDetection.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/ObjectDetection.cpython-35.pyc
--------------------------------------------------------------------------------
/__pycache__/ObjectDetection.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/ObjectDetection.cpython-36.pyc
--------------------------------------------------------------------------------
/__pycache__/PreProcessingModule.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/PreProcessingModule.cpython-35.pyc
--------------------------------------------------------------------------------
/__pycache__/PreProcessingModule.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/__pycache__/PreProcessingModule.cpython-36.pyc
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525479917.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525479917.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525479920.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525479920.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480085.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480085.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480087.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480087.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480396.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480396.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480398.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480398.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480473.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480473.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480475.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480475.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480660.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480660.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #0/events.out.tfevents.1525480662.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #0/events.out.tfevents.1525480662.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #1/events.out.tfevents.1525479946.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #1/events.out.tfevents.1525479946.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #1/events.out.tfevents.1525480114.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #1/events.out.tfevents.1525480114.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/logs/Fold #1/events.out.tfevents.1525480688.DESKTOP-8GOVN1C:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/logs/Fold #1/events.out.tfevents.1525480688.DESKTOP-8GOVN1C
--------------------------------------------------------------------------------
/main.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Main"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 2,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "#Begin Program\n",
17 | "import PreProcessingModule as ppm\n",
18 | "import CNN\n",
19 | "import ObjectDetection as od\n",
20 | "import Constants as const\n",
21 | "import pdb\n",
22 | "\n",
23 | "GREYSCALE_THRESHHOLD = 104\n",
24 | "IMAGE_COUNT = 2\n",
25 | "\n",
26 | "#Get a list of pre-processed images\n",
27 | "pr_image_list = ppm.get_pr_images(max_images = IMAGE_COUNT, greyscale='binary',\n",
28 | " greyscale_threshhold = GREYSCALE_THRESHHOLD);\n",
29 | "#Get a list of nomral images\n",
30 | "norm_image_list = ppm.get_upr_images(max_images = IMAGE_COUNT)\n",
31 | "#Stores the cropped images whose shape is 80x80x3\n",
32 | "cropped_image_list = []\n",
33 | "#Stores the boxes for later referall to redraw the bounding boxes on \n",
34 | "#items that are ships, where each item is x,y,width,height\n",
35 | "opt_bbox = None\n",
36 | "bbox_image = None\n",
37 | "\n",
38 | "#Create probable bounding boxes around items in the image and put them in a list\n",
39 | "for curr_image_index in range(len(pr_image_list)) :\n",
40 | " #Retrieve a processed and an unprocessed image\n",
41 | " curr_pr_image = pr_image_list[curr_image_index]\n",
42 | " curr_upr_image = norm_image_list[curr_image_index]\n",
43 | " #Get the height and width of the whole image\n",
44 | " image_height = curr_upr_image.shape[0]\n",
45 | " image_width = curr_upr_image.shape[1]\n",
46 | " #Retrieve the locations of all of the objects\n",
47 | " object_locations = od.detect(curr_pr_image)\n",
48 | " #Optimize the bounding boxes\n",
49 | " opt_bbox = ppm.scale_bbox(image_width, image_height, object_locations)\n",
50 | " bbox_image = ppm.create_bbox(curr_pr_image, opt_bbox)\n",
51 | " #Create the bounding box around the original image\n",
52 | " cropped_image_list = ppm.crop(curr_upr_image, opt_bbox)\n",
53 | "\n",
54 | "ppm.display_image(bbox_image)\n"
55 | ]
56 | },
57 | {
58 | "cell_type": "code",
59 | "execution_count": null,
60 | "metadata": {},
61 | "outputs": [],
62 | "source": []
63 | },
64 | {
65 | "cell_type": "code",
66 | "execution_count": null,
67 | "metadata": {},
68 | "outputs": [],
69 | "source": []
70 | }
71 | ],
72 | "metadata": {
73 | "kernelspec": {
74 | "display_name": "Python 3",
75 | "language": "python",
76 | "name": "python3"
77 | },
78 | "language_info": {
79 | "codemirror_mode": {
80 | "name": "ipython",
81 | "version": 3
82 | },
83 | "file_extension": ".py",
84 | "mimetype": "text/x-python",
85 | "name": "python",
86 | "nbconvert_exporter": "python",
87 | "pygments_lexer": "ipython3",
88 | "version": "3.5.2"
89 | }
90 | },
91 | "nbformat": 4,
92 | "nbformat_minor": 2
93 | }
94 |
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | #Begin Program
2 | import PreProcessingModule as ppm
3 | import CNN
4 | import ObjectDetection as od
5 | import Constants as const
6 | import pdb
7 | import numpy as np
8 | import time
9 |
10 | GREYSCALE_THRESHHOLD = 104
11 | IMAGE_COUNT = 2
12 |
13 | #Get a list of pre-processed images
14 | pr_image_list = ppm.get_pr_images(max_images = IMAGE_COUNT, greyscale='binary',
15 | greyscale_threshhold = GREYSCALE_THRESHHOLD)
16 | #Get a list of nomral images
17 | norm_image_list = ppm.get_upr_images(max_images = IMAGE_COUNT)
18 | #Stores the cropped images whose shape is 80x80x3
19 | cropped_image_list = []
20 | #Stores the boxes for later referall to redraw the bounding boxes on
21 | #items that are ships, where each item is x,y,width,height
22 | opt_bbox = None
23 |
24 | #Loads the stored CNN model
25 | model = CNN.load_CNN(const.PRETRAINED_CNN_MODEL_SIX)
26 | bounded_image_list = []
27 |
28 | #Time how long the code takes
29 | t0 = time.time()
30 |
31 | #Create probable bounding boxes around items in the image and put them in a list
32 | for curr_image_index in range(len(pr_image_list)) :
33 | #Retrieve a processed and an unprocessed image
34 | curr_pr_image = pr_image_list[curr_image_index]
35 | curr_upr_image = norm_image_list[curr_image_index]
36 | #Get the height and width of the whole image
37 | image_height = curr_upr_image.shape[0]
38 | image_width = curr_upr_image.shape[1]
39 | #Retrieve the locations of all of the objects
40 | object_locations = od.detect(curr_pr_image)
41 | #Optimize the bounding boxes
42 | opt_bbox = ppm.scale_bbox(image_width, image_height, object_locations)
43 | #Create the bounding box around the original image
44 | cropped_image_list = ppm.crop(curr_upr_image, opt_bbox)
45 |
46 | ## Uncomment this line if working with a pretrained model
47 | ## as it reshapes the image_list to the proper input size
48 | ## for the pretrained model
49 | cropped_image_list = ppm.reshape_data(cropped_image_list, (224,224))
50 |
51 | #Turn list of images into a usable format for the cnn
52 | array = np.asarray(cropped_image_list)
53 | #Get percentage possibilities whether the object is a ship
54 | predictions = CNN.predict_CNN(model, array)
55 | #Only save objects whose probability to be a ship is over 50%
56 | ships = []
57 | for index in range(len(predictions)):
58 | if predictions[index] > 0.8:
59 | ships.append(object_locations[index])
60 |
61 | #Create image with bounded boxes around predicted ships
62 | bounded_image = ppm.create_bbox(curr_upr_image, ships, box_thickness=3)
63 | bounded_image_list.append(bounded_image)
64 |
65 | #Finish timing code
66 | t1 = time.time()
67 | print(t1-t0)
68 |
69 | #Display one of the images
70 | ppm.display_image(bounded_image_list[0])
71 | ppm.display_image(bounded_image_list[1])
72 |
73 | ppm.saveImage(bounded_image_list[0], "Pretrained Version 6 Image 0.png")
74 | ppm.saveImage(bounded_image_list[1], "Pretrained Version 6 Image 1.png")
75 |
--------------------------------------------------------------------------------
/object_detection_test/Original Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Original Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Original Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Original Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 1 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 1 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 1 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 1 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 2 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 2 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 2 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 2 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 3 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 3 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 3 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 3 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 4 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 4 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 4 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 4 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 5 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 5 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 5 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 5 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 6 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 6 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Pretrained Version 6 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Pretrained Version 6 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Version 3 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Version 3 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Version 3 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Version 3 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Version 5 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Version 5 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Version 5 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Version 5 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/Version 6 Image 0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Version 6 Image 0.png
--------------------------------------------------------------------------------
/object_detection_test/Version 6 Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/Version 6 Image 1.png
--------------------------------------------------------------------------------
/object_detection_test/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PenguinDan/DeepLearningShipDetection/6e0faa128b1a33f960a312d513c4b5c3e3aa346d/object_detection_test/test.png
--------------------------------------------------------------------------------
/text_logs/Fold #0.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.8373999965190887 Training Loss: 0.3613034547492862 Epoch #1 : Validation Accuracy: 0.8360000014305115 Validation Loss: 0.3434012115001678
2 | Epoch #2 : Training Accuracy: 0.8796999952197075 Training Loss: 0.2759485376626253 Epoch #2 : Validation Accuracy: 0.9199999928474426 Validation Loss: 0.2126268237829208
3 | Epoch #3 : Training Accuracy: 0.8968999963998795 Training Loss: 0.2552603395655751 Epoch #3 : Validation Accuracy: 0.9060000061988831 Validation Loss: 0.2114711716771126
4 | Epoch #4 : Training Accuracy: 0.9218999972939491 Training Loss: 0.1998806979134679 Epoch #4 : Validation Accuracy: 0.9599999964237214 Validation Loss: 0.1021630782634020
5 | Epoch #5 : Training Accuracy: 0.9340999963879585 Training Loss: 0.1787866563349962 Epoch #5 : Validation Accuracy: 0.9259999930858612 Validation Loss: 0.1873138792812824
6 |
7 | Epoch #6 : Training Accuracy: 0.9254999947547913 Training Loss: 0.1809513449482620 Epoch #6 : Validation Accuracy: 0.9499999940395355 Validation Loss: 0.1233384698629379
8 | Epoch #7 : Training Accuracy: 0.9312999957799911 Training Loss: 0.1744651553407311 Epoch #7 : Validation Accuracy: 0.9500000059604645 Validation Loss: 0.1234218847006559
9 | Epoch #8 : Training Accuracy: 0.9348999950289726 Training Loss: 0.1646595595125109 Epoch #8 : Validation Accuracy: 0.9620000064373017 Validation Loss: 0.1066775780171156
10 | Epoch #9 : Training Accuracy: 0.9357999995350837 Training Loss: 0.1611387147288769 Epoch #9 : Validation Accuracy: 0.9480000078678131 Validation Loss: 0.1227798346430063
11 | Epoch #10 : Training Accuracy: 0.9383999967575073 Training Loss: 0.1560405443795025 Epoch #10 : Validation Accuracy: 0.9580000042915344 Validation Loss: 0.1040280058979988
12 |
13 | Epoch #11 : Training Accuracy: 0.9429999962449074 Training Loss: 0.1485753787215799 Epoch #11 : Validation Accuracy: 0.9700000107288360 Validation Loss: 0.0786229472607374
14 | Epoch #12 : Training Accuracy: 0.9415999969840050 Training Loss: 0.1523560517095029 Epoch #12 : Validation Accuracy: 0.9599999964237214 Validation Loss: 0.0860821260139346
15 | Epoch #13 : Training Accuracy: 0.9465999993681907 Training Loss: 0.1417446398548782 Epoch #13 : Validation Accuracy: 0.9619999945163726 Validation Loss: 0.1063024941831827
16 | Epoch #14 : Training Accuracy: 0.9459999990463257 Training Loss: 0.1400208853278309 Epoch #14 : Validation Accuracy: 0.9660000026226043 Validation Loss: 0.0886677704751491
17 | Epoch #15 : Training Accuracy: 0.9487999972701072 Training Loss: 0.1354600074514747 Epoch #15 : Validation Accuracy: 0.9699999988079071 Validation Loss: 0.0782060019671917
18 |
19 | Epoch #16 : Training Accuracy: 0.9525000000000000 Training Loss: 0.1280117859551683 Epoch #16 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0798772057518363
20 | Epoch #17 : Training Accuracy: 0.9461999985575676 Training Loss: 0.1364022445678711 Epoch #17 : Validation Accuracy: 0.9579999983310700 Validation Loss: 0.0937202425673604
21 | Epoch #18 : Training Accuracy: 0.9517999985814094 Training Loss: 0.1284205589722842 Epoch #18 : Validation Accuracy: 0.9680000066757202 Validation Loss: 0.0805169358849525
22 | Epoch #19 : Training Accuracy: 0.9533000001311303 Training Loss: 0.1244844510126859 Epoch #19 : Validation Accuracy: 0.9639999866485596 Validation Loss: 0.0811547150835395
23 | Epoch #20 : Training Accuracy: 0.9537999996542931 Training Loss: 0.1205355213116854 Epoch #20 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0593995405361056
24 |
25 | Epoch #21 : Training Accuracy: 0.9555999997258187 Training Loss: 0.1183353125676513 Epoch #21 : Validation Accuracy: 0.9680000007152557 Validation Loss: 0.0894563224166632
26 | Epoch #22 : Training Accuracy: 0.9598000010848046 Training Loss: 0.1131885521160439 Epoch #22 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0786348475143313
27 | Epoch #23 : Training Accuracy: 0.9583999994397163 Training Loss: 0.1133967156521976 Epoch #23 : Validation Accuracy: 0.9779999971389770 Validation Loss: 0.0590893112123013
28 | Epoch #24 : Training Accuracy: 0.9544999989867210 Training Loss: 0.1172488864790648 Epoch #24 : Validation Accuracy: 0.9660000026226043 Validation Loss: 0.0901919133961201
29 | Epoch #25 : Training Accuracy: 0.9591999998688698 Training Loss: 0.1106189618725330 Epoch #25 : Validation Accuracy: 0.9740000069141388 Validation Loss: 0.0888453129678965
30 |
31 | Epoch #26 : Training Accuracy: 0.9591999995708466 Training Loss: 0.1099715617671609 Epoch #26 : Validation Accuracy: 0.9699999988079071 Validation Loss: 0.0833641130477190
32 | Epoch #27 : Training Accuracy: 0.9596999996900558 Training Loss: 0.1043896827427670 Epoch #27 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0714523646980524
33 | Epoch #28 : Training Accuracy: 0.9602999991178512 Training Loss: 0.1084254149906337 Epoch #28 : Validation Accuracy: 0.9740000009536743 Validation Loss: 0.0638354383409023
34 | Epoch #29 : Training Accuracy: 0.9640999996662140 Training Loss: 0.0986467972956598 Epoch #29 : Validation Accuracy: 0.9680000007152557 Validation Loss: 0.0930416651070118
35 | Epoch #30 : Training Accuracy: 0.9621000006794930 Training Loss: 0.0999198011355475 Epoch #30 : Validation Accuracy: 0.9740000069141388 Validation Loss: 0.0639403978362680
36 |
37 | Epoch #31 : Training Accuracy: 0.9654999992251396 Training Loss: 0.0959347143024206 Epoch #31 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0575709318742156
38 | Epoch #32 : Training Accuracy: 0.9647000008821487 Training Loss: 0.0961675180820748 Epoch #32 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0568828165531158
39 | Epoch #33 : Training Accuracy: 0.9683000007271767 Training Loss: 0.0878107639774680 Epoch #33 : Validation Accuracy: 0.9760000109672546 Validation Loss: 0.0697914771735668
40 | Epoch #34 : Training Accuracy: 0.9650999996066093 Training Loss: 0.0935050829313695 Epoch #34 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0516459962353110
41 | Epoch #35 : Training Accuracy: 0.9683000010251999 Training Loss: 0.0879991381894797 Epoch #35 : Validation Accuracy: 0.9780000090599060 Validation Loss: 0.0490968232974410
42 |
43 | Epoch #36 : Training Accuracy: 0.9672000017762185 Training Loss: 0.0861708458571229 Epoch #36 : Validation Accuracy: 0.9720000088214874 Validation Loss: 0.0682704422622919
44 | Epoch #37 : Training Accuracy: 0.9688000002503395 Training Loss: 0.0857487516431138 Epoch #37 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0579367069527507
45 | Epoch #38 : Training Accuracy: 0.9679000020027161 Training Loss: 0.0866800724598579 Epoch #38 : Validation Accuracy: 0.9780000090599060 Validation Loss: 0.0610066143795848
46 | Epoch #39 : Training Accuracy: 0.9716000023484230 Training Loss: 0.0786316590243950 Epoch #39 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0548655722290277
47 | Epoch #40 : Training Accuracy: 0.9689000010490417 Training Loss: 0.0833205751306377 Epoch #40 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0407007794827223
48 |
49 | Epoch #41 : Training Accuracy: 0.9719000029563903 Training Loss: 0.0814381685014814 Epoch #41 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0760288659483194
50 | Epoch #42 : Training Accuracy: 0.9695999985933303 Training Loss: 0.0795459904242307 Epoch #42 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0413095491006970
51 | Epoch #43 : Training Accuracy: 0.9715000012516976 Training Loss: 0.0748126925411634 Epoch #43 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0569152618758380
52 | Epoch #44 : Training Accuracy: 0.9699000012874603 Training Loss: 0.0785666737472639 Epoch #44 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0644503694027662
53 | Epoch #45 : Training Accuracy: 0.9706000012159347 Training Loss: 0.0739382226532325 Epoch #45 : Validation Accuracy: 0.9740000069141388 Validation Loss: 0.0718324722722173
54 |
55 | Epoch #46 : Training Accuracy: 0.9726000028848648 Training Loss: 0.0753850401006639 Epoch #46 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0696011541411281
56 | Epoch #47 : Training Accuracy: 0.9744000026583671 Training Loss: 0.0711604908481240 Epoch #47 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0418332817964256
57 | Epoch #48 : Training Accuracy: 0.9758000016212464 Training Loss: 0.0681724677747115 Epoch #48 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0542137853801250
58 | Epoch #49 : Training Accuracy: 0.9755000016093254 Training Loss: 0.0684865301428363 Epoch #49 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0651565416716039
59 | Epoch #50 : Training Accuracy: 0.9747000017762184 Training Loss: 0.0704875546856783 Epoch #50 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0732629790902138
60 |
61 | Epoch #51 : Training Accuracy: 0.9758000034093857 Training Loss: 0.0682294616475701 Epoch #51 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0423135165125132
62 | Epoch #52 : Training Accuracy: 0.9765000024437904 Training Loss: 0.0678492775163613 Epoch #52 : Validation Accuracy: 0.9779999971389770 Validation Loss: 0.0656025080010295
63 | Epoch #53 : Training Accuracy: 0.9754000037908555 Training Loss: 0.0617519648815505 Epoch #53 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0525542004033923
64 | Epoch #54 : Training Accuracy: 0.9797000035643577 Training Loss: 0.0576690031564795 Epoch #54 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0370537620969117
65 | Epoch #55 : Training Accuracy: 0.9784000024199486 Training Loss: 0.0583726254943758 Epoch #55 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0671785365790129
66 |
67 | Epoch #56 : Training Accuracy: 0.9772000011801719 Training Loss: 0.0597093851253157 Epoch #56 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0493296696105972
68 | Epoch #57 : Training Accuracy: 0.9796000033617019 Training Loss: 0.0573275106694200 Epoch #57 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0267460404429585
69 | Epoch #58 : Training Accuracy: 0.9802000024914741 Training Loss: 0.0548383177327923 Epoch #58 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0418931725434959
70 | Epoch #59 : Training Accuracy: 0.9808000031113625 Training Loss: 0.0538397407962475 Epoch #59 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0533283105120063
71 | Epoch #60 : Training Accuracy: 0.9815000030398369 Training Loss: 0.0506716594897443 Epoch #60 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0392153716180474
72 |
73 | Epoch #61 : Training Accuracy: 0.9809000027179718 Training Loss: 0.0497969380614813 Epoch #61 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0463724986650050
74 | Epoch #62 : Training Accuracy: 0.9838000035285950 Training Loss: 0.0444012799908523 Epoch #62 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0431906070094556
75 | Epoch #63 : Training Accuracy: 0.9813000023365021 Training Loss: 0.0516466019069776 Epoch #63 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0399294041097164
76 | Epoch #64 : Training Accuracy: 0.9837000048160554 Training Loss: 0.0440355087828357 Epoch #64 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0440310244914144
77 | Epoch #65 : Training Accuracy: 0.9859000045061111 Training Loss: 0.0410500398185104 Epoch #65 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0362814618740231
78 |
79 | Epoch #66 : Training Accuracy: 0.9838000029325485 Training Loss: 0.0462698093568906 Epoch #66 : Validation Accuracy: 0.9860000133514404 Validation Loss: 0.0319531736895442
80 | Epoch #67 : Training Accuracy: 0.9847000044584274 Training Loss: 0.0437937939027324 Epoch #67 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0400868498021737
81 | Epoch #68 : Training Accuracy: 0.9863000050187111 Training Loss: 0.0381245950315497 Epoch #68 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0270833752816543
82 | Epoch #69 : Training Accuracy: 0.9861000046133995 Training Loss: 0.0381346620101249 Epoch #69 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0398468339815736
83 | Epoch #70 : Training Accuracy: 0.9870000025629997 Training Loss: 0.0366896491294028 Epoch #70 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0659609382506460
84 |
85 | Epoch #71 : Training Accuracy: 0.9866000041365623 Training Loss: 0.0368455608928343 Epoch #71 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0360803921357729
86 | Epoch #72 : Training Accuracy: 0.9902000039815902 Training Loss: 0.0312742481128953 Epoch #72 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0246908839326352
87 | Epoch #73 : Training Accuracy: 0.9853000032901764 Training Loss: 0.0384037066760357 Epoch #73 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0316230317577720
88 | Epoch #74 : Training Accuracy: 0.9879000028967857 Training Loss: 0.0333283378535998 Epoch #74 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0305289152078331
89 | Epoch #75 : Training Accuracy: 0.9913000041246414 Training Loss: 0.0251093849484459 Epoch #75 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0403397057554685
90 |
91 | Epoch #76 : Training Accuracy: 0.9897000035643577 Training Loss: 0.0305600053226226 Epoch #76 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0344657351961359
92 | Epoch #77 : Training Accuracy: 0.9891000026464463 Training Loss: 0.0299013676717004 Epoch #77 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0534528238466010
93 | Epoch #78 : Training Accuracy: 0.9908000031113624 Training Loss: 0.0264625390490983 Epoch #78 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0366704363259487
94 | Epoch #79 : Training Accuracy: 0.9905000042915344 Training Loss: 0.0262645086739212 Epoch #79 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0319282702403143
95 | Epoch #80 : Training Accuracy: 0.9910000035166741 Training Loss: 0.0249133152705326 Epoch #80 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0447656106669456
96 |
97 | Epoch #81 : Training Accuracy: 0.9913000047206879 Training Loss: 0.0252808434830513 Epoch #81 : Validation Accuracy: 0.9839999973773956 Validation Loss: 0.0687586113810539
98 | Epoch #82 : Training Accuracy: 0.9891000044345856 Training Loss: 0.0259222708130255 Epoch #82 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0817329377867281
99 | Epoch #83 : Training Accuracy: 0.9891000059247017 Training Loss: 0.0319430418207776 Epoch #83 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0312295109732077
100 | Epoch #84 : Training Accuracy: 0.9908000040054321 Training Loss: 0.0256480649128207 Epoch #84 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0493580558104441
101 | Epoch #85 : Training Accuracy: 0.9912000039219856 Training Loss: 0.0230723382810538 Epoch #85 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0480901571805589
102 |
103 | Epoch #86 : Training Accuracy: 0.9916000038385391 Training Loss: 0.0244124174150056 Epoch #86 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0430859793443233
104 | Epoch #87 : Training Accuracy: 0.9931000041961670 Training Loss: 0.0211479654215145 Epoch #87 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0267032987496350
105 | Epoch #88 : Training Accuracy: 0.9929000031948090 Training Loss: 0.0215449303971218 Epoch #88 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0443673150148243
106 | Epoch #89 : Training Accuracy: 0.9937000042200088 Training Loss: 0.0186834894951608 Epoch #89 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0473180385772139
107 | Epoch #90 : Training Accuracy: 0.9923000025749207 Training Loss: 0.0220897503182641 Epoch #90 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0437387086800300
108 |
109 | Epoch #91 : Training Accuracy: 0.9920000040531158 Training Loss: 0.0212880593345108 Epoch #91 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0350329919951037
110 | Epoch #92 : Training Accuracy: 0.9913000044226646 Training Loss: 0.0225855070207399 Epoch #92 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0728261083364487
111 | Epoch #93 : Training Accuracy: 0.9942000031471252 Training Loss: 0.0176522730932993 Epoch #93 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0640679252333939
112 | Epoch #94 : Training Accuracy: 0.9939000040292740 Training Loss: 0.0161883459510500 Epoch #94 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0267655147559708
113 | Epoch #95 : Training Accuracy: 0.9941000041365623 Training Loss: 0.0153762786454172 Epoch #95 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0431318128103158
114 |
115 | Epoch #96 : Training Accuracy: 0.9918000036478043 Training Loss: 0.0219611088615056 Epoch #96 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0331864252453670
116 | Epoch #97 : Training Accuracy: 0.9943000030517578 Training Loss: 0.0194483291848519 Epoch #97 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0479006526147714
117 | Epoch #98 : Training Accuracy: 0.9935000020265580 Training Loss: 0.0169786347322224 Epoch #98 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0308858926116955
118 | Epoch #99 : Training Accuracy: 0.9941000047326088 Training Loss: 0.0184592153070116 Epoch #99 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0484541928832186
119 | Epoch #100: Training Accuracy: 0.9952000027894974 Training Loss: 0.0148927247047959 Epoch #100: Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0417322629073169
120 |
121 |
--------------------------------------------------------------------------------
/text_logs/Fold #1.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.8369999945163726 Training Loss: 0.3597753806412220 Epoch #1 : Validation Accuracy: 0.8779999911785126 Validation Loss: 0.2669319525361061
2 | Epoch #2 : Training Accuracy: 0.8825999963283538 Training Loss: 0.2661463842913508 Epoch #2 : Validation Accuracy: 0.9259999930858612 Validation Loss: 0.1948490835726261
3 | Epoch #3 : Training Accuracy: 0.9013999962806701 Training Loss: 0.2406676514446735 Epoch #3 : Validation Accuracy: 0.9500000000000000 Validation Loss: 0.1307991471141577
4 | Epoch #4 : Training Accuracy: 0.9144999989867211 Training Loss: 0.2100332050397992 Epoch #4 : Validation Accuracy: 0.9519999980926513 Validation Loss: 0.1281694311648607
5 | Epoch #5 : Training Accuracy: 0.9175999972224236 Training Loss: 0.2016954386048019 Epoch #5 : Validation Accuracy: 0.9540000021457672 Validation Loss: 0.1224916473031044
6 |
7 | Epoch #6 : Training Accuracy: 0.9319999980926513 Training Loss: 0.1818482429534197 Epoch #6 : Validation Accuracy: 0.9439999997615814 Validation Loss: 0.1290149219334125
8 | Epoch #7 : Training Accuracy: 0.9323999977111816 Training Loss: 0.1718044963106513 Epoch #7 : Validation Accuracy: 0.9580000042915344 Validation Loss: 0.1130945919081569
9 | Epoch #8 : Training Accuracy: 0.9318999972939491 Training Loss: 0.1698885359987617 Epoch #8 : Validation Accuracy: 0.9619999945163726 Validation Loss: 0.0998793318867683
10 | Epoch #9 : Training Accuracy: 0.9363999977707863 Training Loss: 0.1650987897999585 Epoch #9 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0853787980973721
11 | Epoch #10 : Training Accuracy: 0.9325999993085862 Training Loss: 0.1693540147785097 Epoch #10 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0816719494760036
12 |
13 | Epoch #11 : Training Accuracy: 0.9385999992489815 Training Loss: 0.1579454622603953 Epoch #11 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0531827055849135
14 | Epoch #12 : Training Accuracy: 0.9400999963283538 Training Loss: 0.1516768109798431 Epoch #12 : Validation Accuracy: 0.9599999964237214 Validation Loss: 0.0812975598499179
15 | Epoch #13 : Training Accuracy: 0.9451999992132187 Training Loss: 0.1385440564900637 Epoch #13 : Validation Accuracy: 0.9640000104904175 Validation Loss: 0.0903741139918566
16 | Epoch #14 : Training Accuracy: 0.9454999998211860 Training Loss: 0.1432760985940695 Epoch #14 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0600747576914728
17 | Epoch #15 : Training Accuracy: 0.9454999962449073 Training Loss: 0.1380854416266084 Epoch #15 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0745609548874199
18 |
19 | Epoch #16 : Training Accuracy: 0.9484999984502792 Training Loss: 0.1355227688513696 Epoch #16 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0433607208542526
20 | Epoch #17 : Training Accuracy: 0.9486000001430511 Training Loss: 0.1307325458526611 Epoch #17 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0516186492517591
21 | Epoch #18 : Training Accuracy: 0.9443999999761581 Training Loss: 0.1393279926199466 Epoch #18 : Validation Accuracy: 0.9700000047683716 Validation Loss: 0.0677915147505701
22 | Epoch #19 : Training Accuracy: 0.9507999998331070 Training Loss: 0.1275195618951693 Epoch #19 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0598726892378181
23 | Epoch #20 : Training Accuracy: 0.9532999995350838 Training Loss: 0.1227283492963761 Epoch #20 : Validation Accuracy: 0.9779999971389770 Validation Loss: 0.0591864533722401
24 |
25 | Epoch #21 : Training Accuracy: 0.9569999989867211 Training Loss: 0.1152496538963169 Epoch #21 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0472862172173336
26 | Epoch #22 : Training Accuracy: 0.9573999997973442 Training Loss: 0.1154763091774657 Epoch #22 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0543754284968600
27 | Epoch #23 : Training Accuracy: 0.9590999999642372 Training Loss: 0.1108099960722029 Epoch #23 : Validation Accuracy: 0.9759999930858612 Validation Loss: 0.0705946548841894
28 | Epoch #24 : Training Accuracy: 0.9607999995350838 Training Loss: 0.1087363399751484 Epoch #24 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0543593954993412
29 | Epoch #25 : Training Accuracy: 0.9617000004649162 Training Loss: 0.1068814020417631 Epoch #25 : Validation Accuracy: 0.9819999933242798 Validation Loss: 0.0482007805258036
30 |
31 | Epoch #26 : Training Accuracy: 0.9615000006556511 Training Loss: 0.1051560593070462 Epoch #26 : Validation Accuracy: 0.9839999973773956 Validation Loss: 0.0442440246697515
32 | Epoch #27 : Training Accuracy: 0.9618000015616417 Training Loss: 0.1044021398667246 Epoch #27 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0526329436572269
33 | Epoch #28 : Training Accuracy: 0.9608000001311302 Training Loss: 0.1044710582634434 Epoch #28 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0355768416542560
34 | Epoch #29 : Training Accuracy: 0.9615999999642372 Training Loss: 0.1019632879272103 Epoch #29 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0421792913810350
35 | Epoch #30 : Training Accuracy: 0.9611000001430512 Training Loss: 0.1016042502271012 Epoch #30 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0463350125937723
36 |
37 | Epoch #31 : Training Accuracy: 0.9648999983072281 Training Loss: 0.0965331510500982 Epoch #31 : Validation Accuracy: 0.9779999971389770 Validation Loss: 0.0525177254166920
38 | Epoch #32 : Training Accuracy: 0.9639999994635582 Training Loss: 0.0961207475233823 Epoch #32 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0289412691723555
39 | Epoch #33 : Training Accuracy: 0.9666999989748001 Training Loss: 0.0977156183915213 Epoch #33 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0395861331373453
40 | Epoch #34 : Training Accuracy: 0.9656000000238418 Training Loss: 0.0936597148980945 Epoch #34 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0389516056515276
41 | Epoch #35 : Training Accuracy: 0.9662000015377998 Training Loss: 0.0926746445102617 Epoch #35 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0429526042193174
42 |
43 | Epoch #36 : Training Accuracy: 0.9636000007390976 Training Loss: 0.0973694573622197 Epoch #36 : Validation Accuracy: 0.9740000009536743 Validation Loss: 0.0613752795266919
44 | Epoch #37 : Training Accuracy: 0.9681000012159348 Training Loss: 0.0890801079804078 Epoch #37 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0548646913608536
45 | Epoch #38 : Training Accuracy: 0.9682000011205674 Training Loss: 0.0875217777537182 Epoch #38 : Validation Accuracy: 0.9739999949932099 Validation Loss: 0.0740815870463848
46 | Epoch #39 : Training Accuracy: 0.9669999992847442 Training Loss: 0.0907293831137940 Epoch #39 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0350932588917203
47 | Epoch #40 : Training Accuracy: 0.9672000005841255 Training Loss: 0.0864813463680912 Epoch #40 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0446792696835473
48 |
49 | Epoch #41 : Training Accuracy: 0.9694999998807907 Training Loss: 0.0839887493918650 Epoch #41 : Validation Accuracy: 0.9839999973773956 Validation Loss: 0.0335644440725446
50 | Epoch #42 : Training Accuracy: 0.9698000019788742 Training Loss: 0.0784260367741808 Epoch #42 : Validation Accuracy: 0.9839999973773956 Validation Loss: 0.0344430748838931
51 | Epoch #43 : Training Accuracy: 0.9719000014662743 Training Loss: 0.0745718938135542 Epoch #43 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0414273479313124
52 | Epoch #44 : Training Accuracy: 0.9712000015377998 Training Loss: 0.0763663179078139 Epoch #44 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0413007038994692
53 | Epoch #45 : Training Accuracy: 0.9707000011205673 Training Loss: 0.0778236141812522 Epoch #45 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0399062861863058
54 |
55 | Epoch #46 : Training Accuracy: 0.9736000016331673 Training Loss: 0.0765794876636937 Epoch #46 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0204383328557014
56 | Epoch #47 : Training Accuracy: 0.9712000006437301 Training Loss: 0.0799758105911314 Epoch #47 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0508582583745010
57 | Epoch #48 : Training Accuracy: 0.9685000005364418 Training Loss: 0.0804472273425199 Epoch #48 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0369645752012730
58 | Epoch #49 : Training Accuracy: 0.9737000006437302 Training Loss: 0.0698109100852162 Epoch #49 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0538190300110728
59 | Epoch #50 : Training Accuracy: 0.9738000002503395 Training Loss: 0.0717217818391509 Epoch #50 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0528626635437831
60 |
61 | Epoch #51 : Training Accuracy: 0.9767000031471252 Training Loss: 0.0644975637621246 Epoch #51 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0291190324234776
62 | Epoch #52 : Training Accuracy: 0.9725000014901162 Training Loss: 0.0739348575472832 Epoch #52 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0226201375364326
63 | Epoch #53 : Training Accuracy: 0.9744000011682510 Training Loss: 0.0691709867655300 Epoch #53 : Validation Accuracy: 0.9779999971389770 Validation Loss: 0.0492525036679581
64 | Epoch #54 : Training Accuracy: 0.9779000031948090 Training Loss: 0.0608142425015103 Epoch #54 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0439826313406229
65 | Epoch #55 : Training Accuracy: 0.9770000031590462 Training Loss: 0.0598792812501779 Epoch #55 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0306321049225517
66 |
67 | Epoch #56 : Training Accuracy: 0.9775000026822090 Training Loss: 0.0636967089143582 Epoch #56 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0271270814351737
68 | Epoch #57 : Training Accuracy: 0.9791000041365624 Training Loss: 0.0566352159809321 Epoch #57 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0369547323323786
69 | Epoch #58 : Training Accuracy: 0.9786000022292137 Training Loss: 0.0599508971173782 Epoch #58 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0281311285449192
70 | Epoch #59 : Training Accuracy: 0.9783000034093857 Training Loss: 0.0599741948186420 Epoch #59 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0210134132066742
71 | Epoch #60 : Training Accuracy: 0.9801000028848648 Training Loss: 0.0520396275306121 Epoch #60 : Validation Accuracy: 0.9739999949932099 Validation Loss: 0.0664638597983867
72 |
73 | Epoch #61 : Training Accuracy: 0.9803000029921531 Training Loss: 0.0560088868450839 Epoch #61 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0386368802282959
74 | Epoch #62 : Training Accuracy: 0.9797000035643577 Training Loss: 0.0534621803881601 Epoch #62 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0209666208713315
75 | Epoch #63 : Training Accuracy: 0.9835000032186508 Training Loss: 0.0468863720784429 Epoch #63 : Validation Accuracy: 0.9920000016689301 Validation Loss: 0.0185182058368810
76 | Epoch #64 : Training Accuracy: 0.9830000036954880 Training Loss: 0.0478073071117979 Epoch #64 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0112753458670340
77 | Epoch #65 : Training Accuracy: 0.9843000036478042 Training Loss: 0.0423372763310908 Epoch #65 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0327487921458669
78 |
79 | Epoch #66 : Training Accuracy: 0.9839000043272972 Training Loss: 0.0423211375967367 Epoch #66 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0317480327037629
80 | Epoch #67 : Training Accuracy: 0.9834000036120415 Training Loss: 0.0447908810339868 Epoch #67 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0161904870881699
81 | Epoch #68 : Training Accuracy: 0.9860000041127205 Training Loss: 0.0405563343700487 Epoch #68 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0220225728175137
82 | Epoch #69 : Training Accuracy: 0.9879000037908554 Training Loss: 0.0347696447593626 Epoch #69 : Validation Accuracy: 0.9959999978542328 Validation Loss: 0.0112698169017676
83 | Epoch #70 : Training Accuracy: 0.9857000020146370 Training Loss: 0.0389877964399057 Epoch #70 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0231827229727060
84 |
85 | Epoch #71 : Training Accuracy: 0.9876000046730041 Training Loss: 0.0369902536206064 Epoch #71 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0275728386593983
86 | Epoch #72 : Training Accuracy: 0.9899000051617622 Training Loss: 0.0285086080804467 Epoch #72 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0078454240399878
87 | Epoch #73 : Training Accuracy: 0.9881000038981438 Training Loss: 0.0323591433795809 Epoch #73 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0140313043142669
88 | Epoch #74 : Training Accuracy: 0.9878000047802925 Training Loss: 0.0351312438654713 Epoch #74 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0162379445217084
89 | Epoch #75 : Training Accuracy: 0.9880000045895576 Training Loss: 0.0341451614175457 Epoch #75 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0157404766505351
90 |
91 | Epoch #76 : Training Accuracy: 0.9909000030159950 Training Loss: 0.0264408797040232 Epoch #76 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0195029517904914
92 | Epoch #77 : Training Accuracy: 0.9886000037193299 Training Loss: 0.0308545031236281 Epoch #77 : Validation Accuracy: 0.9939999997615814 Validation Loss: 0.0167342904082034
93 | Epoch #78 : Training Accuracy: 0.9909000027179719 Training Loss: 0.0264888612907816 Epoch #78 : Validation Accuracy: 0.9939999997615814 Validation Loss: 0.0169973515658057
94 | Epoch #79 : Training Accuracy: 0.9915000039339066 Training Loss: 0.0263984940552473 Epoch #79 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0115207349910634
95 | Epoch #80 : Training Accuracy: 0.9913000044226646 Training Loss: 0.0246893289119180 Epoch #80 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0139077164902119
96 |
97 | Epoch #81 : Training Accuracy: 0.9906000041961670 Training Loss: 0.0269477538127830 Epoch #81 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0193900305366697
98 | Epoch #82 : Training Accuracy: 0.9926000037789344 Training Loss: 0.0221213862636068 Epoch #82 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0108942678809399
99 | Epoch #83 : Training Accuracy: 0.9915000039339066 Training Loss: 0.0246734438158455 Epoch #83 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0212057440643548
100 | Epoch #84 : Training Accuracy: 0.9918000033497810 Training Loss: 0.0223957296915614 Epoch #84 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0070994061970850
101 | Epoch #85 : Training Accuracy: 0.9911000037193298 Training Loss: 0.0236717790589319 Epoch #85 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0070695560658351
102 |
103 | Epoch #86 : Training Accuracy: 0.9936000043153763 Training Loss: 0.0180701445956947 Epoch #86 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0126325533652562
104 | Epoch #87 : Training Accuracy: 0.9925000038743019 Training Loss: 0.0213839073386043 Epoch #87 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0168950703846349
105 | Epoch #88 : Training Accuracy: 0.9908000034093857 Training Loss: 0.0234429320922936 Epoch #88 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0098358358169207
106 | Epoch #89 : Training Accuracy: 0.9929000046849251 Training Loss: 0.0209544841192837 Epoch #89 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0076334199373377
107 | Epoch #90 : Training Accuracy: 0.9917000040411950 Training Loss: 0.0220840949786361 Epoch #90 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0101696878729854
108 |
109 | Epoch #91 : Training Accuracy: 0.9923000046610833 Training Loss: 0.0233962595384219 Epoch #91 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0202776099788025
110 | Epoch #92 : Training Accuracy: 0.9938000038266182 Training Loss: 0.0168052279223048 Epoch #92 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0073653434708831
111 | Epoch #93 : Training Accuracy: 0.9924000042676926 Training Loss: 0.0200700089002567 Epoch #93 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0130817047254823
112 | Epoch #94 : Training Accuracy: 0.9937000042200088 Training Loss: 0.0175237382246996 Epoch #94 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0063695415821712
113 | Epoch #95 : Training Accuracy: 0.9952000030875205 Training Loss: 0.0147492487623640 Epoch #95 : Validation Accuracy: 0.9959999978542328 Validation Loss: 0.0081387239501055
114 |
115 | Epoch #96 : Training Accuracy: 0.9928000035881996 Training Loss: 0.0209329443384922 Epoch #96 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0078113700641552
116 | Epoch #97 : Training Accuracy: 0.9947000044584274 Training Loss: 0.0148561828208040 Epoch #97 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0082058796580895
117 | Epoch #98 : Training Accuracy: 0.9927000024914742 Training Loss: 0.0205789934292352 Epoch #98 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0097666791160009
118 | Epoch #99 : Training Accuracy: 0.9952000033855438 Training Loss: 0.0138040364108383 Epoch #99 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0123977316259698
119 | Epoch #100: Training Accuracy: 0.9938000035285950 Training Loss: 0.0178401630961889 Epoch #100: Validation Accuracy: 0.9939999997615814 Validation Loss: 0.0153750142882927
120 |
121 |
--------------------------------------------------------------------------------
/text_logs/Fold #2.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.8273999965935945 Training Loss: 0.3796463962644339 Epoch #1 : Validation Accuracy: 0.9119999885559082 Validation Loss: 0.2082248345017433
2 | Epoch #2 : Training Accuracy: 0.8748999962210655 Training Loss: 0.2906531769037247 Epoch #2 : Validation Accuracy: 0.9379999935626984 Validation Loss: 0.1581474900245667
3 | Epoch #3 : Training Accuracy: 0.8997999963164329 Training Loss: 0.2382544506713748 Epoch #3 : Validation Accuracy: 0.9439999997615814 Validation Loss: 0.1486761726438999
4 | Epoch #4 : Training Accuracy: 0.9069999954104424 Training Loss: 0.2340299200266600 Epoch #4 : Validation Accuracy: 0.9580000102519989 Validation Loss: 0.1177318498492241
5 | Epoch #5 : Training Accuracy: 0.9180999967455864 Training Loss: 0.1987065603025258 Epoch #5 : Validation Accuracy: 0.9500000000000000 Validation Loss: 0.1149790480732918
6 |
7 | Epoch #6 : Training Accuracy: 0.9236999955773354 Training Loss: 0.1994052666239440 Epoch #6 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.1012418758124113
8 | Epoch #7 : Training Accuracy: 0.9312999966740608 Training Loss: 0.1731675177440047 Epoch #7 : Validation Accuracy: 0.9659999966621399 Validation Loss: 0.0838701341301203
9 | Epoch #8 : Training Accuracy: 0.9321999993920326 Training Loss: 0.1703553866967559 Epoch #8 : Validation Accuracy: 0.9620000004768372 Validation Loss: 0.0941624499857426
10 | Epoch #9 : Training Accuracy: 0.9287999999523163 Training Loss: 0.1719495945982635 Epoch #9 : Validation Accuracy: 0.9719999909400940 Validation Loss: 0.0990285944193602
11 | Epoch #10 : Training Accuracy: 0.9384999993443489 Training Loss: 0.1519314082153141 Epoch #10 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0736961545422673
12 |
13 | Epoch #11 : Training Accuracy: 0.9397999987006187 Training Loss: 0.1509109298978001 Epoch #11 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0804844129830599
14 | Epoch #12 : Training Accuracy: 0.9414999949932098 Training Loss: 0.1479536369256675 Epoch #12 : Validation Accuracy: 0.9659999966621399 Validation Loss: 0.0781148032285273
15 | Epoch #13 : Training Accuracy: 0.9437999990582466 Training Loss: 0.1443345966562629 Epoch #13 : Validation Accuracy: 0.9839999973773956 Validation Loss: 0.0738224685192108
16 | Epoch #14 : Training Accuracy: 0.9441999974846840 Training Loss: 0.1450369394943118 Epoch #14 : Validation Accuracy: 0.9739999949932099 Validation Loss: 0.0623549988493323
17 | Epoch #15 : Training Accuracy: 0.9478999981284142 Training Loss: 0.1371887282468379 Epoch #15 : Validation Accuracy: 0.9640000045299530 Validation Loss: 0.0852010501548648
18 |
19 | Epoch #16 : Training Accuracy: 0.9451999971270562 Training Loss: 0.1376234364486300 Epoch #16 : Validation Accuracy: 0.9799999952316284 Validation Loss: 0.0587999654933810
20 | Epoch #17 : Training Accuracy: 0.9535999986529350 Training Loss: 0.1240106712840497 Epoch #17 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0622718242928386
21 | Epoch #18 : Training Accuracy: 0.9507999992370606 Training Loss: 0.1285909950453788 Epoch #18 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0651960179209709
22 | Epoch #19 : Training Accuracy: 0.9508999994397164 Training Loss: 0.1222110377065837 Epoch #19 : Validation Accuracy: 0.9660000026226043 Validation Loss: 0.0784342447295785
23 | Epoch #20 : Training Accuracy: 0.9535999998450280 Training Loss: 0.1208030598191544 Epoch #20 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0646809806115925
24 |
25 | Epoch #21 : Training Accuracy: 0.9563999977707863 Training Loss: 0.1189131861831993 Epoch #21 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0651998296380043
26 | Epoch #22 : Training Accuracy: 0.9589999994635582 Training Loss: 0.1098391803214327 Epoch #22 : Validation Accuracy: 0.9740000069141388 Validation Loss: 0.0709757397416979
27 | Epoch #23 : Training Accuracy: 0.9573000004887581 Training Loss: 0.1114235332095996 Epoch #23 : Validation Accuracy: 0.9699999988079071 Validation Loss: 0.0780439257621765
28 | Epoch #24 : Training Accuracy: 0.9565999990701676 Training Loss: 0.1082632143702358 Epoch #24 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0578160898759961
29 | Epoch #25 : Training Accuracy: 0.9603999993205070 Training Loss: 0.1055901761399582 Epoch #25 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0639512740075588
30 |
31 | Epoch #26 : Training Accuracy: 0.9564999976754188 Training Loss: 0.1139121222542599 Epoch #26 : Validation Accuracy: 0.9799999952316284 Validation Loss: 0.0639566700905561
32 | Epoch #27 : Training Accuracy: 0.9611999997496605 Training Loss: 0.1012354703154415 Epoch #27 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0490276314318180
33 | Epoch #28 : Training Accuracy: 0.9612999978661537 Training Loss: 0.1017236833134666 Epoch #28 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0645681052468717
34 | Epoch #29 : Training Accuracy: 0.9631000000238419 Training Loss: 0.0970296594640240 Epoch #29 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0494584505446255
35 | Epoch #30 : Training Accuracy: 0.9652000018954277 Training Loss: 0.0958665777230635 Epoch #30 : Validation Accuracy: 0.9539999961853027 Validation Loss: 0.1052507139742374
36 |
37 | Epoch #31 : Training Accuracy: 0.9627000012993813 Training Loss: 0.0977287990786135 Epoch #31 : Validation Accuracy: 0.9739999949932099 Validation Loss: 0.0716419694013894
38 | Epoch #32 : Training Accuracy: 0.9671999979019165 Training Loss: 0.0900958155281842 Epoch #32 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0619953695684671
39 | Epoch #33 : Training Accuracy: 0.9646999984979630 Training Loss: 0.0904498885734938 Epoch #33 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0522069707512856
40 | Epoch #34 : Training Accuracy: 0.9652999991178512 Training Loss: 0.0927204101462848 Epoch #34 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0618937473744154
41 | Epoch #35 : Training Accuracy: 0.9679000014066697 Training Loss: 0.0887038725847378 Epoch #35 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0627167396247387
42 |
43 | Epoch #36 : Training Accuracy: 0.9679999995231628 Training Loss: 0.0879064712859690 Epoch #36 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0605965041089803
44 | Epoch #37 : Training Accuracy: 0.9699000003933906 Training Loss: 0.0824910780647770 Epoch #37 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0457705036737025
45 | Epoch #38 : Training Accuracy: 0.9695000013709069 Training Loss: 0.0801292301388457 Epoch #38 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0400605638977140
46 | Epoch #39 : Training Accuracy: 0.9694000020623207 Training Loss: 0.0811821118975058 Epoch #39 : Validation Accuracy: 0.9799999952316284 Validation Loss: 0.0498572827316821
47 | Epoch #40 : Training Accuracy: 0.9695000007748604 Training Loss: 0.0794490792020224 Epoch #40 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0661663201637566
48 |
49 | Epoch #41 : Training Accuracy: 0.9729000014066697 Training Loss: 0.0769707435509190 Epoch #41 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0451267257565632
50 | Epoch #42 : Training Accuracy: 0.9706000027060508 Training Loss: 0.0739792502089404 Epoch #42 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0500472080428153
51 | Epoch #43 : Training Accuracy: 0.9706000018119813 Training Loss: 0.0789350662520155 Epoch #43 : Validation Accuracy: 0.9920000016689301 Validation Loss: 0.0429404856637120
52 | Epoch #44 : Training Accuracy: 0.9741000017523765 Training Loss: 0.0713476041809190 Epoch #44 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0466627864399925
53 | Epoch #45 : Training Accuracy: 0.9738000023365021 Training Loss: 0.0719468977907673 Epoch #45 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0370066016912460
54 |
55 | Epoch #46 : Training Accuracy: 0.9752000018954277 Training Loss: 0.0673551406082697 Epoch #46 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0385893591679633
56 | Epoch #47 : Training Accuracy: 0.9728000026941299 Training Loss: 0.0750888072699308 Epoch #47 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0699404336046427
57 | Epoch #48 : Training Accuracy: 0.9743000015616416 Training Loss: 0.0702151430514641 Epoch #48 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0404469204368070
58 | Epoch #49 : Training Accuracy: 0.9749000015854835 Training Loss: 0.0675194455753080 Epoch #49 : Validation Accuracy: 0.9839999973773956 Validation Loss: 0.0445648591499776
59 | Epoch #50 : Training Accuracy: 0.9742000028491020 Training Loss: 0.0665188845875673 Epoch #50 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0552904373966157
60 |
61 | Epoch #51 : Training Accuracy: 0.9754000023007393 Training Loss: 0.0687644357257523 Epoch #51 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0408729906193912
62 | Epoch #52 : Training Accuracy: 0.9790000030398369 Training Loss: 0.0580375378415920 Epoch #52 : Validation Accuracy: 0.9780000090599060 Validation Loss: 0.0445748561294749
63 | Epoch #53 : Training Accuracy: 0.9782000011205674 Training Loss: 0.0622264502709731 Epoch #53 : Validation Accuracy: 0.9920000016689301 Validation Loss: 0.0291687488323078
64 | Epoch #54 : Training Accuracy: 0.9782000026106834 Training Loss: 0.0565982810908463 Epoch #54 : Validation Accuracy: 0.9899999976158143 Validation Loss: 0.0383753745933063
65 | Epoch #55 : Training Accuracy: 0.9801000046730042 Training Loss: 0.0529405353730544 Epoch #55 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0394934778567404
66 |
67 | Epoch #56 : Training Accuracy: 0.9796000039577484 Training Loss: 0.0582114198099589 Epoch #56 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0449982772581279
68 | Epoch #57 : Training Accuracy: 0.9822000032663345 Training Loss: 0.0490381599019747 Epoch #57 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0479111910331994
69 | Epoch #58 : Training Accuracy: 0.9791000017523765 Training Loss: 0.0594347204966471 Epoch #58 : Validation Accuracy: 0.9779999971389770 Validation Loss: 0.0632616044953465
70 | Epoch #59 : Training Accuracy: 0.9798000040650368 Training Loss: 0.0551488592359237 Epoch #59 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0387739067198709
71 | Epoch #60 : Training Accuracy: 0.9831000033020973 Training Loss: 0.0470487348805182 Epoch #60 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0489969763206318
72 |
73 | Epoch #61 : Training Accuracy: 0.9805000016093254 Training Loss: 0.0510961018386297 Epoch #61 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0522213578689843
74 | Epoch #62 : Training Accuracy: 0.9819000053405762 Training Loss: 0.0495715197498794 Epoch #62 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0533796525094658
75 | Epoch #63 : Training Accuracy: 0.9824000042676926 Training Loss: 0.0501820426428458 Epoch #63 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0361208692309447
76 | Epoch #64 : Training Accuracy: 0.9845000037550926 Training Loss: 0.0471821312519023 Epoch #64 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0588833727815654
77 | Epoch #65 : Training Accuracy: 0.9825000056624412 Training Loss: 0.0449041458783904 Epoch #65 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0710094026231673
78 |
79 | Epoch #66 : Training Accuracy: 0.9838000044226647 Training Loss: 0.0417491899845481 Epoch #66 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0433208981121425
80 | Epoch #67 : Training Accuracy: 0.9848000052571296 Training Loss: 0.0416906966769602 Epoch #67 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0313628025236540
81 | Epoch #68 : Training Accuracy: 0.9859000062942505 Training Loss: 0.0402904520812444 Epoch #68 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0255452781217173
82 | Epoch #69 : Training Accuracy: 0.9847000026702881 Training Loss: 0.0424722071376164 Epoch #69 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0404303850780707
83 | Epoch #70 : Training Accuracy: 0.9869000044465065 Training Loss: 0.0374509464000585 Epoch #70 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0404955554055050
84 |
85 | Epoch #71 : Training Accuracy: 0.9870000037550927 Training Loss: 0.0376653568755137 Epoch #71 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0390041451086290
86 | Epoch #72 : Training Accuracy: 0.9850000044703484 Training Loss: 0.0407180555292871 Epoch #72 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0426253762794659
87 | Epoch #73 : Training Accuracy: 0.9887000045180321 Training Loss: 0.0325102375426650 Epoch #73 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0414428820833564
88 | Epoch #74 : Training Accuracy: 0.9869000044465065 Training Loss: 0.0353727932454785 Epoch #74 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0438855690590572
89 | Epoch #75 : Training Accuracy: 0.9878000035881996 Training Loss: 0.0304434674113872 Epoch #75 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0414778782753274
90 |
91 | Epoch #76 : Training Accuracy: 0.9887000039219856 Training Loss: 0.0300581998768030 Epoch #76 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0563116402016021
92 | Epoch #77 : Training Accuracy: 0.9881000047922135 Training Loss: 0.0296703608459211 Epoch #77 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0427415916637983
93 | Epoch #78 : Training Accuracy: 0.9872000050544739 Training Loss: 0.0346893134733546 Epoch #78 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0363863375037909
94 | Epoch #79 : Training Accuracy: 0.9894000056385994 Training Loss: 0.0278784054986318 Epoch #79 : Validation Accuracy: 0.9699999988079071 Validation Loss: 0.0796250255545601
95 | Epoch #80 : Training Accuracy: 0.9847000020742417 Training Loss: 0.0432048758520978 Epoch #80 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0412849887332413
96 |
97 | Epoch #81 : Training Accuracy: 0.9896000027656555 Training Loss: 0.0286565137477010 Epoch #81 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0372105663322145
98 | Epoch #82 : Training Accuracy: 0.9907000038027763 Training Loss: 0.0288251942320494 Epoch #82 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0331958957947791
99 | Epoch #83 : Training Accuracy: 0.9902000036835671 Training Loss: 0.0260242928439402 Epoch #83 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0316077185183531
100 | Epoch #84 : Training Accuracy: 0.9920000046491623 Training Loss: 0.0247610367707966 Epoch #84 : Validation Accuracy: 0.9920000016689301 Validation Loss: 0.0243259209324606
101 | Epoch #85 : Training Accuracy: 0.9905000033974648 Training Loss: 0.0275051622791580 Epoch #85 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0265345206717029
102 |
103 | Epoch #86 : Training Accuracy: 0.9916000038385391 Training Loss: 0.0215018892758962 Epoch #86 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0466624238295481
104 | Epoch #87 : Training Accuracy: 0.9919000032544136 Training Loss: 0.0253409187415673 Epoch #87 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0333163496630732
105 | Epoch #88 : Training Accuracy: 0.9924000036716462 Training Loss: 0.0210927271292894 Epoch #88 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0395854824164417
106 | Epoch #89 : Training Accuracy: 0.9937000036239624 Training Loss: 0.0182395355778863 Epoch #89 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0338544271944556
107 | Epoch #90 : Training Accuracy: 0.9935000038146973 Training Loss: 0.0183411810912366 Epoch #90 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0451632415992208
108 |
109 | Epoch #91 : Training Accuracy: 0.9917000031471253 Training Loss: 0.0243573322371958 Epoch #91 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0312710378551856
110 | Epoch #92 : Training Accuracy: 0.9942000040411949 Training Loss: 0.0169734602655080 Epoch #92 : Validation Accuracy: 0.9839999973773956 Validation Loss: 0.0544748201500624
111 | Epoch #93 : Training Accuracy: 0.9928000032901764 Training Loss: 0.0201956962403347 Epoch #93 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0436402988387272
112 | Epoch #94 : Training Accuracy: 0.9936000025272369 Training Loss: 0.0193175882342621 Epoch #94 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0384610429173335
113 | Epoch #95 : Training Accuracy: 0.9933000037074089 Training Loss: 0.0184563048185737 Epoch #95 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0419746387749910
114 |
115 | Epoch #96 : Training Accuracy: 0.9939000040292740 Training Loss: 0.0183176242476839 Epoch #96 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0528419706679415
116 | Epoch #97 : Training Accuracy: 0.9936000031232833 Training Loss: 0.0175380766594753 Epoch #97 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0262377796228975
117 | Epoch #98 : Training Accuracy: 0.9928000050783158 Training Loss: 0.0196028444419790 Epoch #98 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0343768644845113
118 | Epoch #99 : Training Accuracy: 0.9944000029563904 Training Loss: 0.0173524536476179 Epoch #99 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0341792156854353
119 | Epoch #100: Training Accuracy: 0.9930000028014183 Training Loss: 0.0201466378867553 Epoch #100: Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0276931431784760
120 |
121 |
--------------------------------------------------------------------------------
/text_logs/Fold #3.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.8352999943494797 Training Loss: 0.3597728269547224 Epoch #1 : Validation Accuracy: 0.9239999949932098 Validation Loss: 0.1850421264767647
2 | Epoch #2 : Training Accuracy: 0.8835999935865402 Training Loss: 0.2691586171835661 Epoch #2 : Validation Accuracy: 0.9379999935626984 Validation Loss: 0.1588093563914299
3 | Epoch #3 : Training Accuracy: 0.8934999951720237 Training Loss: 0.2558104514330626 Epoch #3 : Validation Accuracy: 0.9500000059604645 Validation Loss: 0.1464218586683273
4 | Epoch #4 : Training Accuracy: 0.9069999966025353 Training Loss: 0.2230129956826568 Epoch #4 : Validation Accuracy: 0.9480000019073487 Validation Loss: 0.1332592383027077
5 | Epoch #5 : Training Accuracy: 0.9129999962449074 Training Loss: 0.2175152999162674 Epoch #5 : Validation Accuracy: 0.9439999997615814 Validation Loss: 0.1486491672694683
6 |
7 | Epoch #6 : Training Accuracy: 0.9221999976038933 Training Loss: 0.1951785881817341 Epoch #6 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0708017759025097
8 | Epoch #7 : Training Accuracy: 0.9235999968647957 Training Loss: 0.1864837622642517 Epoch #7 : Validation Accuracy: 0.9519999980926513 Validation Loss: 0.1036028128117323
9 | Epoch #8 : Training Accuracy: 0.9333999970555306 Training Loss: 0.1700516129098833 Epoch #8 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0842610400170088
10 | Epoch #9 : Training Accuracy: 0.9299999973177910 Training Loss: 0.1797807620279491 Epoch #9 : Validation Accuracy: 0.9740000069141388 Validation Loss: 0.0924767553806305
11 | Epoch #10 : Training Accuracy: 0.9347999981045723 Training Loss: 0.1617279342748225 Epoch #10 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0699399620294571
12 |
13 | Epoch #11 : Training Accuracy: 0.9362999963760376 Training Loss: 0.1578014527820051 Epoch #11 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0648450993001461
14 | Epoch #12 : Training Accuracy: 0.9373999968171119 Training Loss: 0.1560278052836657 Epoch #12 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0708887362852693
15 | Epoch #13 : Training Accuracy: 0.9406999993324280 Training Loss: 0.1490655842050910 Epoch #13 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0621375598013401
16 | Epoch #14 : Training Accuracy: 0.9453999978303910 Training Loss: 0.1450523810461163 Epoch #14 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0593936381861567
17 | Epoch #15 : Training Accuracy: 0.9452999997138977 Training Loss: 0.1412492691911757 Epoch #15 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0552264436148107
18 |
19 | Epoch #16 : Training Accuracy: 0.9419999980926513 Training Loss: 0.1448267751932144 Epoch #16 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0559376211836934
20 | Epoch #17 : Training Accuracy: 0.9456999984383583 Training Loss: 0.1386496250703931 Epoch #17 : Validation Accuracy: 0.9740000009536743 Validation Loss: 0.0623211745172739
21 | Epoch #18 : Training Accuracy: 0.9480999979376793 Training Loss: 0.1346907217241824 Epoch #18 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0494282931089401
22 | Epoch #19 : Training Accuracy: 0.9514999991655350 Training Loss: 0.1294809381850064 Epoch #19 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0497687142342329
23 | Epoch #20 : Training Accuracy: 0.9484999990463256 Training Loss: 0.1321284728404135 Epoch #20 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0550722451880574
24 |
25 | Epoch #21 : Training Accuracy: 0.9506999978423119 Training Loss: 0.1319359449949115 Epoch #21 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0520752158015966
26 | Epoch #22 : Training Accuracy: 0.9539000004529953 Training Loss: 0.1212311798892915 Epoch #22 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0408409722149372
27 | Epoch #23 : Training Accuracy: 0.9552999982237815 Training Loss: 0.1165581842232496 Epoch #23 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0563227010890841
28 | Epoch #24 : Training Accuracy: 0.9550999969244003 Training Loss: 0.1176361195696518 Epoch #24 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0509101855568588
29 | Epoch #25 : Training Accuracy: 0.9570999991893768 Training Loss: 0.1098535653948784 Epoch #25 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0511342760175467
30 |
31 | Epoch #26 : Training Accuracy: 0.9558999982476234 Training Loss: 0.1153217584220693 Epoch #26 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0537284372374415
32 | Epoch #27 : Training Accuracy: 0.9566999977827072 Training Loss: 0.1097876881202683 Epoch #27 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0401624801568687
33 | Epoch #28 : Training Accuracy: 0.9601999989151955 Training Loss: 0.1034212430519983 Epoch #28 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0409313352778554
34 | Epoch #29 : Training Accuracy: 0.9618000012636184 Training Loss: 0.1003299307450652 Epoch #29 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0678585349116474
35 | Epoch #30 : Training Accuracy: 0.9635000014305115 Training Loss: 0.1013992157671601 Epoch #30 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0456944142468274
36 |
37 | Epoch #31 : Training Accuracy: 0.9628000012040139 Training Loss: 0.1035552813857794 Epoch #31 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0452714071143419
38 | Epoch #32 : Training Accuracy: 0.9615999987721443 Training Loss: 0.1022816550359130 Epoch #32 : Validation Accuracy: 0.9840000152587891 Validation Loss: 0.0383422143757343
39 | Epoch #33 : Training Accuracy: 0.9621999996900559 Training Loss: 0.0959702304052189 Epoch #33 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0478591111488640
40 | Epoch #34 : Training Accuracy: 0.9650000014901161 Training Loss: 0.0953224209928885 Epoch #34 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0440083902329206
41 | Epoch #35 : Training Accuracy: 0.9662000006437301 Training Loss: 0.0884412250923924 Epoch #35 : Validation Accuracy: 0.9780000090599060 Validation Loss: 0.0446532949805260
42 |
43 | Epoch #36 : Training Accuracy: 0.9676000010967255 Training Loss: 0.0871172142727301 Epoch #36 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0312273425515741
44 | Epoch #37 : Training Accuracy: 0.9648000001907349 Training Loss: 0.0933543841633946 Epoch #37 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0345960923004895
45 | Epoch #38 : Training Accuracy: 0.9671000015735626 Training Loss: 0.0849132173322141 Epoch #38 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0318637763150036
46 | Epoch #39 : Training Accuracy: 0.9671000021696091 Training Loss: 0.0871857223426923 Epoch #39 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0407914001494646
47 | Epoch #40 : Training Accuracy: 0.9662000000476837 Training Loss: 0.0874962406046689 Epoch #40 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0566344093531370
48 |
49 | Epoch #41 : Training Accuracy: 0.9677000004053116 Training Loss: 0.0858227969007567 Epoch #41 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0309977280907333
50 | Epoch #42 : Training Accuracy: 0.9697000017762184 Training Loss: 0.0805398223409429 Epoch #42 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0409773084335029
51 | Epoch #43 : Training Accuracy: 0.9685000020265579 Training Loss: 0.0845071459561586 Epoch #43 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0507336093112826
52 | Epoch #44 : Training Accuracy: 0.9703999987244606 Training Loss: 0.0801004664646462 Epoch #44 : Validation Accuracy: 0.9840000152587891 Validation Loss: 0.0540260017849505
53 | Epoch #45 : Training Accuracy: 0.9703000012040138 Training Loss: 0.0768677545269020 Epoch #45 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0265826108399779
54 |
55 | Epoch #46 : Training Accuracy: 0.9713000005483627 Training Loss: 0.0778302288334817 Epoch #46 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0288903750013560
56 | Epoch #47 : Training Accuracy: 0.9707000002264976 Training Loss: 0.0784344433946535 Epoch #47 : Validation Accuracy: 0.9860000133514404 Validation Loss: 0.0450224136002362
57 | Epoch #48 : Training Accuracy: 0.9765000018477440 Training Loss: 0.0674011007812805 Epoch #48 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0402287931181490
58 | Epoch #49 : Training Accuracy: 0.9725000014901162 Training Loss: 0.0748300075577572 Epoch #49 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0312152187805623
59 | Epoch #50 : Training Accuracy: 0.9751000022888183 Training Loss: 0.0725169939431362 Epoch #50 : Validation Accuracy: 0.9860000133514404 Validation Loss: 0.0239442477934062
60 |
61 | Epoch #51 : Training Accuracy: 0.9728000009059906 Training Loss: 0.0728662464383524 Epoch #51 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0443435491994023
62 | Epoch #52 : Training Accuracy: 0.9753000023961067 Training Loss: 0.0683381956559606 Epoch #52 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0371291439048946
63 | Epoch #53 : Training Accuracy: 0.9723000016808510 Training Loss: 0.0748043535160832 Epoch #53 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0326893148710951
64 | Epoch #54 : Training Accuracy: 0.9760000038146973 Training Loss: 0.0685794359492138 Epoch #54 : Validation Accuracy: 0.9860000133514404 Validation Loss: 0.0413208041340113
65 | Epoch #55 : Training Accuracy: 0.9769000044465065 Training Loss: 0.0628170915262308 Epoch #55 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0443244748748839
66 |
67 | Epoch #56 : Training Accuracy: 0.9772000023722649 Training Loss: 0.0669838187366258 Epoch #56 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0656320518814027
68 | Epoch #57 : Training Accuracy: 0.9737000018358231 Training Loss: 0.0699668835289776 Epoch #57 : Validation Accuracy: 0.9840000152587891 Validation Loss: 0.0368119009770453
69 | Epoch #58 : Training Accuracy: 0.9782000026106834 Training Loss: 0.0606306457531173 Epoch #58 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0232292409986258
70 | Epoch #59 : Training Accuracy: 0.9755000039935112 Training Loss: 0.0628793990891427 Epoch #59 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0258421548176557
71 | Epoch #60 : Training Accuracy: 0.9804000031948089 Training Loss: 0.0578567521274090 Epoch #60 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0489603587426245
72 |
73 | Epoch #61 : Training Accuracy: 0.9795000034570694 Training Loss: 0.0567787436232902 Epoch #61 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0452840296784416
74 | Epoch #62 : Training Accuracy: 0.9793000030517578 Training Loss: 0.0553169689280912 Epoch #62 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0332011532271281
75 | Epoch #63 : Training Accuracy: 0.9831000015139579 Training Loss: 0.0464798371057259 Epoch #63 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0272752538323402
76 | Epoch #64 : Training Accuracy: 0.9802000039815902 Training Loss: 0.0529984234983567 Epoch #64 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0336448682006448
77 | Epoch #65 : Training Accuracy: 0.9812000036239624 Training Loss: 0.0487515587772941 Epoch #65 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0316059887874871
78 |
79 | Epoch #66 : Training Accuracy: 0.9826000043749810 Training Loss: 0.0491024365584599 Epoch #66 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0358087910106406
80 | Epoch #67 : Training Accuracy: 0.9843000036478042 Training Loss: 0.0449399773747427 Epoch #67 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0559409944107756
81 | Epoch #68 : Training Accuracy: 0.9858000034093857 Training Loss: 0.0404434504063102 Epoch #68 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0325926438206807
82 | Epoch #69 : Training Accuracy: 0.9826000043749810 Training Loss: 0.0481353063229471 Epoch #69 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0236850580608007
83 | Epoch #70 : Training Accuracy: 0.9848000034689903 Training Loss: 0.0417548089707270 Epoch #70 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0357417444465682
84 |
85 | Epoch #71 : Training Accuracy: 0.9847000044584274 Training Loss: 0.0432391757352161 Epoch #71 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0264514201146085
86 | Epoch #72 : Training Accuracy: 0.9869000041484832 Training Loss: 0.0334732490545139 Epoch #72 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0229680386255495
87 | Epoch #73 : Training Accuracy: 0.9861000043153763 Training Loss: 0.0410316120268544 Epoch #73 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0247557412832975
88 | Epoch #74 : Training Accuracy: 0.9873000046610833 Training Loss: 0.0342245431742049 Epoch #74 : Validation Accuracy: 0.9920000016689301 Validation Loss: 0.0245109820738435
89 | Epoch #75 : Training Accuracy: 0.9866000029444695 Training Loss: 0.0400220780790551 Epoch #75 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0293398922542110
90 |
91 | Epoch #76 : Training Accuracy: 0.9856000041961670 Training Loss: 0.0391627953157877 Epoch #76 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0248473623709288
92 | Epoch #77 : Training Accuracy: 0.9896000024676322 Training Loss: 0.0315564171504229 Epoch #77 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0206180173438042
93 | Epoch #78 : Training Accuracy: 0.9880000045895576 Training Loss: 0.0343068185471930 Epoch #78 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0206412563100457
94 | Epoch #79 : Training Accuracy: 0.9886000052094459 Training Loss: 0.0309554681176087 Epoch #79 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0270292385714129
95 | Epoch #80 : Training Accuracy: 0.9902000027894974 Training Loss: 0.0283469849333051 Epoch #80 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0292519221315160
96 |
97 | Epoch #81 : Training Accuracy: 0.9887000033259392 Training Loss: 0.0321222085066256 Epoch #81 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0482710040640086
98 | Epoch #82 : Training Accuracy: 0.9897000053524971 Training Loss: 0.0293441877371515 Epoch #82 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0309363942593336
99 | Epoch #83 : Training Accuracy: 0.9867000049352646 Training Loss: 0.0359780431905529 Epoch #83 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0189103230717592
100 | Epoch #84 : Training Accuracy: 0.9903000029921531 Training Loss: 0.0280761976717622 Epoch #84 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0200597876973916
101 | Epoch #85 : Training Accuracy: 0.9897000023722649 Training Loss: 0.0295748186263518 Epoch #85 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0160525025101379
102 |
103 | Epoch #86 : Training Accuracy: 0.9933000037074089 Training Loss: 0.0210700571693451 Epoch #86 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0260999039397575
104 | Epoch #87 : Training Accuracy: 0.9905000019073487 Training Loss: 0.0285931638277543 Epoch #87 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0244514281279407
105 | Epoch #88 : Training Accuracy: 0.9919000050425529 Training Loss: 0.0221492672637396 Epoch #88 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0293563945044298
106 | Epoch #89 : Training Accuracy: 0.9896000039577484 Training Loss: 0.0267198955136701 Epoch #89 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0290434587106574
107 | Epoch #90 : Training Accuracy: 0.9917000040411950 Training Loss: 0.0231341984420578 Epoch #90 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0258852312515955
108 |
109 | Epoch #91 : Training Accuracy: 0.9908000040054321 Training Loss: 0.0252639412348799 Epoch #91 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0157011315226555
110 | Epoch #92 : Training Accuracy: 0.9920000028610230 Training Loss: 0.0229325211158357 Epoch #92 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0323811214271700
111 | Epoch #93 : Training Accuracy: 0.9929000046849251 Training Loss: 0.0211080262425821 Epoch #93 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0187956978217699
112 | Epoch #94 : Training Accuracy: 0.9932000049948693 Training Loss: 0.0189120847154845 Epoch #94 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0232244472252205
113 | Epoch #95 : Training Accuracy: 0.9931000044941902 Training Loss: 0.0208351240326010 Epoch #95 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0129055600744323
114 |
115 | Epoch #96 : Training Accuracy: 0.9929000043869018 Training Loss: 0.0207636285603803 Epoch #96 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0081345882266760
116 | Epoch #97 : Training Accuracy: 0.9931000036001205 Training Loss: 0.0185157138424256 Epoch #97 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0268898954585893
117 | Epoch #98 : Training Accuracy: 0.9927000048756599 Training Loss: 0.0218547601823957 Epoch #98 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0302394918224309
118 | Epoch #99 : Training Accuracy: 0.9942000037431717 Training Loss: 0.0178546394377918 Epoch #99 : Validation Accuracy: 0.9980000019073486 Validation Loss: 0.0030537315371475
119 | Epoch #100: Training Accuracy: 0.9936000037193299 Training Loss: 0.0190499831794295 Epoch #100: Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0347858351931791
120 |
121 |
--------------------------------------------------------------------------------
/text_logs/Fold #4.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.8424999934434890 Training Loss: 0.3580822536349297 Epoch #1 : Validation Accuracy: 0.8639999926090240 Validation Loss: 0.3389237314462662
2 | Epoch #2 : Training Accuracy: 0.8852999958395958 Training Loss: 0.2697626265883446 Epoch #2 : Validation Accuracy: 0.9359999954700470 Validation Loss: 0.1623121440410614
3 | Epoch #3 : Training Accuracy: 0.9058999946713447 Training Loss: 0.2316254362836480 Epoch #3 : Validation Accuracy: 0.9419999897480011 Validation Loss: 0.1337722711265087
4 | Epoch #4 : Training Accuracy: 0.9169999966025353 Training Loss: 0.2049438385479152 Epoch #4 : Validation Accuracy: 0.9560000061988830 Validation Loss: 0.1213390503078699
5 | Epoch #5 : Training Accuracy: 0.9254999977350234 Training Loss: 0.1801296145096421 Epoch #5 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0911103371530771
6 |
7 | Epoch #6 : Training Accuracy: 0.9227999970316887 Training Loss: 0.1912839028611779 Epoch #6 : Validation Accuracy: 0.9579999983310700 Validation Loss: 0.1118887040764093
8 | Epoch #7 : Training Accuracy: 0.9306999966502190 Training Loss: 0.1746234021708369 Epoch #7 : Validation Accuracy: 0.9419999957084656 Validation Loss: 0.1457474812865257
9 | Epoch #8 : Training Accuracy: 0.9319999989867210 Training Loss: 0.1675252850167453 Epoch #8 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0562430610880256
10 | Epoch #9 : Training Accuracy: 0.9340999978780746 Training Loss: 0.1617983528971672 Epoch #9 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0817503334954381
11 | Epoch #10 : Training Accuracy: 0.9369999963045120 Training Loss: 0.1503930328506976 Epoch #10 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0700892524793744
12 |
13 | Epoch #11 : Training Accuracy: 0.9405999985337258 Training Loss: 0.1519799489900470 Epoch #11 : Validation Accuracy: 0.9579999983310700 Validation Loss: 0.0959833873435855
14 | Epoch #12 : Training Accuracy: 0.9407999968528747 Training Loss: 0.1504930309765041 Epoch #12 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0649477157741785
15 | Epoch #13 : Training Accuracy: 0.9410999971628189 Training Loss: 0.1510300399735570 Epoch #13 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0656560624018312
16 | Epoch #14 : Training Accuracy: 0.9405999994277954 Training Loss: 0.1481082050222904 Epoch #14 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0571262918412685
17 | Epoch #15 : Training Accuracy: 0.9527999964356423 Training Loss: 0.1239499008888379 Epoch #15 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0634904067963362
18 |
19 | Epoch #16 : Training Accuracy: 0.9431999984383583 Training Loss: 0.1483675587363541 Epoch #16 : Validation Accuracy: 0.9639999985694885 Validation Loss: 0.0754543758928776
20 | Epoch #17 : Training Accuracy: 0.9549999991059304 Training Loss: 0.1195007359515876 Epoch #17 : Validation Accuracy: 0.9720000028610229 Validation Loss: 0.0789141278713942
21 | Epoch #18 : Training Accuracy: 0.9534999963641166 Training Loss: 0.1232985973916948 Epoch #18 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0694014089182019
22 | Epoch #19 : Training Accuracy: 0.9462999993562698 Training Loss: 0.1323171244189143 Epoch #19 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0588667722418904
23 | Epoch #20 : Training Accuracy: 0.9513000008463860 Training Loss: 0.1262638420565054 Epoch #20 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0936315798200667
24 |
25 | Epoch #21 : Training Accuracy: 0.9548999989032745 Training Loss: 0.1192240348644555 Epoch #21 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0573790155351162
26 | Epoch #22 : Training Accuracy: 0.9580999982357025 Training Loss: 0.1157857627328485 Epoch #22 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0605043262243271
27 | Epoch #23 : Training Accuracy: 0.9561999997496605 Training Loss: 0.1152692587208003 Epoch #23 : Validation Accuracy: 0.9659999907016754 Validation Loss: 0.0832781814038754
28 | Epoch #24 : Training Accuracy: 0.9576999995112420 Training Loss: 0.1141994381789118 Epoch #24 : Validation Accuracy: 0.9760000050067902 Validation Loss: 0.0709134636446834
29 | Epoch #25 : Training Accuracy: 0.9577999967336654 Training Loss: 0.1136278508650139 Epoch #25 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0730192556977272
30 |
31 | Epoch #26 : Training Accuracy: 0.9618000006675720 Training Loss: 0.1031541480310261 Epoch #26 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0471153302118182
32 | Epoch #27 : Training Accuracy: 0.9606000000238418 Training Loss: 0.1065937770577148 Epoch #27 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0535087043419480
33 | Epoch #28 : Training Accuracy: 0.9602000004053116 Training Loss: 0.1070092952530831 Epoch #28 : Validation Accuracy: 0.9699999988079071 Validation Loss: 0.0598977616056800
34 | Epoch #29 : Training Accuracy: 0.9607000002264976 Training Loss: 0.1058833899791352 Epoch #29 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0554835693910718
35 | Epoch #30 : Training Accuracy: 0.9609999999403953 Training Loss: 0.1072220261627808 Epoch #30 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0495624930132180
36 |
37 | Epoch #31 : Training Accuracy: 0.9629000002145767 Training Loss: 0.0990340105257928 Epoch #31 : Validation Accuracy: 0.9859999954700470 Validation Loss: 0.0494061766192317
38 | Epoch #32 : Training Accuracy: 0.9634999999403954 Training Loss: 0.1001733991643414 Epoch #32 : Validation Accuracy: 0.9660000026226043 Validation Loss: 0.0864906382746995
39 | Epoch #33 : Training Accuracy: 0.9618999999761582 Training Loss: 0.1018095000460744 Epoch #33 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0547397345304489
40 | Epoch #34 : Training Accuracy: 0.9631000009179115 Training Loss: 0.0974017911404371 Epoch #34 : Validation Accuracy: 0.9740000009536743 Validation Loss: 0.0676983635406941
41 | Epoch #35 : Training Accuracy: 0.9668000003695488 Training Loss: 0.0917551851319149 Epoch #35 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0333134497515857
42 |
43 | Epoch #36 : Training Accuracy: 0.9684000003337860 Training Loss: 0.0873335647326894 Epoch #36 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0420154138468206
44 | Epoch #37 : Training Accuracy: 0.9673000004887581 Training Loss: 0.0866099506593309 Epoch #37 : Validation Accuracy: 0.9780000030994416 Validation Loss: 0.0542006349191070
45 | Epoch #38 : Training Accuracy: 0.9698000001907349 Training Loss: 0.0837270838825498 Epoch #38 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0616611411795020
46 | Epoch #39 : Training Accuracy: 0.9686000001430511 Training Loss: 0.0827610100945458 Epoch #39 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0469195721670985
47 | Epoch #40 : Training Accuracy: 0.9691999992728233 Training Loss: 0.0836244497192092 Epoch #40 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0553318489342928
48 |
49 | Epoch #41 : Training Accuracy: 0.9691999998688697 Training Loss: 0.0825524972728454 Epoch #41 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0316314341500401
50 | Epoch #42 : Training Accuracy: 0.9717000016570091 Training Loss: 0.0782574728992768 Epoch #42 : Validation Accuracy: 0.9879999995231629 Validation Loss: 0.0465151024982333
51 | Epoch #43 : Training Accuracy: 0.9715000018477440 Training Loss: 0.0777925341110677 Epoch #43 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0425605343654752
52 | Epoch #44 : Training Accuracy: 0.9697000002861023 Training Loss: 0.0837338871532120 Epoch #44 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0402711850591004
53 | Epoch #45 : Training Accuracy: 0.9755000007152558 Training Loss: 0.0715434503555298 Epoch #45 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0567178698256612
54 |
55 | Epoch #46 : Training Accuracy: 0.9730000013113022 Training Loss: 0.0757238205196336 Epoch #46 : Validation Accuracy: 0.9700000047683716 Validation Loss: 0.0655078252777457
56 | Epoch #47 : Training Accuracy: 0.9743000027537346 Training Loss: 0.0680064837285317 Epoch #47 : Validation Accuracy: 0.9840000152587891 Validation Loss: 0.0404758518096060
57 | Epoch #48 : Training Accuracy: 0.9709000024199486 Training Loss: 0.0786424937401898 Epoch #48 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0513552929740399
58 | Epoch #49 : Training Accuracy: 0.9699000009894371 Training Loss: 0.0864031966752373 Epoch #49 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0599827933125198
59 | Epoch #50 : Training Accuracy: 0.9748000025749206 Training Loss: 0.0703880244703032 Epoch #50 : Validation Accuracy: 0.9800000011920929 Validation Loss: 0.0559257298707962
60 |
61 | Epoch #51 : Training Accuracy: 0.9744000014662743 Training Loss: 0.0696646601636894 Epoch #51 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0462616333737969
62 | Epoch #52 : Training Accuracy: 0.9767000016570091 Training Loss: 0.0636705085053109 Epoch #52 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0477302970364690
63 | Epoch #53 : Training Accuracy: 0.9788000023365021 Training Loss: 0.0648807729757391 Epoch #53 : Validation Accuracy: 0.9719999969005585 Validation Loss: 0.0682185814250261
64 | Epoch #54 : Training Accuracy: 0.9766000005602836 Training Loss: 0.0647969068912789 Epoch #54 : Validation Accuracy: 0.9759999990463257 Validation Loss: 0.0646179622970521
65 | Epoch #55 : Training Accuracy: 0.9763000023365020 Training Loss: 0.0693366665532812 Epoch #55 : Validation Accuracy: 0.9880000114440918 Validation Loss: 0.0406436706427485
66 |
67 | Epoch #56 : Training Accuracy: 0.9777000030875206 Training Loss: 0.0670207538898103 Epoch #56 : Validation Accuracy: 0.9800000131130219 Validation Loss: 0.0701870165765286
68 | Epoch #57 : Training Accuracy: 0.9789000037312507 Training Loss: 0.0595271534915082 Epoch #57 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0531105463393033
69 | Epoch #58 : Training Accuracy: 0.9812000024318696 Training Loss: 0.0572040842170827 Epoch #58 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0591480346396565
70 | Epoch #59 : Training Accuracy: 0.9786000019311905 Training Loss: 0.0560454506799579 Epoch #59 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0495727616362274
71 | Epoch #60 : Training Accuracy: 0.9794000023603440 Training Loss: 0.0602157776243985 Epoch #60 : Validation Accuracy: 0.9819999992847442 Validation Loss: 0.0450742463581264
72 |
73 | Epoch #61 : Training Accuracy: 0.9819000032544136 Training Loss: 0.0526902089733630 Epoch #61 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0442127776797861
74 | Epoch #62 : Training Accuracy: 0.9830000045895576 Training Loss: 0.0490059986111009 Epoch #62 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0398948275484145
75 | Epoch #63 : Training Accuracy: 0.9838000038266181 Training Loss: 0.0424962192628300 Epoch #63 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0461467024870217
76 | Epoch #64 : Training Accuracy: 0.9825000011920929 Training Loss: 0.0501989299524575 Epoch #64 : Validation Accuracy: 0.9860000133514404 Validation Loss: 0.0418635156005621
77 | Epoch #65 : Training Accuracy: 0.9857000035047531 Training Loss: 0.0431350652553374 Epoch #65 : Validation Accuracy: 0.9800000071525574 Validation Loss: 0.0447957545518875
78 |
79 | Epoch #66 : Training Accuracy: 0.9845000037550926 Training Loss: 0.0442566588160116 Epoch #66 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0287369777448475
80 | Epoch #67 : Training Accuracy: 0.9856000044941902 Training Loss: 0.0403419386851601 Epoch #67 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0247737230733037
81 | Epoch #68 : Training Accuracy: 0.9839000031352043 Training Loss: 0.0463244139752351 Epoch #68 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0352761024143547
82 | Epoch #69 : Training Accuracy: 0.9863000047206879 Training Loss: 0.0362288833915954 Epoch #69 : Validation Accuracy: 0.9840000152587891 Validation Loss: 0.0586751458933577
83 | Epoch #70 : Training Accuracy: 0.9877000048756599 Training Loss: 0.0327194115023303 Epoch #70 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0311359338462353
84 |
85 | Epoch #71 : Training Accuracy: 0.9884000048041344 Training Loss: 0.0339473636449839 Epoch #71 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0272537598386407
86 | Epoch #72 : Training Accuracy: 0.9869000044465065 Training Loss: 0.0349691358701966 Epoch #72 : Validation Accuracy: 0.9860000014305115 Validation Loss: 0.0392754380591214
87 | Epoch #73 : Training Accuracy: 0.9891000038385391 Training Loss: 0.0299211078160442 Epoch #73 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0240280221682042
88 | Epoch #74 : Training Accuracy: 0.9883000048995018 Training Loss: 0.0349739155035058 Epoch #74 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0325301674893126
89 | Epoch #75 : Training Accuracy: 0.9893000042438507 Training Loss: 0.0292415396547585 Epoch #75 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0392434185370803
90 |
91 | Epoch #76 : Training Accuracy: 0.9884000027179718 Training Loss: 0.0365160326202749 Epoch #76 : Validation Accuracy: 0.9900000095367432 Validation Loss: 0.0417935417732224
92 | Epoch #77 : Training Accuracy: 0.9895000037550926 Training Loss: 0.0258957960654516 Epoch #77 : Validation Accuracy: 0.9840000033378601 Validation Loss: 0.0436034182785079
93 | Epoch #78 : Training Accuracy: 0.9913000035285949 Training Loss: 0.0250676935201045 Epoch #78 : Validation Accuracy: 0.9860000133514404 Validation Loss: 0.0480958801461384
94 | Epoch #79 : Training Accuracy: 0.9906000050902367 Training Loss: 0.0230151077714982 Epoch #79 : Validation Accuracy: 0.9820000052452087 Validation Loss: 0.0637319640954956
95 | Epoch #80 : Training Accuracy: 0.9918000051379203 Training Loss: 0.0238404133185395 Epoch #80 : Validation Accuracy: 0.9920000016689301 Validation Loss: 0.0364320994704030
96 |
97 | Epoch #81 : Training Accuracy: 0.9922000032663345 Training Loss: 0.0230139273111126 Epoch #81 : Validation Accuracy: 0.9960000038146972 Validation Loss: 0.0333003735286184
98 | Epoch #82 : Training Accuracy: 0.9927000036835670 Training Loss: 0.0243011647496314 Epoch #82 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0352217121049762
99 | Epoch #83 : Training Accuracy: 0.9916000032424926 Training Loss: 0.0232377172985071 Epoch #83 : Validation Accuracy: 0.9840000092983245 Validation Loss: 0.0388013981282711
100 | Epoch #84 : Training Accuracy: 0.9913000026345253 Training Loss: 0.0264734186505666 Epoch #84 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0460441948613152
101 | Epoch #85 : Training Accuracy: 0.9930000030994415 Training Loss: 0.0199347777344519 Epoch #85 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0368684704182669
102 |
103 | Epoch #86 : Training Accuracy: 0.9942000040411949 Training Loss: 0.0192068636387921 Epoch #86 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0325300853233784
104 | Epoch #87 : Training Accuracy: 0.9938000041246414 Training Loss: 0.0194704691990046 Epoch #87 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0302674746606499
105 | Epoch #88 : Training Accuracy: 0.9928000032901764 Training Loss: 0.0213153941737983 Epoch #88 : Validation Accuracy: 0.9920000016689301 Validation Loss: 0.0294295100728050
106 | Epoch #89 : Training Accuracy: 0.9946000030636788 Training Loss: 0.0162116544217497 Epoch #89 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0421834139153361
107 | Epoch #90 : Training Accuracy: 0.9931000030040741 Training Loss: 0.0203746165479788 Epoch #90 : Validation Accuracy: 0.9820000112056733 Validation Loss: 0.0667390892282128
108 |
109 | Epoch #91 : Training Accuracy: 0.9919000035524368 Training Loss: 0.0229749091059784 Epoch #91 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0344281029072590
110 | Epoch #92 : Training Accuracy: 0.9937000036239624 Training Loss: 0.0197565930444398 Epoch #92 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0355358158005401
111 | Epoch #93 : Training Accuracy: 0.9924000033736229 Training Loss: 0.0188076618040213 Epoch #93 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0342665883712471
112 | Epoch #94 : Training Accuracy: 0.9941000032424927 Training Loss: 0.0172537443979400 Epoch #94 : Validation Accuracy: 0.9860000073909759 Validation Loss: 0.0364424752071500
113 | Epoch #95 : Training Accuracy: 0.9942000040411949 Training Loss: 0.0152574921698033 Epoch #95 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0327140967361629
114 |
115 | Epoch #96 : Training Accuracy: 0.9951000034809112 Training Loss: 0.0152295741159469 Epoch #96 : Validation Accuracy: 0.9900000035762787 Validation Loss: 0.0368009215453640
116 | Epoch #97 : Training Accuracy: 0.9941000032424927 Training Loss: 0.0162268329060316 Epoch #97 : Validation Accuracy: 0.9940000057220459 Validation Loss: 0.0380749557865784
117 | Epoch #98 : Training Accuracy: 0.9945000037550926 Training Loss: 0.0156715521981823 Epoch #98 : Validation Accuracy: 0.9880000054836273 Validation Loss: 0.0439527016598731
118 | Epoch #99 : Training Accuracy: 0.9948000031709671 Training Loss: 0.0141241044225899 Epoch #99 : Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0364079340128228
119 | Epoch #100: Training Accuracy: 0.9956000030040741 Training Loss: 0.0139061988109097 Epoch #100: Validation Accuracy: 0.9920000076293946 Validation Loss: 0.0241306345167686
120 |
121 |
--------------------------------------------------------------------------------
/text_logs/average.txt:
--------------------------------------------------------------------------------
1 | Accuracy: 0.9888000023365021
2 | Loss: 0.0329321003850782
--------------------------------------------------------------------------------
/text_logs/pretrained_attempt_4.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.7400000034272671 Training Loss: 4.1613011825084687 Epoch #1 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
2 | Epoch #2 : Training Accuracy: 0.7410000033676625 Training Loss: 4.1745867310464382 Epoch #2 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
3 | Epoch #3 : Training Accuracy: 0.7410000017285348 Training Loss: 4.1745867341756817 Epoch #3 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
4 | Epoch #4 : Training Accuracy: 0.7410000007599592 Training Loss: 4.1745867374539376 Epoch #4 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
5 | Epoch #5 : Training Accuracy: 0.7410000030696392 Training Loss: 4.1745867299073103 Epoch #5 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
6 |
7 | Epoch #6 : Training Accuracy: 0.7410000022500753 Training Loss: 4.1745867323875423 Epoch #6 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
8 | Epoch #7 : Training Accuracy: 0.7410000041127205 Training Loss: 4.1745867337286473 Epoch #7 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
9 | Epoch #8 : Training Accuracy: 0.7410000023990869 Training Loss: 4.1745867377519605 Epoch #8 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
10 | Epoch #9 : Training Accuracy: 0.7410000042617321 Training Loss: 4.1745867313444611 Epoch #9 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
11 | Epoch #10 : Training Accuracy: 0.7410000041872263 Training Loss: 4.1745867355167867 Epoch #10 : Validation Accuracy: 0.7680000066757202 Validation Loss: 3.7393981575965882
12 |
13 |
--------------------------------------------------------------------------------
/text_logs/pretrained_attempt_5.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.9300999945402145 Training Loss: 0.2189432299145847 Epoch #1 : Validation Accuracy: 0.9559999972581863 Validation Loss: 0.1330457533709705
2 | Epoch #2 : Training Accuracy: 0.9637999935448169 Training Loss: 0.1090300397585088 Epoch #2 : Validation Accuracy: 0.9719999909400940 Validation Loss: 0.0851188167463988
3 | Epoch #3 : Training Accuracy: 0.9691999930143357 Training Loss: 0.0911159460252384 Epoch #3 : Validation Accuracy: 0.9739999890327453 Validation Loss: 0.0731472212355584
4 | Epoch #4 : Training Accuracy: 0.9723999951779843 Training Loss: 0.0764046151351067 Epoch #4 : Validation Accuracy: 0.9839999914169312 Validation Loss: 0.0551115369074978
5 | Epoch #5 : Training Accuracy: 0.9752999937534332 Training Loss: 0.0686876204905275 Epoch #5 : Validation Accuracy: 0.9839999943971633 Validation Loss: 0.0559019792592153
6 |
7 | Epoch #6 : Training Accuracy: 0.9792999939620495 Training Loss: 0.0643184102662781 Epoch #6 : Validation Accuracy: 0.9839999943971633 Validation Loss: 0.0524996923631988
8 | Epoch #7 : Training Accuracy: 0.9832999950647354 Training Loss: 0.0469996160520532 Epoch #7 : Validation Accuracy: 0.9839999943971633 Validation Loss: 0.0460747845645528
9 | Epoch #8 : Training Accuracy: 0.9832999953627586 Training Loss: 0.0496642432054068 Epoch #8 : Validation Accuracy: 0.9879999935626984 Validation Loss: 0.0357951161364326
10 | Epoch #9 : Training Accuracy: 0.9833999960124493 Training Loss: 0.0470466644054977 Epoch #9 : Validation Accuracy: 0.9759999930858612 Validation Loss: 0.0778839007951319
11 | Epoch #10 : Training Accuracy: 0.9852999953925610 Training Loss: 0.0434237759937969 Epoch #10 : Validation Accuracy: 0.9859999924898147 Validation Loss: 0.0394661788945086
12 |
13 |
--------------------------------------------------------------------------------
/text_logs/pretrained_attempt_6.txt:
--------------------------------------------------------------------------------
1 | Epoch #1 : Training Accuracy: 0.8201999964565039 Training Loss: 0.5085316609404981 Epoch #1 : Validation Accuracy: 0.8939999997615814 Validation Loss: 0.3380773624405265
2 | Epoch #2 : Training Accuracy: 0.9072999975085259 Training Loss: 0.2813822996604722 Epoch #2 : Validation Accuracy: 0.9119999915361404 Validation Loss: 0.2321199255064130
3 | Epoch #3 : Training Accuracy: 0.9251999954879284 Training Loss: 0.2248009023442864 Epoch #3 : Validation Accuracy: 0.9279999911785126 Validation Loss: 0.1734464917331934
4 | Epoch #4 : Training Accuracy: 0.9331999947130680 Training Loss: 0.1909365411370527 Epoch #4 : Validation Accuracy: 0.9339999943971634 Validation Loss: 0.1546268958598375
5 | Epoch #5 : Training Accuracy: 0.9359999965131283 Training Loss: 0.1870397603663150 Epoch #5 : Validation Accuracy: 0.9419999927282333 Validation Loss: 0.1327786155045033
6 |
7 | Epoch #6 : Training Accuracy: 0.9435999931395054 Training Loss: 0.1682725471630692 Epoch #6 : Validation Accuracy: 0.9419999957084656 Validation Loss: 0.1323176329955459
8 | Epoch #7 : Training Accuracy: 0.9459999951720238 Training Loss: 0.1521812719292939 Epoch #7 : Validation Accuracy: 0.9499999940395355 Validation Loss: 0.1151729075238109
9 | Epoch #8 : Training Accuracy: 0.9508999952673912 Training Loss: 0.1428033523872728 Epoch #8 : Validation Accuracy: 0.9359999924898148 Validation Loss: 0.1296988754067570
10 | Epoch #9 : Training Accuracy: 0.9521999940276146 Training Loss: 0.1377197061630432 Epoch #9 : Validation Accuracy: 0.9539999932050705 Validation Loss: 0.1044826167169958
11 | Epoch #10 : Training Accuracy: 0.9537999959290028 Training Loss: 0.1315177086688345 Epoch #10 : Validation Accuracy: 0.9479999959468841 Validation Loss: 0.1095111931208521
12 |
13 | Epoch #11 : Training Accuracy: 0.9541999949514866 Training Loss: 0.1387337204581127 Epoch #11 : Validation Accuracy: 0.9579999923706055 Validation Loss: 0.0979819742497057
14 | Epoch #12 : Training Accuracy: 0.9589999948441982 Training Loss: 0.1160405495041050 Epoch #12 : Validation Accuracy: 0.9539999961853027 Validation Loss: 0.1003472312353551
15 | Epoch #13 : Training Accuracy: 0.9613999947905540 Training Loss: 0.1121507556457073 Epoch #13 : Validation Accuracy: 0.9519999951124192 Validation Loss: 0.1065435110125691
16 | Epoch #14 : Training Accuracy: 0.9587999947369099 Training Loss: 0.1157383266440593 Epoch #14 : Validation Accuracy: 0.9619999915361405 Validation Loss: 0.0843337249476463
17 | Epoch #15 : Training Accuracy: 0.9642999941110610 Training Loss: 0.1076965553482296 Epoch #15 : Validation Accuracy: 0.9659999936819077 Validation Loss: 0.0750258984975517
18 |
19 | Epoch #16 : Training Accuracy: 0.9614999929070472 Training Loss: 0.1097420934238471 Epoch #16 : Validation Accuracy: 0.9699999928474426 Validation Loss: 0.0702656534733251
20 | Epoch #17 : Training Accuracy: 0.9630999945104122 Training Loss: 0.1039647225418594 Epoch #17 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0717254267306998
21 | Epoch #18 : Training Accuracy: 0.9652999946475029 Training Loss: 0.1003979792824248 Epoch #18 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0710466702934354
22 | Epoch #19 : Training Accuracy: 0.9622999948263168 Training Loss: 0.1070729635175667 Epoch #19 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0712070007342845
23 | Epoch #20 : Training Accuracy: 0.9671999941766262 Training Loss: 0.0951312798380968 Epoch #20 : Validation Accuracy: 0.9679999947547913 Validation Loss: 0.0703828880330548
24 |
25 | Epoch #21 : Training Accuracy: 0.9652999930083752 Training Loss: 0.0923670256926562 Epoch #21 : Validation Accuracy: 0.9699999958276748 Validation Loss: 0.0641946265473962
26 | Epoch #22 : Training Accuracy: 0.9658999948203564 Training Loss: 0.0959936532404390 Epoch #22 : Validation Accuracy: 0.9719999939203262 Validation Loss: 0.0578517174697481
27 | Epoch #23 : Training Accuracy: 0.9683999951183796 Training Loss: 0.0870969805851928 Epoch #23 : Validation Accuracy: 0.9699999958276748 Validation Loss: 0.0628653395688161
28 | Epoch #24 : Training Accuracy: 0.9666999934613705 Training Loss: 0.0969697433841065 Epoch #24 : Validation Accuracy: 0.9699999958276748 Validation Loss: 0.0601703491993248
29 | Epoch #25 : Training Accuracy: 0.9688999946415424 Training Loss: 0.0873338293447159 Epoch #25 : Validation Accuracy: 0.9699999958276748 Validation Loss: 0.0605756148230284
30 |
31 | Epoch #26 : Training Accuracy: 0.9681999948620796 Training Loss: 0.0909807337327220 Epoch #26 : Validation Accuracy: 0.9699999958276748 Validation Loss: 0.0579638766939752
32 | Epoch #27 : Training Accuracy: 0.9700999943912030 Training Loss: 0.0799209552741377 Epoch #27 : Validation Accuracy: 0.9699999958276748 Validation Loss: 0.0608987216372043
33 | Epoch #28 : Training Accuracy: 0.9710999934375286 Training Loss: 0.0807298706208530 Epoch #28 : Validation Accuracy: 0.9739999920129776 Validation Loss: 0.0552417407277972
34 | Epoch #29 : Training Accuracy: 0.9736999934911728 Training Loss: 0.0760166780292639 Epoch #29 : Validation Accuracy: 0.9659999936819077 Validation Loss: 0.0637344501796178
35 | Epoch #30 : Training Accuracy: 0.9731999933719635 Training Loss: 0.0779305502076750 Epoch #30 : Validation Accuracy: 0.9699999958276748 Validation Loss: 0.0574958222452551
36 |
37 |
--------------------------------------------------------------------------------