Last active
July 6, 2019 10:42
-
-
Save ZER-0-NE/1d5d36378197362c98fe5c460d7739b8 to your computer and use it in GitHub Desktop.
Img Dim: 150, 250
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The val acc. does not increase beyond 95% and the training acc. somewhat seems to get lower gradually. Without reducing | |
// the lr there is a possibility to converge. | |
train_data_path = 'detection_data_1/train/' | |
validation_data_path = 'detection_data_1/val/' | |
test_data_path = 'detection_data_1/test/' | |
#Parametres | |
img_width, img_height = 150, 250 | |
nb_train_samples = sum(len(files) for _, _, files in os.walk(train_data_path)) | |
nb_validation_samples = sum(len(files) for _, _, files in os.walk(validation_data_path)) | |
# print(nb_train_samples) | |
epochs = 100 | |
batch_size = 128 | |
if K.image_data_format() == 'channels_first': | |
input_shape = (3, img_width, img_height) | |
else: | |
input_shape = (img_width, img_height, 3) | |
# K.set_image_dim_ordering('th') | |
model = Sequential() | |
model.add(Conv2D(64, (7, 7), padding = 'same', input_shape=input_shape)) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(pool_size=(2, 2))) | |
model.add(Dropout(0.5)) | |
model.add(Conv2D(64, (7, 7), padding = 'same')) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(pool_size=(2, 2))) | |
model.add(Dropout(0.5)) | |
model.add(Conv2D(64, (7, 7), padding = 'same')) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(pool_size=(2, 2))) | |
model.add(Dropout(0.5)) | |
model.add(Conv2D(128, (7, 7), padding = 'same')) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(pool_size=(2, 2))) | |
model.add(Dropout(0.6)) | |
model.add(Conv2D(128, (7, 7), padding = 'same')) | |
# model.add(Conv2D(64, (7, 7), padding = 'same')) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(pool_size=(2, 2))) | |
model.add(Dropout(0.6)) | |
model.add(Conv2D(128, (7, 7), padding = 'same')) | |
# model.add(Conv2D(64, (7, 7), padding = 'same')) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(pool_size=(2, 2))) | |
model.add(Dropout(0.6)) | |
model.add(Conv2D(256, (7, 7), padding = 'same')) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(pool_size=(2, 2))) | |
model.add(Dropout(0.6)) | |
model.add(Flatten()) | |
model.add(Dense(256)) | |
model.add(Activation('relu')) | |
model.add(Dense(1)) | |
model.add(Activation('sigmoid')) | |
model.compile(loss='binary_crossentropy', | |
optimizer=optimizers.Adam(lr=3e-4), | |
metrics=['accuracy']) | |
from keras.callbacks import ReduceLROnPlateau, ModelCheckpoint | |
checkpoint = ModelCheckpoint(filepath='checkpointORCA_adam-{epoch:02d}-{val_loss:.2f}.h5', monitor='val_loss', verbose=0, save_best_only=True) | |
reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5, | |
patience=20, min_lr=1e-8) | |
train_datagen = ImageDataGenerator(rescale=1. / 255, | |
shear_range=0.2, | |
zoom_range=0.2) | |
# this is the augmentation configuration we will use for testing: | |
# only rescaling | |
test_datagen = ImageDataGenerator(rescale=1. / 255) | |
# Change the batchsize according to your system RAM | |
train_batchsize = 128 | |
val_batchsize = 128 | |
train_generator = train_datagen.flow_from_directory( | |
train_data_path, | |
target_size=(img_width, img_height), | |
batch_size=train_batchsize, | |
class_mode='binary', | |
shuffle=True) | |
# train_generator.reset() | |
# validation_generator.reset() | |
validation_generator = test_datagen.flow_from_directory( | |
validation_data_path, | |
target_size=(img_width, img_height), | |
batch_size=val_batchsize, | |
class_mode='binary', | |
shuffle=False) | |
# validation_generator.reset() | |
history = model.fit_generator( | |
train_generator, | |
steps_per_epoch=nb_train_samples // batch_size, | |
epochs=epochs, | |
validation_data=validation_generator, | |
validation_steps=nb_validation_samples // batch_size, | |
callbacks=[checkpoint, reduce_lr]) | |
# model.save_weights('orca_detection_3.h5') | |
model.save('OrcaCNN_detection_adam_2x3.h5') | |
Found 22790 images belonging to 2 classes. | |
Found 16574 images belonging to 2 classes. | |
Epoch 1/100 | |
178/178 [==============================] - 563s 3s/step - loss: 0.5357 - acc: 0.7096 - val_loss: 0.3508 - val_acc: 0.8867 | |
Epoch 2/100 | |
178/178 [==============================] - 519s 3s/step - loss: 0.2561 - acc: 0.8976 - val_loss: 0.1923 - val_acc: 0.9365 | |
Epoch 3/100 | |
178/178 [==============================] - 520s 3s/step - loss: 0.1881 - acc: 0.9268 - val_loss: 0.1593 - val_acc: 0.9431 | |
Epoch 4/100 | |
178/178 [==============================] - 537s 3s/step - loss: 0.1600 - acc: 0.9392 - val_loss: 0.1742 - val_acc: 0.9420 | |
Epoch 5/100 | |
178/178 [==============================] - 539s 3s/step - loss: 0.1478 - acc: 0.9440 - val_loss: 0.1635 - val_acc: 0.9383 | |
Epoch 6/100 | |
178/178 [==============================] - 514s 3s/step - loss: 0.1481 - acc: 0.9409 - val_loss: 0.1478 - val_acc: 0.9439 | |
Epoch 7/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.1378 - acc: 0.9471 - val_loss: 0.1881 - val_acc: 0.9330 | |
Epoch 8/100 | |
178/178 [==============================] - 526s 3s/step - loss: 0.1344 - acc: 0.9490 - val_loss: 0.1788 - val_acc: 0.9375 | |
Epoch 9/100 | |
178/178 [==============================] - 541s 3s/step - loss: 0.1303 - acc: 0.9510 - val_loss: 0.1879 - val_acc: 0.9363 | |
Epoch 10/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.1328 - acc: 0.9467 - val_loss: 0.2427 - val_acc: 0.9216 | |
Epoch 11/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.1271 - acc: 0.9521 - val_loss: 0.1510 - val_acc: 0.9446 | |
Epoch 12/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.1228 - acc: 0.9537 - val_loss: 0.1655 - val_acc: 0.9436 | |
Epoch 13/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.1180 - acc: 0.9539 - val_loss: 0.1261 - val_acc: 0.9540 | |
Epoch 14/100 | |
178/178 [==============================] - 519s 3s/step - loss: 0.1155 - acc: 0.9545 - val_loss: 0.2036 - val_acc: 0.9327 | |
Epoch 15/100 | |
178/178 [==============================] - 515s 3s/step - loss: 0.1115 - acc: 0.9574 - val_loss: 0.1701 - val_acc: 0.9388 | |
Epoch 16/100 | |
178/178 [==============================] - 511s 3s/step - loss: 0.1153 - acc: 0.9561 - val_loss: 0.1548 - val_acc: 0.9497 | |
Epoch 17/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.1234 - acc: 0.9529 - val_loss: 0.1978 - val_acc: 0.9328 | |
Epoch 18/100 | |
178/178 [==============================] - 515s 3s/step - loss: 0.1071 - acc: 0.9587 - val_loss: 0.1947 - val_acc: 0.9334 | |
Epoch 19/100 | |
178/178 [==============================] - 519s 3s/step - loss: 0.1136 - acc: 0.9592 - val_loss: 0.1680 - val_acc: 0.9444 | |
Epoch 20/100 | |
178/178 [==============================] - 512s 3s/step - loss: 0.1064 - acc: 0.9586 - val_loss: 0.1945 - val_acc: 0.9396 | |
Epoch 21/100 | |
178/178 [==============================] - 517s 3s/step - loss: 0.1057 - acc: 0.9593 - val_loss: 0.2360 - val_acc: 0.9228 | |
Epoch 22/100 | |
178/178 [==============================] - 527s 3s/step - loss: 0.1070 - acc: 0.9583 - val_loss: 0.1580 - val_acc: 0.9473 | |
Epoch 23/100 | |
178/178 [==============================] - 506s 3s/step - loss: 0.1027 - acc: 0.9605 - val_loss: 0.1495 - val_acc: 0.9450 | |
Epoch 24/100 | |
178/178 [==============================] - 503s 3s/step - loss: 0.1043 - acc: 0.9605 - val_loss: 0.1459 - val_acc: 0.9509 | |
Epoch 25/100 | |
178/178 [==============================] - 506s 3s/step - loss: 0.0997 - acc: 0.9605 - val_loss: 0.1618 - val_acc: 0.9488 | |
Epoch 26/100 | |
178/178 [==============================] - 504s 3s/step - loss: 0.0988 - acc: 0.9611 - val_loss: 0.1153 - val_acc: 0.9574 | |
Epoch 27/100 | |
178/178 [==============================] - 509s 3s/step - loss: 0.1000 - acc: 0.9609 - val_loss: 0.1462 - val_acc: 0.9486 | |
Epoch 28/100 | |
178/178 [==============================] - 509s 3s/step - loss: 0.0985 - acc: 0.9604 - val_loss: 0.1607 - val_acc: 0.9438 | |
Epoch 29/100 | |
178/178 [==============================] - 507s 3s/step - loss: 0.0969 - acc: 0.9627 - val_loss: 0.1444 - val_acc: 0.9483 | |
Epoch 30/100 | |
178/178 [==============================] - 515s 3s/step - loss: 0.0926 - acc: 0.9642 - val_loss: 0.1964 - val_acc: 0.9334 | |
Epoch 31/100 | |
178/178 [==============================] - 522s 3s/step - loss: 0.0986 - acc: 0.9610 - val_loss: 0.1515 - val_acc: 0.9461 | |
Epoch 32/100 | |
178/178 [==============================] - 517s 3s/step - loss: 0.0945 - acc: 0.9633 - val_loss: 0.1461 - val_acc: 0.9496 | |
Epoch 33/100 | |
178/178 [==============================] - 530s 3s/step - loss: 0.0967 - acc: 0.9635 - val_loss: 0.1331 - val_acc: 0.9567 | |
Epoch 34/100 | |
178/178 [==============================] - 526s 3s/step - loss: 0.0953 - acc: 0.9620 - val_loss: 0.2317 - val_acc: 0.9349 | |
Epoch 35/100 | |
178/178 [==============================] - 521s 3s/step - loss: 0.0966 - acc: 0.9620 - val_loss: 0.1406 - val_acc: 0.9510 | |
Epoch 36/100 | |
178/178 [==============================] - 515s 3s/step - loss: 0.0885 - acc: 0.9661 - val_loss: 0.1205 - val_acc: 0.9559 | |
Epoch 37/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.0932 - acc: 0.9642 - val_loss: 0.1343 - val_acc: 0.9498 | |
Epoch 38/100 | |
178/178 [==============================] - 514s 3s/step - loss: 0.0940 - acc: 0.9621 - val_loss: 0.1299 - val_acc: 0.9541 | |
Epoch 39/100 | |
178/178 [==============================] - 511s 3s/step - loss: 0.0948 - acc: 0.9635 - val_loss: 0.1283 - val_acc: 0.9557 | |
Epoch 40/100 | |
178/178 [==============================] - 511s 3s/step - loss: 0.0937 - acc: 0.9644 - val_loss: 0.1749 - val_acc: 0.9444 | |
Epoch 41/100 | |
178/178 [==============================] - 510s 3s/step - loss: 0.0855 - acc: 0.9665 - val_loss: 0.2165 - val_acc: 0.9322 | |
Epoch 42/100 | |
178/178 [==============================] - 512s 3s/step - loss: 0.0871 - acc: 0.9655 - val_loss: 0.1419 - val_acc: 0.9537 | |
Epoch 43/100 | |
178/178 [==============================] - 511s 3s/step - loss: 0.0813 - acc: 0.9687 - val_loss: 0.1122 - val_acc: 0.9575 | |
Epoch 44/100 | |
178/178 [==============================] - 527s 3s/step - loss: 0.0918 - acc: 0.9629 - val_loss: 0.1099 - val_acc: 0.9592 | |
Epoch 45/100 | |
178/178 [==============================] - 528s 3s/step - loss: 0.0837 - acc: 0.9667 - val_loss: 0.1391 - val_acc: 0.9533 | |
Epoch 46/100 | |
178/178 [==============================] - 522s 3s/step - loss: 0.0894 - acc: 0.9659 - val_loss: 0.1279 - val_acc: 0.9553 | |
Epoch 47/100 | |
178/178 [==============================] - 524s 3s/step - loss: 0.0866 - acc: 0.9650 - val_loss: 0.1435 - val_acc: 0.9527 | |
Epoch 48/100 | |
178/178 [==============================] - 523s 3s/step - loss: 0.0826 - acc: 0.9686 - val_loss: 0.1341 - val_acc: 0.9530 | |
Epoch 49/100 | |
178/178 [==============================] - 521s 3s/step - loss: 0.0914 - acc: 0.9643 - val_loss: 0.1435 - val_acc: 0.9534 | |
Epoch 50/100 | |
178/178 [==============================] - 518s 3s/step - loss: 0.0857 - acc: 0.9657 - val_loss: 0.1428 - val_acc: 0.9499 | |
Epoch 51/100 | |
178/178 [==============================] - 525s 3s/step - loss: 0.0809 - acc: 0.9678 - val_loss: 0.1234 - val_acc: 0.9557 | |
Epoch 52/100 | |
178/178 [==============================] - 528s 3s/step - loss: 0.0812 - acc: 0.9680 - val_loss: 0.1134 - val_acc: 0.9585 | |
Epoch 53/100 | |
178/178 [==============================] - 531s 3s/step - loss: 0.0821 - acc: 0.9680 - val_loss: 0.1201 - val_acc: 0.9582 | |
Epoch 54/100 | |
178/178 [==============================] - 522s 3s/step - loss: 0.0814 - acc: 0.9681 - val_loss: 0.1404 - val_acc: 0.9544 | |
Epoch 55/100 | |
178/178 [==============================] - 527s 3s/step - loss: 0.0807 - acc: 0.9695 - val_loss: 0.1270 - val_acc: 0.9576 | |
Epoch 56/100 | |
178/178 [==============================] - 530s 3s/step - loss: 0.0769 - acc: 0.9713 - val_loss: 0.1395 - val_acc: 0.9511 | |
Epoch 57/100 | |
178/178 [==============================] - 524s 3s/step - loss: 0.0794 - acc: 0.9680 - val_loss: 0.1659 - val_acc: 0.9459 | |
Epoch 58/100 | |
178/178 [==============================] - 533s 3s/step - loss: 0.0795 - acc: 0.9691 - val_loss: 0.1483 - val_acc: 0.9482 | |
Epoch 59/100 | |
178/178 [==============================] - 535s 3s/step - loss: 0.0768 - acc: 0.9696 - val_loss: 0.1300 - val_acc: 0.9540 | |
Epoch 60/100 | |
178/178 [==============================] - 531s 3s/step - loss: 0.0813 - acc: 0.9696 - val_loss: 0.1289 - val_acc: 0.9551 | |
Epoch 61/100 | |
178/178 [==============================] - 526s 3s/step - loss: 0.0806 - acc: 0.9689 - val_loss: 0.1378 - val_acc: 0.9513 | |
Epoch 62/100 | |
178/178 [==============================] - 517s 3s/step - loss: 0.0751 - acc: 0.9698 - val_loss: 0.1154 - val_acc: 0.9596 | |
Epoch 63/100 | |
178/178 [==============================] - 525s 3s/step - loss: 0.0760 - acc: 0.9709 - val_loss: 0.1267 - val_acc: 0.9528 | |
Epoch 64/100 | |
178/178 [==============================] - 527s 3s/step - loss: 0.0767 - acc: 0.9699 - val_loss: 0.1306 - val_acc: 0.9559 | |
Epoch 65/100 | |
178/178 [==============================] - 520s 3s/step - loss: 0.0693 - acc: 0.9734 - val_loss: 0.1230 - val_acc: 0.9548 | |
Epoch 66/100 | |
178/178 [==============================] - 518s 3s/step - loss: 0.0676 - acc: 0.9738 - val_loss: 0.1401 - val_acc: 0.9526 | |
Epoch 67/100 | |
178/178 [==============================] - 515s 3s/step - loss: 0.0670 - acc: 0.9733 - val_loss: 0.1269 - val_acc: 0.9555 | |
Epoch 68/100 | |
178/178 [==============================] - 516s 3s/step - loss: 0.0747 - acc: 0.9708 - val_loss: 0.1287 - val_acc: 0.9551 | |
Epoch 69/100 | |
178/178 [==============================] - 519s 3s/step - loss: 0.0705 - acc: 0.9723 - val_loss: 0.1247 - val_acc: 0.9560 | |
Epoch 70/100 | |
178/178 [==============================] - 519s 3s/step - loss: 0.0699 - acc: 0.9727 - val_loss: 0.1212 - val_acc: 0.9553 | |
Epoch 71/100 | |
178/178 [==============================] - 522s 3s/step - loss: 0.0647 - acc: 0.9748 - val_loss: 0.1274 - val_acc: 0.9544 | |
Epoch 72/100 | |
178/178 [==============================] - 521s 3s/step - loss: 0.0678 - acc: 0.9734 - val_loss: 0.1129 - val_acc: 0.9581 | |
Epoch 73/100 | |
178/178 [==============================] - 522s 3s/step - loss: 0.0666 - acc: 0.9734 - val_loss: 0.1159 - val_acc: 0.9572 | |
Epoch 74/100 | |
178/178 [==============================] - 522s 3s/step - loss: 0.0628 - acc: 0.9754 - val_loss: 0.1134 - val_acc: 0.9565 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment