Skip to content

Instantly share code, notes, and snippets.

@ZER-0-NE
Last active July 6, 2019 10:42
Show Gist options
  • Save ZER-0-NE/1d5d36378197362c98fe5c460d7739b8 to your computer and use it in GitHub Desktop.
Save ZER-0-NE/1d5d36378197362c98fe5c460d7739b8 to your computer and use it in GitHub Desktop.
Img Dim: 150, 250
// 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