{"cells":[{"metadata":{},"cell_type":"markdown","source":"<img src=\"https://i.postimg.cc/R0qN7VJy/1.jpg\" alt=\"Flowers\" class=\"center\">","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"**In this notebook i will experiment transfer learning from 8 most popular pre trained convolutional neural networks for identify the type of flowers in a dataset of images (for simplicity, we’re sticking to just over 100 types).**\n\n**I will made an assemblage using this 8 architectures by creating fair voting system between them, at the end every CNN architecture will return type of flower and i will considertate the choice of the majority.**\n\n**Fair play =)**\n\n**I will take advantage of the powerful Tensor Processing Units (TPUs) provided by Kaggle in cloud, it allows to greatly increase the learning speed and also it pushes the limits of RAM as what happens for gpu which allows to consider high resolution images.**\n\n**i will also do data augmentation on pictures by zoom, rotate, inverse, shift and share them. it decrease overfitting.**","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"**Pretrained models used for voting :**\n\n* Xception\n* VGG16\n* DenseNet201\n* InceptionV3\n* EfficientNetB7\n* ResNet152V2\n* MobileNetV2\n* InceptionResNetV2\n\n<a href=\"https://keras.io/api/applications/\">Keras reference</a>\n\n![a88.jpg](attachment:a88.jpg)","attachments":{"a88.jpg":{"image/jpeg":"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"}},"execution_count":null},{"metadata":{},"cell_type":"markdown","source":"**Referances :**\n\n<a href=\"https://www.kaggle.com/cdeotte/rotation-augmentation-gpu-tpu-0-96\">Rotation Augmentation GPU/TPU - [0.96+]</a>\n\n<a href=\"https://www.kaggle.com/sgladysh/flowers-tpu-efficientnet-b7-b6-b5-b4\">Flowers@TPU EfficientNet B7+B6+B5+B4</a>\n\n<a href=\"https://www.kaggle.com/philculliton/a-simple-petals-tf-2-2-notebook\">A Simple Petals TF 2.2 notebook</a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Solution Architecture","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"![architechture.png](attachment:architechture.png)","attachments":{"architechture.png":{"image/png":"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"}},"execution_count":null},{"metadata":{},"cell_type":"markdown","source":"**<p style=\"color:red\">If you like this approach please Upvote it will motivate me to continue =D Enjoy.</p>**","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Contents\n\n* [<font size=4>1. Libraries</font>](#1)\n* [<font size=4>2. Configuration and Data Access</font>](#2)\n* [<font size=4>3. Data Augmentation</font>](#3)\n* [<font size=4>4. Pretrained Models Creation</font>](#4)\n* [<font size=4>5. Transfer Learning and Prediction</font>](#5)\n *     [Apply voting to all models output](#5.1)\n* [<font size=4>6. Models Performance</font>](#6)\n *     [Accuracy / Loss Evolution](#6.1)\n *     [Confusion Matrix](#6.2)\n* [<font size=4>7. Submit predictions</font>](#6)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# 1. Libraries <a id=\"1\"></a>","execution_count":null},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import random, re, math\nimport numpy as np, pandas as pd\nimport matplotlib.pyplot as plt\nfrom sklearn.metrics import f1_score, precision_score, recall_score, confusion_matrix\nimport tensorflow as tf, tensorflow.keras.backend as K\nfrom kaggle_datasets import KaggleDatasets\nfrom IPython.display import Image\nfrom tensorflow.keras.utils import plot_model\nprint('Tensorflow version ' + tf.__version__)\nfrom sklearn.model_selection import KFold\nimport gc\nfrom scipy import stats\nimport gc\nfrom collections import Counter\n\n!pip install -q efficientnet\n\nfrom tensorflow.keras.applications import Xception\nfrom tensorflow.keras.applications import VGG16\nfrom tensorflow.keras.applications import DenseNet201\nfrom tensorflow.keras.applications import InceptionV3\nfrom efficientnet.tfkeras import EfficientNetB7\nfrom tensorflow.keras.applications import ResNet152V2\nfrom tensorflow.keras.applications import MobileNetV2\nfrom tensorflow.keras.applications import InceptionResNetV2","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 2. Configuration and Data Access <a id=\"2\"></a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# Detect hardware, return appropriate distribution strategy\ntry:\n    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()  # TPU detection. No parameters necessary if TPU_NAME environment variable is set. On Kaggle this is always the case.\n    print('Running on TPU ', tpu.master())\nexcept ValueError:\n    tpu = None\n\nif tpu:\n    tf.config.experimental_connect_to_cluster(tpu)\n    tf.tpu.experimental.initialize_tpu_system(tpu)\n    strategy = tf.distribute.experimental.TPUStrategy(tpu)\nelse:\n    strategy = tf.distribute.get_strategy() # default distribution strategy in Tensorflow. Works on CPU and single GPU.\n\nprint(\"REPLICAS: \", strategy.num_replicas_in_sync)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"AUTO = tf.data.experimental.AUTOTUNE\n\n# Configuration\nIMAGE_SIZE = [224, 224]\nEPOCHS = 30\nFOLDS = 3\nSEED = 777\nBATCH_SIZE = 16 * strategy.num_replicas_in_sync","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"MIXED_PRECISION = False\nXLA_ACCELERATE = False\n\nif MIXED_PRECISION:\n    from tensorflow.keras.mixed_precision import experimental as mixed_precision\n    if tpu: policy = tf.keras.mixed_precision.experimental.Policy('mixed_bfloat16')\n    else: policy = tf.keras.mixed_precision.experimental.Policy('mixed_float16')\n    mixed_precision.set_policy(policy)\n    print('Mixed precision enabled')\n\nif XLA_ACCELERATE:\n    tf.config.optimizer.set_jit(True)\n    print('Accelerated Linear Algebra enabled')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Data access\nGCS_DS_PATH = KaggleDatasets().get_gcs_path('tpu-getting-started')\n\nGCS_PATH_SELECT = { # available image sizes\n    192: GCS_DS_PATH + '/tfrecords-jpeg-192x192',\n    224: GCS_DS_PATH + '/tfrecords-jpeg-224x224',\n    331: GCS_DS_PATH + '/tfrecords-jpeg-331x331',\n    512: GCS_DS_PATH + '/tfrecords-jpeg-512x512'\n}\n\nGCS_PATH = GCS_PATH_SELECT[IMAGE_SIZE[0]]\n\nTRAINING_FILENAMES = tf.io.gfile.glob(GCS_PATH + '/train/*.tfrec') + tf.io.gfile.glob(GCS_PATH + '/val/*.tfrec')\n\nTRAINING_FILENAMES_ONLY = tf.io.gfile.glob(GCS_PATH + '/train/*.tfrec')\nVAL_FILENAMES_ONLY =  tf.io.gfile.glob(GCS_PATH + '/val/*.tfrec')\n\nTEST_FILENAMES = tf.io.gfile.glob(GCS_PATH + '/test/*.tfrec') # predictions on this dataset should be submitted for the competition\n\nCLASSES = ['pink primrose',    'hard-leaved pocket orchid', 'canterbury bells', 'sweet pea',     'wild geranium',     'tiger lily',           'moon orchid',              'bird of paradise', 'monkshood',        'globe thistle',         # 00 - 09\n           'snapdragon',       \"colt's foot\",               'king protea',      'spear thistle', 'yellow iris',       'globe-flower',         'purple coneflower',        'peruvian lily',    'balloon flower',   'giant white arum lily', # 10 - 19\n           'fire lily',        'pincushion flower',         'fritillary',       'red ginger',    'grape hyacinth',    'corn poppy',           'prince of wales feathers', 'stemless gentian', 'artichoke',        'sweet william',         # 20 - 29\n           'carnation',        'garden phlox',              'love in the mist', 'cosmos',        'alpine sea holly',  'ruby-lipped cattleya', 'cape flower',              'great masterwort', 'siam tulip',       'lenten rose',           # 30 - 39\n           'barberton daisy',  'daffodil',                  'sword lily',       'poinsettia',    'bolero deep blue',  'wallflower',           'marigold',                 'buttercup',        'daisy',            'common dandelion',      # 40 - 49\n           'petunia',          'wild pansy',                'primula',          'sunflower',     'lilac hibiscus',    'bishop of llandaff',   'gaura',                    'geranium',         'orange dahlia',    'pink-yellow dahlia',    # 50 - 59\n           'cautleya spicata', 'japanese anemone',          'black-eyed susan', 'silverbush',    'californian poppy', 'osteospermum',         'spring crocus',            'iris',             'windflower',       'tree poppy',            # 60 - 69\n           'gazania',          'azalea',                    'water lily',       'rose',          'thorn apple',       'morning glory',        'passion flower',           'lotus',            'toad lily',        'anthurium',             # 70 - 79\n           'frangipani',       'clematis',                  'hibiscus',         'columbine',     'desert-rose',       'tree mallow',          'magnolia',                 'cyclamen ',        'watercress',       'canna lily',            # 80 - 89\n           'hippeastrum ',     'bee balm',                  'pink quill',       'foxglove',      'bougainvillea',     'camellia',             'mallow',                   'mexican petunia',  'bromelia',         'blanket flower',        # 90 - 99\n           'trumpet creeper',  'blackberry lily',           'common tulip',     'wild rose']   \n\n\n# Learning rate schedule for TPU, GPU and CPU.\n# Using an LR ramp up because fine-tuning a pre-trained model.\n# Starting with a high LR would break the pre-trained weights.\n\nLR_START = 0.00001\nLR_MAX = 0.00005 * strategy.num_replicas_in_sync\nLR_MIN = 0.00001\nLR_RAMPUP_EPOCHS = 5\nLR_SUSTAIN_EPOCHS = 0\nLR_EXP_DECAY = .8\n\n    \ndef scheduler(epoch):\n    if epoch < 4:\n        return 0.0005\n    elif epoch < 8:\n        return 0.0002\n    elif epoch < 12:\n        return 0.0001\n    elif epoch < 16:\n        return 0.00005\n    elif epoch < 20:\n        return 0.00002\n    else:\n        return 0.00001\n    \nlr_callback = tf.keras.callbacks.LearningRateScheduler(scheduler, verbose = True)\n\nrng = [i for i in range(25 if EPOCHS<25 else EPOCHS)]\ny = [scheduler(x) for x in rng]\nplt.plot(rng, y)\nprint(\"Learning rate schedule: {:.3g} to {:.3g} to {:.3g}\".format(y[0], max(y), y[-1]))\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def decode_image(image_data):\n    image = tf.image.decode_jpeg(image_data, channels=3)\n    image = tf.cast(image, tf.float32) / 255.0  # convert image to floats in [0, 1] range\n    image = tf.reshape(image, [*IMAGE_SIZE, 3]) # explicit size needed for TPU\n    return image\n\ndef read_labeled_tfrecord(example):\n    LABELED_TFREC_FORMAT = {\n        \"image\": tf.io.FixedLenFeature([], tf.string), # tf.string means bytestring\n        \"class\": tf.io.FixedLenFeature([], tf.int64),  # shape [] means single element\n    }\n    example = tf.io.parse_single_example(example, LABELED_TFREC_FORMAT)\n    image = decode_image(example['image'])\n    label = tf.cast(example['class'], tf.int32)\n    return image, label # returns a dataset of (image, label) pairs\n\ndef read_unlabeled_tfrecord(example):\n    UNLABELED_TFREC_FORMAT = {\n        \"image\": tf.io.FixedLenFeature([], tf.string), # tf.string means bytestring\n        \"id\": tf.io.FixedLenFeature([], tf.string),  # shape [] means single element\n        # class is missing, this competitions's challenge is to predict flower classes for the test dataset\n    }\n    example = tf.io.parse_single_example(example, UNLABELED_TFREC_FORMAT)\n    image = decode_image(example['image'])\n    idnum = example['id']\n    return image, idnum # returns a dataset of image(s)\n\ndef load_dataset(filenames, labeled = True, ordered = False):\n    # Read from TFRecords. For optimal performance, reading from multiple files at once and\n    # Diregarding data order. Order does not matter since we will be shuffling the data anyway\n    \n    ignore_order = tf.data.Options()\n    if not ordered:\n        ignore_order.experimental_deterministic = False # disable order, increase speed\n        \n    dataset = tf.data.TFRecordDataset(filenames, num_parallel_reads = AUTO) # automatically interleaves reads from multiple files\n    dataset = dataset.with_options(ignore_order) # use data as soon as it streams in, rather than in its original order\n    dataset = dataset.map(read_labeled_tfrecord if labeled else read_unlabeled_tfrecord, num_parallel_calls = AUTO) # returns a dataset of (image, label) pairs if labeled = True or (image, id) pair if labeld = False\n    return dataset\n\ndef data_augment(image, label):\n    # data augmentation. Thanks to the dataset.prefetch(AUTO) statement in the next function (below),\n    # this happens essentially for free on TPU. Data pipeline code is executed on the \"CPU\" part\n    # of the TPU while the TPU itself is computing gradients.\n    image = tf.image.random_flip_left_right(image)\n    return image, label   \n\ndef get_training_dataset(dataset,do_aug=True):\n    dataset = dataset.map(data_augment, num_parallel_calls=AUTO)\n    if do_aug: dataset = dataset.map(transform, num_parallel_calls=AUTO)\n    dataset = dataset.repeat() # the training dataset must repeat for several epochs\n    dataset = dataset.shuffle(2048)\n    dataset = dataset.batch(BATCH_SIZE)\n    dataset = dataset.prefetch(AUTO) # prefetch next batch while training (autotune prefetch buffer size)\n    return dataset\n\ndef get_validation_dataset(dataset):\n    dataset = dataset.batch(BATCH_SIZE)\n    dataset = dataset.cache()\n    dataset = dataset.prefetch(AUTO) # prefetch next batch while training (autotune prefetch buffer size)\n    return dataset\n\ndef get_test_dataset(ordered=False):\n    dataset = load_dataset(TEST_FILENAMES, labeled=False, ordered=ordered)\n    dataset = dataset.batch(BATCH_SIZE)\n    dataset = dataset.prefetch(AUTO) # prefetch next batch while training (autotune prefetch buffer size)\n    return dataset\n\ndef count_data_items(filenames):\n    # the number of data items is written in the name of the .tfrec files, i.e. flowers00-230.tfrec = 230 data items\n    n = [int(re.compile(r\"-([0-9]*)\\.\").search(filename).group(1)) for filename in filenames]\n    return np.sum(n)\n\nNUM_TRAINING_IMAGES = int( count_data_items(TRAINING_FILENAMES) * (FOLDS-1.)/FOLDS )\nNUM_VALIDATION_IMAGES = int( count_data_items(TRAINING_FILENAMES) * (1./FOLDS) )\nNUM_TEST_IMAGES = count_data_items(TEST_FILENAMES)\nSTEPS_PER_EPOCH = NUM_TRAINING_IMAGES // BATCH_SIZE\n\nprint('Dataset: {} training images, {} validation images, {} unlabeled test images'.format(NUM_TRAINING_IMAGES, NUM_VALIDATION_IMAGES, NUM_TEST_IMAGES))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 3. Data Augmentation <a id=\"3\"></a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"Big Thanks to Chris Deotte for this\n\n<a href=\"https://www.kaggle.com/cdeotte/rotation-augmentation-gpu-tpu-0-96\">Rotation Augmentation GPU/TPU - [0.96+]</a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_mat(rotation, shear, height_zoom, width_zoom, height_shift, width_shift):\n    # returns 3x3 transformmatrix which transforms indicies\n        \n    # CONVERT DEGREES TO RADIANS\n    rotation = math.pi * rotation / 180.\n    shear = math.pi * shear / 180.\n    \n    # ROTATION MATRIX\n    c1 = tf.math.cos(rotation)\n    s1 = tf.math.sin(rotation)\n    one = tf.constant([1],dtype='float32')\n    zero = tf.constant([0],dtype='float32')\n    rotation_matrix = tf.reshape( tf.concat([c1,s1,zero, -s1,c1,zero, zero,zero,one],axis=0),[3,3] )\n        \n    # SHEAR MATRIX\n    c2 = tf.math.cos(shear)\n    s2 = tf.math.sin(shear)\n    shear_matrix = tf.reshape( tf.concat([one,s2,zero, zero,c2,zero, zero,zero,one],axis=0),[3,3] )    \n    \n    # ZOOM MATRIX\n    zoom_matrix = tf.reshape( tf.concat([one/height_zoom,zero,zero, zero,one/width_zoom,zero, zero,zero,one],axis=0),[3,3] )\n    \n    # SHIFT MATRIX\n    shift_matrix = tf.reshape( tf.concat([one,zero,height_shift, zero,one,width_shift, zero,zero,one],axis=0),[3,3] )\n    \n    return K.dot(K.dot(rotation_matrix, shear_matrix), K.dot(zoom_matrix, shift_matrix))\n\ndef transform(image,label):\n    # input image - is one image of size [dim,dim,3] not a batch of [b,dim,dim,3]\n    # output - image randomly rotated, sheared, zoomed, and shifted\n    DIM = IMAGE_SIZE[0]\n    XDIM = DIM%2 #fix for size 331\n    \n    rot = 15. * tf.random.normal([1],dtype='float32')\n    shr = 5. * tf.random.normal([1],dtype='float32') \n    h_zoom = 1.0 + tf.random.normal([1],dtype='float32')/10.\n    w_zoom = 1.0 + tf.random.normal([1],dtype='float32')/10.\n    h_shift = 16. * tf.random.normal([1],dtype='float32') \n    w_shift = 16. * tf.random.normal([1],dtype='float32') \n  \n    # GET TRANSFORMATION MATRIX\n    m = get_mat(rot,shr,h_zoom,w_zoom,h_shift,w_shift) \n\n    # LIST DESTINATION PIXEL INDICES\n    x = tf.repeat( tf.range(DIM//2,-DIM//2,-1), DIM )\n    y = tf.tile( tf.range(-DIM//2,DIM//2),[DIM] )\n    z = tf.ones([DIM*DIM],dtype='int32')\n    idx = tf.stack( [x,y,z] )\n    \n    # ROTATE DESTINATION PIXELS ONTO ORIGIN PIXELS\n    idx2 = K.dot(m,tf.cast(idx,dtype='float32'))\n    idx2 = K.cast(idx2,dtype='int32')\n    idx2 = K.clip(idx2,-DIM//2+XDIM+1,DIM//2)\n    \n    # FIND ORIGIN PIXEL VALUES           \n    idx3 = tf.stack( [DIM//2-idx2[0,], DIM//2-1+idx2[1,]] )\n    d = tf.gather_nd(image,tf.transpose(idx3))\n        \n    return tf.reshape(d,[DIM,DIM,3]),label","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"row = 3; col = 4;\nall_elements = get_training_dataset(load_dataset(TRAINING_FILENAMES),do_aug=False).unbatch()\none_element = tf.data.Dataset.from_tensors( next(iter(all_elements)) )\naugmented_element = one_element.repeat().map(transform).batch(row*col)\n\nfor (img,label) in augmented_element:\n    plt.figure(figsize=(15,int(15*row/col)))\n    for j in range(row*col):\n        plt.subplot(row,col,j+1)\n        plt.axis('off')\n        plt.imshow(img[j,])\n    plt.show()\n    break","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"row = 3; col = 4;\nall_elements = get_training_dataset(load_dataset(TRAINING_FILENAMES),do_aug=False).unbatch()\none_element = tf.data.Dataset.from_tensors( next(iter(all_elements)) )\naugmented_element = one_element.repeat().map(transform).batch(row*col)\n\nfor (img,label) in augmented_element:\n    plt.figure(figsize=(15,int(15*row/col)))\n    for j in range(row*col):\n        plt.subplot(row,col,j+1)\n        plt.axis('off')\n        plt.imshow(img[j,])\n    plt.show()\n    break","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"row = 3; col = 4;\nall_elements = get_training_dataset(load_dataset(TRAINING_FILENAMES),do_aug=False).unbatch()\none_element = tf.data.Dataset.from_tensors( next(iter(all_elements)) )\naugmented_element = one_element.repeat().map(transform).batch(row*col)\n\nfor (img,label) in augmented_element:\n    plt.figure(figsize=(15,int(15*row/col)))\n    for j in range(row*col):\n        plt.subplot(row,col,j+1)\n        plt.axis('off')\n        plt.imshow(img[j,])\n    plt.show()\n    break","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"row = 3; col = 4;\nall_elements = get_training_dataset(load_dataset(TRAINING_FILENAMES),do_aug=False).unbatch()\none_element = tf.data.Dataset.from_tensors( next(iter(all_elements)) )\naugmented_element = one_element.repeat().map(transform).batch(row*col)\n\nfor (img,label) in augmented_element:\n    plt.figure(figsize=(15,int(15*row/col)))\n    for j in range(row*col):\n        plt.subplot(row,col,j+1)\n        plt.axis('off')\n        plt.imshow(img[j,])\n    plt.show()\n    break","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 4. Pretrained Models Creation <a id=\"4\"></a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# Create Test, TRain and validation Data\n\ntrain_dataset_all = load_dataset(list(pd.DataFrame({'TRAINING_FILENAMES': TRAINING_FILENAMES})['TRAINING_FILENAMES']), labeled = True)\ntest_dataset_all = load_dataset(list(pd.DataFrame({'TEST_FILENAMES': TEST_FILENAMES})['TEST_FILENAMES']), labeled = True, ordered=True)\n\ntrain_dataset = load_dataset(list(pd.DataFrame({'TRAINING_FILENAMES_ONLY': TRAINING_FILENAMES_ONLY})['TRAINING_FILENAMES_ONLY']), labeled = True)\nval_dataset = load_dataset(list(pd.DataFrame({'VAL_FILENAMES_ONLY': VAL_FILENAMES_ONLY})['VAL_FILENAMES_ONLY']), labeled=True, ordered=True)\n\n\ntrain_all = get_training_dataset(train_dataset_all) #Both validation and train concatenated for final fitting\ntest = get_test_dataset(test_dataset_all)\ntest_images_ds = test.map(lambda image, idnum: image)\n\ntrain = get_training_dataset(train_dataset)\nval = get_validation_dataset(val_dataset)\n\ndef Xception_model():\n    with strategy.scope():\n        rnet = Xception(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\ndef VGG16_model():\n    with strategy.scope():\n        rnet = VGG16(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\ndef DenseNet201_model():\n    with strategy.scope():\n        rnet = DenseNet201(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\ndef InceptionV3_model():\n    with strategy.scope():\n        rnet = InceptionV3(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dropout(0.2),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\ndef EfficientNetB7_model():\n    with strategy.scope():\n        rnet = EfficientNetB7(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dropout(0.2),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\ndef ResNet152V2_model():\n    with strategy.scope():\n        rnet = ResNet152V2(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dropout(0.2),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\ndef MobileNetV2_model():\n    with strategy.scope():\n        rnet = MobileNetV2(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dropout(0.2),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\ndef InceptionResNetV2_model():\n    with strategy.scope():\n        rnet = InceptionResNetV2(\n            input_shape=(IMAGE_SIZE[0], IMAGE_SIZE[1], 3),\n            weights='imagenet',\n            include_top=False\n        )\n        # trainable rnet\n        rnet.trainable = True\n        model = tf.keras.Sequential([\n            rnet,\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dropout(0.2),\n            tf.keras.layers.Dense(len(CLASSES), activation='softmax',dtype='float32')\n        ])\n    model.compile(\n        optimizer='adam',\n        loss = 'sparse_categorical_crossentropy',\n        metrics=['sparse_categorical_accuracy']\n    )\n    return model\n\nmodels = {'Xception' : Xception_model,\n          'VGG16' : VGG16_model,\n          'DenseNet201' : DenseNet201_model,\n          'InceptionV3' : InceptionV3_model,\n         'EfficientNetB7' : EfficientNetB7_model, \n#           'ResNet152V2' : ResNet152V2_model, \n          'MobileNetV2' : MobileNetV2_model, \n#           'InceptionResNetV2' : InceptionResNetV2_model\n         }\nhistorys = {}\npredictions = {}\npredictions_val = {}\npredictions_prob = {}\n\nMODELS_NUMBER = 6 #By RAM constraints i took only 5 models","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 5. Transfer Learning and Prediction <a id=\"5\"></a>","execution_count":null},{"metadata":{"_kg_hide-output":true,"trusted":true},"cell_type":"code","source":"for name, model_ in models.items() :\n    print('Running ' + name)\n    model = model_()\n    plot_model(model, to_file= name+'.png', show_shapes=True)\n\n    history = model.fit(\n        train, \n        steps_per_epoch = STEPS_PER_EPOCH,\n        epochs = EPOCHS,\n        callbacks = [lr_callback],#, early_stopping],\n        validation_data = val,\n        verbose = 3\n    )\n    historys[name] = history # Save historys\n    predictions_val = np.argmax(model.predict(val), axis=-1)\n#     Train on Train and validation Data for prediction\n    del model\n    gc.collect()\n\n    model = model_()\n    history = model.fit(\n        train_all, \n        steps_per_epoch = STEPS_PER_EPOCH,\n        epochs = EPOCHS,\n        callbacks = [lr_callback],#, early_stopping],\n        verbose = 2\n    )\n    \n    predictions_prob[name] = model.predict_proba(test_images_ds)\n    predictions[name] = np.argmax(model.predict(test_images_ds), axis=-1)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Apply voting to all models output <a id=\"5.1\"></a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"df = pd.DataFrame(predictions)\npred = []\nfor i in range(0, 7382) :\n    if df.loc[i,:].unique().shape[0] < MODELS_NUMBER :\n        pred.append(stats.mode(df.loc[i,:].values)[0][0])\n    else :\n        pred.append(df.loc[i,'Xception'])\n        \ndf = pd.DataFrame(predictions_val)\npred_val = []\nfor i in range(0, 3712) :\n    if df.loc[i,:].unique().shape[0] < MODELS_NUMBER :\n        pred_val.append(stats.mode(df.loc[i,:].values)[0][0])\n    else :\n        pred_val.append(df.loc[i,'Xception'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"avg_prob = predictions_prob['Xception'] + predictions_prob['VGG16'] + predictions_prob['DenseNet201'] + predictions_prob['InceptionV3'] + predictions_prob['EfficientNetB7'] \npred_avg = pd.DataFrame(np.argmax(avg_prob, axis=-1))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 6. Models Performance <a id=\"6\"></a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Accuracy / Loss Evolution <a id=\"6.1\"></a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"import matplotlib.image as mpimg\n\ni = 1\nfig = plt.figure(figsize = [20,20])\nfor name, history in historys.items() :\n    \n    plt.subplot(8, 3, i)\n    i += 1\n#     display(Image(filename=name+'.png') )\n    img=mpimg.imread(name+'.png')\n    plt.title(name + ' Architecture')\n    plt.imshow(img)\n    \n    plt.subplot(8, 3, i)\n    i += 1\n    plt.plot(history.history['sparse_categorical_accuracy'])\n    plt.plot(history.history['val_sparse_categorical_accuracy'])\n    plt.title(name + ' accuracy')\n    plt.ylabel('accuracy')\n    plt.xlabel('epoch')\n    plt.legend(['train', 'test'], loc='upper left')\n#     plt.show()\n    \n    plt.subplot(8, 3, i)\n    i += 1\n    plt.plot(history.history['loss'])\n    plt.plot(history.history['val_loss'])\n    plt.title(name + ' loss')\n    plt.ylabel('loss')\n    plt.xlabel('epoch')\n    plt.legend(['train', 'test'], loc='upper left')\n#     plt.show()\n    \nplt.tight_layout()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Confusion Matrix <a id=\"6.2\"></a>\n\nInspired from <a href=\"https://www.kaggle.com/mgornergoogle/getting-started-with-100-flowers-on-tpu\">Getting started with 100+ flowers on TPU</a>\n","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def display_confusion_matrix(cmat, score, precision, recall):\n    plt.figure(figsize=(45,45))\n    ax = plt.gca()\n    ax.matshow(cmat, cmap='Reds')\n    ax.set_xticks(range(len(CLASSES)))\n    ax.set_xticklabels(CLASSES, fontdict={'fontsize': 18})\n    plt.setp(ax.get_xticklabels(), rotation=45, ha=\"left\", rotation_mode=\"anchor\")\n    ax.set_yticks(range(len(CLASSES)))\n    ax.set_yticklabels(CLASSES, fontdict={'fontsize': 18})\n    plt.setp(ax.get_yticklabels(), rotation=45, ha=\"right\", rotation_mode=\"anchor\")\n    titlestring = \"EfficientNet B7 with noisy-student weights\"\n    if score is not None:\n        titlestring += '\\n f1 = {:.3f} '.format(score)\n    if precision is not None:\n        titlestring += '\\n precision = {:.3f} '.format(precision)\n    if recall is not None:\n        titlestring += '\\n recall = {:.3f} '.format(recall)\n    if len(titlestring) > 0:\n        ax.text(101, 1, titlestring, fontdict={'fontsize': 30, 'horizontalalignment':'right', 'verticalalignment':'top', 'color':'#804040'})\n    plt.show()\n\ncmdataset = val\nimages_ds = cmdataset.map(lambda image, label: image)\nlabels_ds = cmdataset.map(lambda image, label: label).unbatch()\ncm_correct_labels = next(iter(labels_ds.batch(NUM_VALIDATION_IMAGES))).numpy() \n# cm_probabilities = model1.predict(images_ds)\ncm_predictions = pred_val\ncmat = confusion_matrix(cm_correct_labels, cm_predictions, labels=range(len(CLASSES)))\nscore = f1_score(cm_correct_labels, cm_predictions, labels=range(len(CLASSES)), average='macro')\nprecision = precision_score(cm_correct_labels, cm_predictions, labels=range(len(CLASSES)), average='macro')\nrecall = recall_score(cm_correct_labels, cm_predictions, labels=range(len(CLASSES)), average='macro')\ncmat = (cmat.T / cmat.sum(axis=1)).T \ndisplay_confusion_matrix(cmat, score, precision, recall)\nprint('f1 score: {:.3f}, precision: {:.3f}, recall: {:.3f}'.format(score, precision, recall))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Models Voting seems perform well =)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## 7. Submit predictions <a id=\"7\"></a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"test_ids_ds = test.map(lambda image, idnum: idnum).unbatch()\ntest_ids = next(iter(test_ids_ds.batch(NUM_TEST_IMAGES))).numpy().astype('U') # all in one batch\nnp.savetxt('submission_vote.csv', np.rec.fromarrays([test_ids, pred]), fmt=['%s', '%d'], delimiter=',', header='id,label', comments='')\nnp.savetxt('submission.csv', np.rec.fromarrays([test_ids, np.argmax(avg_prob, axis=-1)]), fmt=['%s', '%d'], delimiter=',', header='id,label', comments='')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":" <FONT size=\"5pt\"><p style=\"color:red\">If you like this approach please Upvote it will motivate me to continue =D, I hope you Enjoyed ;-)</p></FONT>","execution_count":null}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}