{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport keras\nfrom keras.models import Sequential\nfrom keras.layers import Activation,MaxPooling2D,Dropout\nfrom keras.layers.core import Dense, Flatten\nfrom keras.optimizers import Adam\nfrom keras.optimizers import SGD\nfrom keras.metrics import categorical_crossentropy\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.layers.normalization import BatchNormalization\nfrom keras.layers.convolutional import Conv2D\nfrom tensorflow.keras.models import load_model\nfrom keras.callbacks import ModelCheckpoint,ReduceLROnPlateau,EarlyStopping,LearningRateScheduler,CSVLogger,LambdaCallback,TensorBoard\nfrom keras import regularizers\nimport itertools\nimport matplotlib.pyplot as plt\nfrom sklearn.metrics import confusion_matrix\nfrom keras.regularizers import l2\nimport seaborn as sns\nimport math\nimport os\nfrom keras.applications.resnet50 import ResNet50\nfrom keras.applications.vgg16 import VGG16\nfrom keras.applications.vgg19 import VGG19\n%matplotlib inline","execution_count":null,"outputs":[]},{"metadata":{"scrolled":true,"trusted":true},"cell_type":"code","source":"#os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\"\ntrain_path = '../input/catdog10000train5000validate/train/train'\nvalid_path = '../input/catdog10000train5000validate/valid/valid'\ntest_path  = '../input/catdog10000train5000validate/test/test'\ntrain_gen = ImageDataGenerator(\n    shear_range=0.2,\n    zoom_range=0.2,\n    rotation_range=20,\n    width_shift_range=0.2,\n    height_shift_range=0.2,\n    horizontal_flip=True,\n    channel_shift_range=10.,\n    fill_mode=\"nearest\"\n)\ngen = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, \n    height_shift_range=0.1, shear_range=0.15, zoom_range=0.1, \n    channel_shift_range=10., horizontal_flip=True)\n\ntrain_batches = train_gen.flow_from_directory(directory=train_path, target_size=(224,224),\n    classes=['dog', 'cat'], batch_size=32)\n\nvalid_batches = ImageDataGenerator().flow_from_directory(directory=valid_path, target_size=(224,224), \n    classes=['dog', 'cat'], batch_size=32)\ntest_batches = ImageDataGenerator().flow_from_directory(directory=test_path, target_size=(224,224),\n    classes=['dog', 'cat'], batch_size=32,shuffle=False)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# learning rate schedule\ndef step_decay(epoch):\n\tinitial_lrate = 0.001\n\tdrop = 0.5\n\tepochs_drop = 1.0\n\tlrate = initial_lrate * math.pow(drop, math.floor((1+epoch)/epochs_drop))\n\treturn lrate","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"# Add all the call backs for Keras\nlr_print_callback = LambdaCallback(\n    on_epoch_begin=lambda epoch,logs: print(\"LearningRate of %e\",model.optimizer.lr))\n\nearlyStopping = EarlyStopping(\n    monitor='val_loss',\n    min_delta=0,\n    verbose=0,\n    mode='auto',\n    baseline=None,\n\tpatience=10,\n    restore_best_weights=True\n)\n\nreduce_lr_loss = ReduceLROnPlateau(\n    monitor='val_loss', \n\tfactor=0.1, \n    patience=7, \n\tverbose=1, \n    min_delta=1e-4,\n\tmode='auto')\n\t\nreduce_lr_loss = ReduceLROnPlateau(\n    monitor='val_loss', \n\tfactor=0.1, \n    patience=7, \n\tverbose=1, \n    min_delta=1e-4,\n\tmode='auto')\n\nmcp_save       = ModelCheckpoint(\n    'cat_dog_ckpt.h5', \n\tsave_best_only=True, \n\tmonitor='val_loss', \n\tmode='auto'\n)\nlrate_sched = LearningRateScheduler(step_decay)\n\ncsv_log = CSVLogger('train.csv', separator=',', append=False)\n","execution_count":null,"outputs":[]},{"metadata":{"scrolled":true,"trusted":false},"cell_type":"code","source":"# plots images with labels within jupyter notebook\ndef plots(ims, figsize=(12,6), rows=1, interp=False, titles=None):\n    if type(ims[0]) is np.ndarray:\n        ims = np.array(ims).astype(np.uint8)\n        if (ims.shape[-1] != 3):\n            ims = ims.transpose((0,2,3,1))\n    f = plt.figure(figsize=figsize)\n    plt.style.use('ggplot')\n    cols = len(ims)/rows\n    #cols = 8\n    for i in range(len(ims)):\n    #for i in range(10):\n        sp = f.add_subplot(rows, cols, i+1)\n        sp.axis('Off')\n        if titles is not None:\n            sp.set_title(titles[i], fontsize=16)\n        plt.imshow(ims[i], interpolation=None if interp else 'none')\n\n#test_imgs, labels = next(test_batches)\n#test_imgs, labels = next(train_gen)\n\n#plots(aug_images, figsize=(20,7), rows=2)\n\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"vgg16_model = VGG16() \nmodel_vgg16 = Sequential() \nfor layer in vgg16_model.layers[:-1]: \n    model_vgg16.add(layer) \nfor layer in model_vgg16.layers: \n    layer.trainable = False \n    \nmodel_vgg16.add(Dense(2, activation='sigmoid'))\n\n\nmcp_save       = ModelCheckpoint(\n    'cat_dog_ckpt_vgg16.h5', \n\tsave_best_only=True, \n\tmonitor='val_loss', \n\tmode='auto'\n)\n#print(\"Running the Training of Model from Scratch\") \n#history = model_vgg16.fit_generator(generator=train_batches, steps_per_epoch=len(train_batches),\n#                                    validation_data=valid_batches, validation_steps=len(valid_batches), \n#                                    epochs=50, verbose=1)\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"if os.path.isfile('cat_dog_ckpt_vgg16.h5'):\n    #This code is implemented to load the partly trained model which was stopped due to some reason\n    print(\"Running the Partially Trained Model\")\n    partially_trained_model = load_model('cat_dog_ckpt_vgg16.h5')\n    history = partially_trained_model.fit_generator(generator=train_batches, steps_per_epoch=len(train_batches),\n                                 validation_data=valid_batches, validation_steps=len(valid_batches), \n                                    epochs=50,callbacks=[mcp_save], verbose=1)\nelse:\n    print(\"Running the Training of Model from Scratch\")\n    model_vgg16.compile(loss='binary_crossentropy',optimizer=Adam(lr=0.0001),metrics=['accuracy'])\n    history = model_vgg16.fit_generator(generator=train_batches, steps_per_epoch=len(train_batches),\n                                 validation_data=valid_batches, validation_steps=len(valid_batches), \n                                    epochs=50,callbacks=[mcp_save], verbose=1)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"![vgg_accuracy.png](attachment:vgg_accuracy.png)","attachments":{"vgg_accuracy.png":{"image/png":"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"}}},{"metadata":{"trusted":false},"cell_type":"code","source":"acc = history.history['accuracy'] \nval_acc = history.history['val_accuracy'] \nloss = history.history['loss'] \nval_loss = history.history['val_loss']\n\nepochs = range(1, len(acc) + 1)\n\nplt.plot(epochs, acc, 'bo', label='Training acc')\nplt.plot(epochs, val_acc, 'b', label='Validation acc') \nplt.title('Training and validation accuracy') \nplt.legend() \nplt.figure() \nplt.plot(epochs, loss, 'bo', label='Training loss') \nplt.plot(epochs, val_loss, 'b', label='Validation loss') \nplt.title('Training and validation loss') \nplt.savefig('accuracy.png')\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"predictions = model_vgg16.predict_generator(generator=test_batches, steps=len(test_batches), verbose=0)\npred_label = np.argmax(predictions,axis=1)\nclasses = np.argmax(predictions, axis=1)\ncm = confusion_matrix(test_batches.labels,pred_label)\nf,ax = plt.subplots(figsize=(4, 4))\nsns.heatmap(cm, annot=True, linewidths=0.01,cmap=\"Greens\",linecolor=\"gray\", fmt= '.1f',ax=ax)\nplt.xlabel(\"Predicted Label\")\nplt.ylabel(\"True Label\")\nplt.title(\"Confusion Matrix\")\nplt.show()\nplt.savefig('confusion_matrix.png')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"![vgg_cm.png](attachment:vgg_cm.png)","attachments":{"vgg_cm.png":{"image/png":"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"}}},{"metadata":{"trusted":false},"cell_type":"code","source":"from sklearn.metrics import precision_score\nfrom sklearn.metrics import recall_score\nfrom sklearn.metrics import f1_score\nfrom sklearn.metrics import roc_curve\nfrom sklearn.metrics import roc_auc_score\nfrom sklearn import metrics\ntn, fp, fn, tp = cm.ravel()\naccuracy = (tn + tp)/(tn + tp + fn +fp)\nprecision = precision_score(test_batches.labels, pred_label, average='binary')\nrecall = recall_score(test_batches.labels, pred_label,average='binary')\nf1_score = f1_score(test_batches.labels, pred_label, average='binary')\nscore = metrics.accuracy_score(test_batches.labels, pred_label)\nlog_score = metrics.log_loss(pred_label, predictions)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"print(\"Precision \",precision*100)\nprint(\"Recall \",recall*100)\nprint(\"F1 Score \",recall*100)\nprint(\"Accuracy of the model\",accuracy*100)\nprint(\"Accuracy score: {}\".format(score))\nprint(\"Log loss score: {}\".format(log_score))","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"from sklearn.metrics import roc_curve, auc\ndef plot_roc(pred,y):\n    fpr, tpr, _ = roc_curve(y, pred)\n    roc_auc = auc(fpr, tpr)\n\n    plt.figure()\n    plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)\n    plt.plot([0, 1], [0, 1], 'k--')\n    plt.xlim([0.0, 1.0])\n    plt.ylim([0.0, 1.05])\n    plt.xlabel('False Positive Rate')\n    plt.ylabel('True Positive Rate')\n    plt.title('Receiver Operating Characteristic (ROC)')\n    plt.legend(loc=\"lower right\")\n    plt.show()\nplot_roc(pred_label,test_batches.labels)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"![vgg_roc.png](attachment:vgg_roc.png)","attachments":{"vgg_roc.png":{"image/png":"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"}}},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.7.6"}},"nbformat":4,"nbformat_minor":4}