{"cells":[{"metadata":{},"cell_type":"markdown","source":"<center><img src=\"https://raw.githubusercontent.com/dimitreOliveira/MachineLearning/master/Kaggle/Flower%20Classification%20with%20TPUs/banner.png\" width=\"1000\"></center>\n<br>\n<center><h1>A detailed guide to custom training with TPUs - Flower Classification</h1></center>\n<br>\n\n### In this notebook, we will go through, step by step, training models with TPUs in a custom way. These includes:\n\n* use tf.data.Dataset as input pipeline\n* perform a custom training loop\n* correctly define loss function\n* make the custom training loop even faster\n* gradient accumulation with TPUs\n* apply oversampling to deal with imbalanced data\n* Have fun with a special data augmentaion - Perspective transformation\n\nThis kernel is based on the following kernels with my own extension (I keep some code in these 2 notebooks):\n1. [Getting started with 100+ flowers on TPU](https://www.kaggle.com/mgornergoogle/getting-started-with-100-flowers-on-tpu) - by Martin Görner.\n\n2. [Custom Training Loop with 100+ flowers on TPU](https://www.kaggle.com/mgornergoogle/custom-training-loop-with-100-flowers-on-tpu) - by Martin Görner.\n","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Table of Contents\n\n1. [TPU or GPU detection](#hardware-detection)\n2. [Competition data access](#data-access)\n3. [Configuration](#configuration)\n4. [Dataset functions](#dataset-functions)\n  * [Read from TFRecord files - raw dataset](#read-files)\n  * [Parse the raw dataset](#parse-dataset)\n  * [Working with tf.data.Dataset](#working-with-datasets)\n5. [Simple EDA](#simple-eda)\n  * [Dataset visualizations](#visualizations)\n  * [Label distribution](#label-distribution)\n6. [Oversampling](#oversampling)\n7. [Define the model and training process](#define-model)\n * [Model, metric and optimizer](#objects)\n     - [Loss classes and reduction](#loss-functions)\n * [Distributed dataset](#distributed-dataset)\n * [Distributed computation](#distributed-computation)\n    - [Optimized loops](#optimized-loops)\n * [Define the routines](#define-routines)\n    - [Loss calculation](#loss-calculation)\n    - [Collect the return values](#collecting) \n8. [Training](#training)\n9. [Data augmentation - Perspective transformation](#perspective-transformation)\n  * [Preview the effect of perspective transformation](#preview)\n  * [Play with perspective transformation in JavaScript](#play-pers-trans)\n  * [Implement perspective transformation in TensorFlow (batch)](#imp-pers-trans)\n  * [Visualize perspective transformation](#visu-pers-trans)\n10. [Conclusion](#conclusion)  ","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Import","execution_count":null},{"metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"import math, re, os, time\nimport datetime\nimport tensorflow as tf\nimport numpy as np\nfrom collections import namedtuple, Counter\nimport json\nfrom matplotlib import pyplot as plt\nfrom matplotlib import gridspec\nimport itertools \nfrom kaggle_datasets import KaggleDatasets\nimport sklearn\nfrom sklearn.metrics import f1_score, precision_score, recall_score, confusion_matrix\nimport pandas as pd\n\nprint(\"Tensorflow version \" + tf.__version__)\n\nfrom tensorflow.keras.applications import Xception\nfrom tensorflow.keras.applications import DenseNet121, DenseNet169, DenseNet201\nfrom tensorflow.keras.applications import ResNet50V2, ResNet101V2, ResNet152V2\nfrom tensorflow.keras.applications import InceptionV3\nfrom tensorflow.keras.applications import InceptionResNetV2\n\n# Only for tensorflow 2.3\n# from tensorflow.keras.applications import EfficientNetB0, EfficientNetB1, EfficientNetB2, EfficientNetB3, EfficientNetB4, EfficientNetB5, EfficientNetB6, EfficientNetB7\n\n!pip install -q efficientnet\nimport efficientnet.tfkeras as efn\n\nMODEL_CLASSES = {\n    'Xception': Xception,\n    'DenseNet121': DenseNet121,\n    'DenseNet169': DenseNet169,\n    'DenseNet201': DenseNet201,\n    'ResNet50V2': ResNet50V2,\n    'ResNet101V2': ResNet101V2,\n    'ResNet152V2': ResNet152V2,\n    'InceptionV3': InceptionV3,\n    'InceptionResNetV2': InceptionResNetV2,\n    'EfficientNetB0': efn.EfficientNetB0,\n    'EfficientNetB1': efn.EfficientNetB1,\n    'EfficientNetB2': efn.EfficientNetB2,\n    'EfficientNetB3': efn.EfficientNetB3,\n    'EfficientNetB4': efn.EfficientNetB4,\n    'EfficientNetB5': efn.EfficientNetB5,\n    'EfficientNetB6': efn.EfficientNetB6,\n    'EfficientNetB7': efn.EfficientNetB7,\n}\n\nimport gc\ngc.enable()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Tensorflow 2.3 and EfficientNet\n\nWith `TensorFlow 2.3` released recently, it is easier to import `EfficientNet` models. For example\n\n```\nfrom tensorflow.keras.applications import EfficientNetB7\n```","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# TPU or GPU detection<a id='hardware-detection'></a>\n\nIn order to use `TPU`, we use `TPUClusterResolver` for some initialization which is necessary to connect to the remote cluster and initialize cloud TPUs.\n\n1. When using TPU on Kaggle, you don't need to specify arguments for `TPUClusterResolver`.\n2. However, on Google Compute Engine, you need to do things like\n```\n    # The name you gave to the TPU to use\n    TPU_WORKER = 'my-tpu-name'\n    # or you can also specify the grpc path directly\n    # TPU_WORKER = 'grpc://xxx.xxx.xxx.xxx:8470'\n    \n    # The zone you chose when you created the TPU to use on GCP.\n    ZONE = 'europe-west4-a'\n    \n    # The name of the GCP project where you created the TPU to use on GCP.\n    PROJECT = 'my-tpu-project'\n    \n    tpu = tf.distribute.cluster_resolver.TPUClusterResolver(tpu=TPU_WORKER, zone=ZONE, project=PROJECT)\n```\n\nAlthough the tf documentation says it is the project name for the argument `project`, it is actually the `Project ID` you should specify when you check on the GCP project dashboard page.\n\n**References**:\n\n1. [Guide - Use TPUs](https://www.tensorflow.org/guide/tpu#tpu_initialization)\n\n2. [Doc - TPUClusterResolver](https://www.tensorflow.org/api_docs/python/tf/distribute/cluster_resolver/TPUClusterResolver)","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# Detect hardware, return appropriate distribution strategy\n\ntry:\n    # TPU detection. No parameters necessary if TPU_NAME environment variable is set. On Kaggle this is always the case.\n    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()  \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":{},"cell_type":"markdown","source":"# Competition data access<a id='data-access'></a>\nTPUs read data directly from Google Cloud Storage (GCS). This Kaggle utility will copy the dataset to a GCS bucket co-located with the TPU.  Once done, use `!ls /kaggle/input/` to list attached datasets.\n\n> Tips: If you have multiple datasets attached to the notebook, you should pass the name of a specific dataset to the `get_gcs_path()` function. (Here, the name of the dataset is the name of the directory it is mounted in.)","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"GCS_DS_PATH = KaggleDatasets().get_gcs_path('tpu-getting-started')\nprint(f'GCS_DS_PATH = {GCS_DS_PATH}\\n')\n\n# you can list the bucket with \"!gsutil ls $GCS_DS_PATH\"\n!gsutil ls $GCS_DS_PATH","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Configuration<a id='configuration'></a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"We use image size $192$ in this notebook to reduce the running time for the demonstration.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# At size `512`, a GPU will run out of memory, so we use the TPU.\n# For GPU training, please select 224 x 224 px image size.\nIMAGE_SIZE = [192, 192] \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# Select the dataset containing the size we chose above\nGCS_PATH = GCS_PATH_SELECT[IMAGE_SIZE[0]]\n\nTRAINING_FILENAMES = tf.io.gfile.glob(GCS_PATH + '/train/*.tfrec')\nVALIDATION_FILENAMES = tf.io.gfile.glob(GCS_PATH + '/val/*.tfrec')\nTEST_FILENAMES = tf.io.gfile.glob(GCS_PATH + '/test/*.tfrec') # predictions on this dataset should be submitted for the competition","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### All the classes","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"CLASSES = ['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']                                                                                                                                               # 100 - 103","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(f\"number of flower classes: {len(CLASSES)}\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Visualization utilities\ndata -> pixels, nothing of much interest for the machine learning practitioner in this section.","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# numpy and matplotlib defaults\nnp.set_printoptions(threshold=15, linewidth=80)\n\ndef batch_to_numpy_images_and_labels(data):\n    \n    if type(data) == tuple:\n        images, labels = data\n    else:\n        images = data\n        labels = None\n    \n    numpy_images = images.numpy()\n    \n    numpy_labels = [None for _ in enumerate(numpy_images)]\n    if labels is not None:\n        numpy_labels = labels.numpy()\n        if numpy_labels.dtype == object: # binary string in this case, these are image ID strings\n            numpy_labels = [None for _ in enumerate(numpy_images)]\n    \n    # If no labels, only image IDs, return None for labels (this is the case for test data)\n    return numpy_images, numpy_labels\n\ndef title_from_label_and_target(label, correct_label):\n    if correct_label is None:\n        return '{} {}'.format(CLASSES[label], label) , True\n    correct = (label == correct_label)\n    return \"{} [{}{}{}]\".format(\n        '{} {}'.format(CLASSES[label], label),\n        'OK' if correct else 'NO',\n        u\"\\u2192\" if not correct else '',\n        '{} {}'.format(CLASSES[correct_label], correct_label) if not correct else ''\n    ), correct\n\ndef display_one_flower(image, title, subplot, red=False, titlesize=16):\n    plt.subplot(*subplot)\n    plt.axis('off')\n    plt.imshow(image)\n    if len(title) > 0:\n        plt.title(title, fontsize=int(titlesize) if not red else int(titlesize/1.2), color='red' if red else 'black', fontdict={'verticalalignment':'center'}, pad=int(titlesize/1.5))\n    return (subplot[0], subplot[1], subplot[2]+1)\n    \ndef display_batch_of_images(databatch, predictions=None):\n    \"\"\"This will work with:\n    display_batch_of_images(images)\n    display_batch_of_images(images, predictions)\n    display_batch_of_images((images, labels))\n    display_batch_of_images((images, labels), predictions)\n    \"\"\"\n    \n    # data\n    images, labels = batch_to_numpy_images_and_labels(databatch)\n    if labels is None:\n        labels = [None for _ in enumerate(images)]\n        \n    # auto-squaring: this will drop data that does not fit into square or square-ish rectangle\n    rows = int(math.sqrt(len(images)))\n    cols = len(images)//rows\n        \n    # size and spacing\n    FIGSIZE = 13.0\n    SPACING = 0.1\n    subplot=(rows,cols,1)\n    if rows < cols:\n        plt.figure(figsize=(FIGSIZE,FIGSIZE/cols*rows))\n    else:\n        plt.figure(figsize=(FIGSIZE/rows*cols,FIGSIZE))\n    \n    # display\n    for i, (image, label) in enumerate(zip(images[:rows*cols], labels[:rows*cols])):\n        title = '' if label is None else '{} {}'.format(CLASSES[label], label)\n        correct = True\n        if predictions is not None:\n            title, correct = title_from_label_and_target(predictions[i], label)\n        dynamic_titlesize = FIGSIZE*SPACING/max(rows,cols)*40+3 # magic formula tested to work from 1x1 to 10x10 images\n        subplot = display_one_flower(image, title, subplot, not correct, titlesize=dynamic_titlesize)\n    \n    #layout\n    plt.tight_layout()\n    if label is None and predictions is None:\n        plt.subplots_adjust(wspace=0, hspace=0)\n    else:\n        plt.subplots_adjust(wspace=SPACING, hspace=SPACING)\n    plt.show()\n    plt.close()\n\ndef get_title(label, prediction):\n\n    title = '' if label is None else '{} {}'.format(CLASSES[label], label)\n    correct = True\n    if prediction is not None:\n        title, correct = title_from_label_and_target(prediction, label)\n    return title, correct\n\ndef display_one_flower_ax(image, label, prediction, ax, red=False, titlesize=16):\n\n    title, correct = get_title(label, prediction)\n    red = not correct\n    \n    ax.axis('off')\n    ax.imshow(image)\n    if len(title) > 0:\n        ax.set_title(title, fontsize=int(titlesize) if not red else int(titlesize / 1.2), color='red' if red else 'black', fontdict={'verticalalignment':'center'}, pad=int(titlesize / 1.5))        \n        \ndef display_pairs_of_image_batch(databatch, databatch_2=None, predictions=None, predictions_2=None, ds_name_1=None, ds_name_2=None):\n    \"\"\"This will work with:\n    display_batch_of_images(images)\n    display_batch_of_images(images, predictions)\n    display_batch_of_images((images, labels))\n    display_batch_of_images((images, labels), predictions)\n    \"\"\"\n\n    nb_databatch = 1\n    if databatch_2:\n        nb_databatch = 2\n    \n    # data\n    images, labels = batch_to_numpy_images_and_labels(databatch)\n    if labels is None:\n        labels = [None for _ in enumerate(images)]\n\n    # auto-squaring: this will drop data that does not fit into square or square-ish rectangle\n    rows = int(math.sqrt(len(images)))\n    cols = len(images) // rows        \n\n    gs0 = gridspec.GridSpec(1, nb_databatch)\n    gs00 = gridspec.GridSpecFromSubplotSpec(rows, cols, subplot_spec=gs0[0])\n    \n    if databatch_2:\n        images_2, labels_2 = batch_to_numpy_images_and_labels(databatch_2)\n        if labels_2 is None:\n            labels_2 = [None for _ in enumerate(images_2)]\n        gs01 = gridspec.GridSpecFromSubplotSpec(rows, cols, subplot_spec=gs0[1]) \n\n    # size and spacing\n    FIGSIZE = 24.0\n    SPACING = 0.10\n    subplot=(rows, cols, 1)\n\n    if rows < cols:\n        fig = plt.figure(figsize=(FIGSIZE, FIGSIZE / nb_databatch / cols * rows))\n    else:\n        fig = plt.figure(figsize=(FIGSIZE / rows * cols, FIGSIZE / nb_databatch))\n    \n    if ds_name_1 and ds_name_2:\n        fig.suptitle('2 batch of images. [Left: {}]   vs.   [Right: {}]'.format(ds_name_1, ds_name_2), y=-0.05, verticalalignment='bottom', fontsize=24)\n    elif ds_name_1:\n        fig.suptitle('1 batch of images from {}'.format(ds_name_1), y=-0.05, verticalalignment='bottom', fontsize=24)\n        \n    dynamic_titlesize = FIGSIZE * SPACING / max(rows, 2 * cols) * 40 + 3 # magic formula tested to work from 1x1 to 10x10 images          \n        \n    # display\n    for row, col in itertools.product(range(rows), range(cols)):\n        \n        idx = row * cols + col\n\n        image = images[idx]\n        label = labels[idx]\n        prediction = None if predictions is None else predictions[idx]\n        ax = fig.add_subplot(gs00[row, col])\n        display_one_flower_ax(image, label, prediction, ax, titlesize=dynamic_titlesize)\n        \n        if databatch_2:\n            image = images_2[idx]\n            label = labels_2[idx]\n            prediction = None if predictions_2 is None else predictions_2[idx]\n            ax = fig.add_subplot(gs01[row, col])\n            display_one_flower_ax(image, label, prediction, ax, titlesize=dynamic_titlesize)\n\n    #layout\n    plt.tight_layout()\n    \n    if label is None and predictions is None:\n        plt.subplots_adjust(wspace=SPACING / 2, hspace=SPACING / 2)\n    else:\n        plt.subplots_adjust(wspace=SPACING, hspace=SPACING)\n    \n    plt.show()\n    plt.close()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Dataset functions<a id='dataset-functions'></a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Read from TFRecord files - raw dataset<a id='read-files'></a>\n\nHere we use `tf.data.TFRecordDataset` to read some TFRecord files and peek the content.\n\nThe simplest way is to specify a list of filenames (paths) of TFRecord files to it.\nIt is a subclass of `tf.data.Dataset`.\n\nThe raw dataset contains `tf.train.Example` messages, and when iterated over it, we get scalar string tensors.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"raw_dataset = tf.data.TFRecordDataset(TRAINING_FILENAMES)\nraw_dataset","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Check an element in the raw dataset","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"serialized_example = next(iter(raw_dataset))\n\nprint('A serialized example looks like:\\n\\n' + str(serialized_example)[:100] + '...' * 5 + str(serialized_example)[-100:] + '\\n')\nprint(type(serialized_example))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Parse the raw dataset<a id='parse-dataset'></a>\n\nThe general recipe to parse the string tensors in the raw dataset is like:\n\n1. Create a description of the features. For example:\n\n```\n    feature_description = {    \n        'feature0': tf.io.FixedLenFeature([], tf.int64),\n        'feature1': tf.io.FixedLenFeature([], tf.string),\n        'feature2': tf.io.FixedLenFeature([], tf.float32),\n        ...\n    }\n```\n\n2. Define a parsing function by using `tf.io.parse_single_example` and the defined feature description.\n```\n    def _parse_function(example):\n        \"\"\"\n        Args:\n            example: A string tensor representing a `tf.train.Example`.\n        \"\"\"\n\n        # Parse `example`.\n        parsed_example = tf.io.parse_single_example(example, feature_description)\n        \n        return parsed_example\n```\n\n3. Map the raw dataset by `_parse_function`.\n```\ndataset = raw_dataset.map(_parse_function)\n```\n\nIn the following cell, we apply the above recipe to our flower classification datasets.\nThe parsed images are `tf.string`, which are then decoded with `tf.image.decode_jpeg`.\n\n**References**:\n1. [Tutorial - TFRecord and tf.Example](https://www.tensorflow.org/tutorials/load_data/tfrecord)\n\n2. [Doc - TFRecordDataset](https://www.tensorflow.org/api_docs/python/tf/data/TFRecordDataset)\n\n3. [Doc - tf.io.decode_jpeg](https://www.tensorflow.org/api_docs/python/tf/io/decode_jpeg)\n\n4. [Doc - tf.io.encode_jpeg](https://www.tensorflow.org/api_docs/python/tf/io/encode_jpeg)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### what if I don't know how to define the feature description for a raw dataset ...\n\nIf you are the author who created the TFRecord files, you definitely know how to define the feature description to parse the raw dataset.\n\nOtherwise, you can use like\n\n```\n    example = tf.train.Example()\n    example.ParseFromString(serialized_example.numpy())\n```\n\nto check the information. You will get something like\n\n```\n    features {\n      feature {\n        key: \"class\"\n        value {\n          int64_list {\n            value: 57\n          }\n        }\n      }\n      feature {\n        key: \"id\"\n        value {\n          bytes_list {\n            value: \"338ab7bac\"\n          }\n        }\n      }\n      feature {\n        key: \"image\"\n        value {\n          bytes_list {\n            value: .......\n```\nThis should give you enough information to define the feature description.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"example = tf.train.Example()\nexample.ParseFromString(serialized_example.numpy())\nprint(str(example)[:300] + ' ...')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Here is how we parse a serialized example in this flower classification dataset and obtain an image.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def decode_image(image_data):\n    \"\"\"\n    Args:\n        image_data: A `tf.string` obtained from `tf.io.encode_jpeg()`.\n    \"\"\"\n    \n    # image is now of type `tf.uint8`\n    image = tf.image.decode_jpeg(image_data, channels=3)\n    \n    # convert image to floats in [0, 1] range\n    image = tf.cast(image, tf.float32) / 255.0  \n    \n    # explicit size needed for TPU\n    image = tf.reshape(image, [*IMAGE_SIZE, 3]) \n    \n    return image\n\ndef read_labeled_tfrecord(example):\n    \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    parsed_example = tf.io.parse_single_example(example, LABELED_TFREC_FORMAT)\n    image = decode_image(parsed_example['image'])\n    label = tf.cast(parsed_example['class'], tf.int32)\n    \n    return image, label # returns a dataset of (image, label) pairs\n\ndef read_unlabeled_tfrecord(example):\n    \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    }\n    parsed_example = tf.io.parse_single_example(example, UNLABELED_TFREC_FORMAT)\n    image = decode_image(parsed_example['image'])\n    idnum = parsed_example['id']\n    \n    return image, idnum # returns a dataset of (image, id) pairs","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"parsed_example = read_labeled_tfrecord(serialized_example)\nprint('A parsed example looks like\\n\\n' + str(parsed_example)[:200] + '\\n...')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Working with tf.data.Dataset<a id='working-with-datasets'></a>\n\nWith the above parsing methods defined, we can define how to load the dataset with more options and further apply shuffling, bacthing, etc. In particular:\n\n\n* Use `num_parallel_reads` in `tf.data.TFRecordDataset` to read files in parallel.\n* Set `tf.data.Options.experimental_deterministic=False` and use it to get a new dataset that ignores the order of elements.\n* Use `num_parallel_calls` in `tf.data.Dataset.map()` method to have parallel processing.\n* Use `tf.data.Dataset.prefetch()` to allow later batches to be prepared while the current batch is being processed.\n\nThe parallel processing and prefetching are particular important when working with TPU. Since TPU can process batches very quickly, the dataset pipeline should be able to provide data for TPU efficiently, otherwise the TPU will be idle.\n\n**References**:\n1. [Guide - tf.data: Build TensorFlow input pipelines](https://www.tensorflow.org/guide/data)\n2. [Guide - Better performance with the tf.data API](https://www.tensorflow.org/guide/data_performance)\n3. [Doc - Dataset](https://www.tensorflow.org/api_docs/python/tf/data/Dataset)","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def load_dataset(filenames, labeled=True, ordered=False):\n    \"\"\"Read from TFRecords.\n    \n    For optimal performance, reading from multiple files at once and disregarding data order (if `ordered=False`).\n\n    Order does not matter since we will be shuffling the data anyway (for training dataset).\n    \"\"\"\n\n    options = tf.data.Options()\n    if not ordered:\n        # disable order, increase speed\n        options.experimental_deterministic = False\n\n    # Read in an automatically interleaving way from multiple tfrecord files.\n    dataset = tf.data.TFRecordDataset(filenames, num_parallel_reads=tf.data.experimental.AUTOTUNE)\n    \n    # Uses data as soon as it streams in, rather than in its original order.\n    dataset = dataset.with_options(options) \n    \n    # parse and return a dataset of (image, label) pairs if labeled=True or (image, id) pairs if labeled=False\n    dataset = dataset.map(\n        read_labeled_tfrecord if labeled else read_unlabeled_tfrecord,\n        num_parallel_calls=tf.data.experimental.AUTOTUNE,\n    )\n    \n    return dataset\n\ndef get_training_dataset(batch_size, shuffle_buffer_size, repeat_dataset=False, ordered=False, drop_remainder=True):\n    \"\"\"\n    Set `shuffle_buffer_size` to `1` to have no shuffling.\n    \"\"\"\n    \n    dataset = load_dataset(TRAINING_FILENAMES, labeled=True, ordered=ordered)\n    \n    # Repeat the training dataset. We will determine the number of steps (or updates) later for 1 training epoch.\n    if repeat_dataset:\n        dataset = dataset.repeat()\n    \n    # Shuffling\n    if not ordered:\n        dataset = dataset.shuffle(shuffle_buffer_size)\n    \n    # Batching\n    dataset = dataset.batch(batch_size, drop_remainder=drop_remainder)\n    \n    # prefetch next batch while training (autotune prefetch buffer size)\n    dataset = dataset.prefetch(tf.data.experimental.AUTOTUNE)\n    \n    return dataset\n\ndef get_validation_dataset(batch_size):\n    \n    dataset = load_dataset(VALIDATION_FILENAMES, labeled=True, ordered=True)\n    dataset = dataset.batch(batch_size)\n    dataset = dataset.prefetch(tf.data.experimental.AUTOTUNE)\n    \n    return dataset\n\ndef get_test_dataset(batch_size):\n    \n    dataset = load_dataset(TEST_FILENAMES, labeled=False, ordered=True)\n    dataset = dataset.batch(batch_size)\n    dataset = dataset.prefetch(tf.data.experimental.AUTOTUNE) \n    \n    return dataset\n\ndef count_data_items(filenames):\n    # For this flower dataset, the number of data items is written in the name of .tfrec files.\n    # For example, `flowers00-230.tfrec` means 230 data items in it.\n    n = [int(re.compile(r\"-([0-9]*)\\.\").search(filename).group(1)) for filename in filenames]\n    return np.sum(n)\n\nORIGINAL_NUM_TRAINING_IMAGES = count_data_items(TRAINING_FILENAMES)\nNUM_VALIDATION_IMAGES = count_data_items(VALIDATION_FILENAMES)\nNUM_TEST_IMAGES = count_data_items(TEST_FILENAMES)\n\nprint('Original Dataset:\\n\\n{} training images\\n{} validation images\\n{} unlabeled test images'.format(ORIGINAL_NUM_TRAINING_IMAGES, NUM_VALIDATION_IMAGES, NUM_TEST_IMAGES))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Check what a batch looks like<a id=\"check-batch\"></a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Info about a train dataset","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"ds = get_training_dataset(batch_size=3, shuffle_buffer_size=1)\nds","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### A train batch","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"batch = next(iter(ds))\nprint('The batch is a {} with {} components.'.format(type(batch).__name__, len(batch)))\nprint('\\nThe 1st compoent is a {} with shape {}'.format(type(batch[0]).__name__, batch[0].shape))\nprint('The 2nd compoent is a {} with shape {}\\n'.format(type(batch[1]).__name__, batch[1].shape))\n\nprint('The 2nd compoent looks like')\nbatch[1]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Info about a test dataset","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"ds = get_test_dataset(batch_size=3)\nds","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### A test batch","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"batch = next(iter(ds))\nprint('The batch is a {} with {} components.'.format(type(batch).__name__, len(batch)))\nprint('\\nThe 1st compoent is a {} with shape {}'.format(type(batch[0]).__name__, batch[0].shape))\nprint('The 2nd compoent is a {} with shape {}'.format(type(batch[1]).__name__, batch[1].shape))\n\nprint('\\nThe 2nd compoent looks like')\nbatch[1]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Simple EDA<a id='simple-eda'></a>\n\nIn this EDA section, we create datasets of batch size 16. These are only used for visualizations and for getting some statistics about the datasets. Later, we will create actual datasets for training, validation and testing.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Dataset visualizations<a id='visualizations'></a>\n### Let's look some samples from the train/validation/test datasets.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Training samples","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# Peek the training data\ntrain_dataset = get_training_dataset(batch_size=16, shuffle_buffer_size=1, ordered=True, drop_remainder=False)\ntrain_iter = iter(train_dataset)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# run this cell again for next set of images\nbatch = next(train_iter)\ndisplay_batch_of_images(batch)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Validation samples","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# peek the validation data\nvalid_dataset = get_validation_dataset(batch_size=16)\nvalid_iter = iter(valid_dataset)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# run this cell again for next set of images\ndisplay_batch_of_images(next(valid_iter))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Testing samples","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# peek the test data\ntest_dataset = get_test_dataset(batch_size=16)\ntest_iter = iter(test_dataset)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# run this cell again for next set of images\ndisplay_batch_of_images(next(test_iter))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Number of dataset examples","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"print('Original Dataset:\\n\\ntraining images: {}\\nvalidation images: {}\\ntest images {}'.format(ORIGINAL_NUM_TRAINING_IMAGES, NUM_VALIDATION_IMAGES, NUM_TEST_IMAGES))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Label distribution<a id=\"label-distribution\"></a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Get labels and counting","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"We use \n```\n@tf.autograph.experimental.do_not_convert\n```\nto tell tensorflow not to convert the function `get_label_counting`, otherwise we get the following warning\n> WARNING: AutoGraph could not transform <function get_label_counting.<locals>.<lambda> at 0x7f0690681830> and will run it as-is.\n\nThis is OK, because this function is not used in our input pipeline, so not converting it to graph won't slow down the pipeline.","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"@tf.autograph.experimental.do_not_convert\ndef get_label_counting(labeled_dataset):\n    \n    c = Counter()\n    labels = []\n    for batch in labeled_dataset.map(lambda image, label: label, num_parallel_calls=tf.data.experimental.AUTOTUNE):\n        labels.append(batch)\n    \n    labels = tf.concat(labels, axis=0).numpy()\n    c.update(labels)\n\n    return labels, c","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":false},"cell_type":"code","source":"train_labels, train_counter = get_label_counting(train_dataset)\nvalid_labels, valid_counter = get_label_counting(valid_dataset)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Plot label distribution","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"def plot_label_dist(labels, dist_1, dist_2, dist_label_1, dist_label_2, title=''):\n    \n    x = np.arange(len(labels)) # the label locations\n    width = 0.4 # the width of the bars\n\n    fig, ax = plt.subplots(figsize=(15, 5))\n    rects1 = ax.bar(x - width / 2, dist_1, width, label=dist_label_1)\n    rects2 = ax.bar(x + width / 2, dist_2, width, label=dist_label_2)\n\n    # Add some text for labels, title and custom x-axis tick labels, etc.\n    ax.set_ylabel('portion in dataset')\n    ax.set_title(title)\n    ax.set_xticks(x)\n    ax.set_xticklabels([str(x) if x % 5 in [0] else '' for x in range(len(labels))] )\n    ax.legend()\n\n    plt.show()\n    plt.close()","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"labels = list(range(len(CLASSES)))\ndist_train = [train_counter[x] / ORIGINAL_NUM_TRAINING_IMAGES for x in labels]\ndist_valid = [valid_counter[x] / NUM_VALIDATION_IMAGES for x in labels]    \n    \nhalf = len(labels) // 2\nplot_label_dist(\n    labels[:half],\n    dist_train[:half],\n    dist_valid[:half],\n    'Train',\n    'Valid',\n    title='Label distribution in Train/Valid datasets: Labels 0-{}'.format(half - 1)\n)\n\nplot_label_dist(\n    labels[half:],\n    dist_train[half:],\n    dist_valid[half:],\n    'Train',\n    'Valid',    \n    title='Label distribution in Train/Valid datasets: Labels {}-{}'.format(half, len(labels) - 1)\n)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"From the above label distribution plots for training and validation datasets, we see that the distributions are almost identical. However, the labels are very imbalanced. This leads to the next section - Oversampling - to deal with such case.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Oversampling<a id='oversampling'></a>\n\nHere are 2 common techniques for dealing with imbalanced data:\n\n* Class weights\n    \n    This makes the classifier weight more on those examples with labels in the minority classes. \n\n\n* Oversampling\n\n   The idea is to extend the dataset by repeating the examples in the minority classes.\n   \nHere is a quote from [Classification on imbalanced data](https://www.tensorflow.org/tutorials/structured_data/imbalanced_data):\n  \n> If the training process were considering the whole dataset on each gradient update, this oversampling would be basically identical to the class weighting.  \n> But when training the model batch-wise, as you did here, the oversampled data provides a smoother gradient   signal: Instead of each positive example being shown in one batch with a large weight, they're shown in many different batches each time with a small weight.\n\nIn this notebook, we decide to focus on applying oversampling and compare it to training without oversampling.\nThe comparison between class weights and oversampling could be found in the reference.\n\n**References:** \n\n1. [Tutorial - Classification on imbalanced data](https://www.tensorflow.org/tutorials/structured_data/imbalanced_data)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Step 1: Review the number of occurrence of each class\n\nWe use the counter `train_counter` computed in the [Label distribution](#label-distribution) subsection.","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"print(\"labels in the original training dataset, sorted by occurrence\\n\")\nprint(\"pairs of (class id, counting)\\n\")\nprint(train_counter.most_common())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Step 2: Determine how many times an example in a class should repeat\n\nThe objective of our approach is to have a (more) balanced dataset, where the number of occurrence of each class is much closer to those of other classes than it is in the original training dataset.\n\nFrom the above counting, we see that the majority class is class 67 which occurs 782 times, while the minority classes are class 44, 34 and 6, which occur 18 times each.  \n\nFor a given number $N$, we will construct a new dataset where each class occurs approximately $N$ times. For example, if we specify $N = 782$, the new dataset will have about $782$ examples for each class, which is clearly balanced.\n\nFor the flexbility of our experiments, we allow $N$ to be lower, say, `100` or `300`. These still give imbalanced dataset, but less imbalanced than the original dataset.\n\nGiven a such number $N$ and a class $y$, for any training example $\\mathbb{x}$ in the original dataset with label $y$, we now determine the number of times the example $\\mathbb{x}$ should repeat in order to obtain a dataset having the property discussed in the prevous paragraphs.\nAt a first attempt, this will be a float number, which is the ideal value. Based on it, the actual number of times the example $\\mathbb{x}$ will repeat is determined in a randomized way to make the number of occurrences of each class roughly $N$. For example, if examples in class $y$ should repeat $2.7$ times, then they will repeat $2$ times with a probability $0.3$ and $3$ times with a probability $0.7$.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_num_to_repeat_for_class(class_id, target_counting):\n    \"\"\"Compute the (ideal) number of times a training example with\n       label `class_id` should repeat in order to get a dataset where\n       each class occur `target_counting` times.\n       \n    The return value is a float number. The actual number to repeat will\n    be determined in the function `get_nums_to_repeat` in a randomized way,\n    in order to make a better approximation.\n       \n    Args:\n    \n        class_id: int, the id of a class.\n        target_counting: int, the targeted occurrence number.\n        \n    Returns:\n        A float, the number of times an example with label `class_id` to repeat.\n    \"\"\"\n    \n    # Use the counter computed in `Label distribution` subsection`.\n    counting = train_counter[class_id]\n    \n    # No need to repeat for a class having already the desired occurrecne.\n    if counting >= target_counting:\n        return 1.0\n    \n    num_to_repeat = target_counting / counting\n    \n    return num_to_repeat\n\ndef get_nums_to_repeat(target_counting):\n    \"\"\"Compute a tabel that stores the results of `get_num_to_repeat_for_class`\n       for every class and for the given `target_counting`.\n    \n    Args:\n        target_counting: int, the targeted occurrence number.\n    \n    Returns:\n        table: A `tf.lookup.StaticHashTable`.\n        d: A dictionary storing the same information as `table`.\n    \"\"\"\n    \n    keys = range(len(CLASSES))\n    values = [get_num_to_repeat_for_class(x, target_counting) for x in keys]\n\n    keys_tensor = tf.constant(keys)\n    vals_tensor = tf.constant(values)\n    \n    table_initializers = tf.lookup.KeyValueTensorInitializer(keys_tensor, vals_tensor)\n    table = tf.lookup.StaticHashTable(table_initializers, default_value=0.0)\n    \n    d = {k: v for k, v in zip(keys, values)}\n\n    return table, d\n\ndef get_num_to_repeat_for_example(example, table):\n    \"\"\"Compute the actual number of times a training example will repeat\n       in order to get a dataset where each class occur <approximately> \n       N times with N being a pre-defined number that is used for constructing\n       `table`.\n\n    Args:\n        example: A tuple of 2 tensors, which is a labeled training example and\n            represented as (image, label).\n                          \n        tabel: A tf.lookup.StaticHashTable, as obtained from `get_nums_to_repeat`.\n                          \n    Returns:\n        A tf.int64 scalar tensor, the number of times `example` will repeat.\n    \"\"\"\n    \n    image, label = example\n\n    num_to_repeat = table.lookup(label)    \n    \n    # This part is deterministic.\n    num_to_repeat_integral = tf.cast(int(num_to_repeat), tf.float32)\n    \n    # With a probability `residue`, we allow `example` to repeat one more time.\n    residue = num_to_repeat - num_to_repeat_integral\n    num_to_repeat = num_to_repeat_integral + tf.cast(tf.random.uniform(shape=()) <= residue, tf.float32)\n    \n    return tf.cast(num_to_repeat, tf.int64)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### A remark about using tf.lookup.StaticHashTable\n\nHere we use `tf.lookup.StaticHashTable` instead of a python dictionary because the dataset transformations involve tensorflow tensors which are not hashable.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Let's check the number of times an example should repeat\n\nHere, we take $N = 782$.","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"_, d = get_nums_to_repeat(782)\nd = sorted(d.items(), key=lambda x: x[1], reverse=True)\n\nprint('pair of (class id, num to repeat)\\n')\nfor x in d:\n    print(x)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Step 3. A method to get oversampled datasets\n\nNow we are ready to define a method that can return oversampled datasets.\n\nThere is an argument `augmentation_fn` that won't be used for now. After we define our own data augmentation method in [Data augmentation - Perspective transformation](#perspective-transformation), we can pass it to `augmentation_fn` to make the oversampled dataset having more diversity.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_oversampled_training_dataset(\n        target_counting, batch_size, shuffle_buffer_size,\n        repeat_dataset=False, ordered=False,\n        oversample=True, augmentation_fn=None, probability=1.0\n    ):\n    \"\"\"\n    Construct an oversampled dataset in which each class occurs approximately\n    `target_counting` times.\n    \n    (Special) Args:\n    \n        target_counting: int, the target occurrence.\n        oversampe: bool, if to use oversampling. If `False`, no oversampliing and\n            the arguement `target_counting` has no effect.\n        augmentation_fn: A funtion used to map the dataset for data augmentation.\n        probability: float, the probability to perform the augmentation\n        \n    Returns:\n        A tf.data.Dataset.\n    \"\"\"\n    \n    table, d = get_nums_to_repeat(target_counting)\n    \n    nb_examples = ORIGINAL_NUM_TRAINING_IMAGES\n    \n    dataset = load_dataset(TRAINING_FILENAMES, labeled=True, ordered=ordered)\n\n    if oversample:\n        \n        # This is only approximation, but good enough.\n        nb_examples = int(sum([train_counter[k] *  v for k, v in d.items()]))\n        \n        dataset = dataset.flat_map(\n            lambda image, label: tf.data.Dataset.from_tensors((image, label)).repeat(get_num_to_repeat_for_example((image, label), table))\n        )\n        \n    if repeat_dataset:\n        dataset = dataset.repeat()\n \n    if not ordered:\n        if not shuffle_buffer_size:\n            shuffle_buffer_size = nb_examples\n        dataset = dataset.shuffle(shuffle_buffer_size)\n    \n    dataset = dataset.batch(batch_size, drop_remainder=True)\n    \n    if augmentation_fn:\n        probability = tf.constant(probability, dtype=tf.float32)\n        dataset = dataset.map(\n            lambda images, labels: augmentation_fn(images, labels, probability=probability),\n            num_parallel_calls=tf.data.experimental.AUTOTUNE\n        )\n        \n    dataset = dataset.prefetch(tf.data.experimental.AUTOTUNE)\n    \n    return dataset, nb_examples","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Check an oversampled dataset\n\nNow, we create an oversampled dataset with `target_counting=782`, i.e. each class occurs the same time as the most frequent class in the original training dataset. We verify the results to make sure that the above codes work as expected.\n\nAgain, this oversampled dataset is only used for the visualizations and the analysis. We will create the actual oversampled dataset for training later.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### some statistics (for $N=782$)","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"oversampled_train_dataset, _ = get_oversampled_training_dataset(target_counting=782, batch_size=16, shuffle_buffer_size=1, repeat_dataset=False, ordered=True, oversample=True, augmentation_fn=None)\n\n_, oversampled_train_counter = get_label_counting(oversampled_train_dataset)\n\nprint('Oversampled training dataset:\\ntraining images: {}\\n'.format(sum(oversampled_train_counter.values())))\n\nprint(\"labels in the oversampled training dataset, sorted by occurrence: pairs of (label_id, label_counting)\\n\")\nprint(oversampled_train_counter.most_common())\n\nprint('\\n' + 'averaged number of occurrences: ', np.array(list(oversampled_train_counter.values())).mean())","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### compare label distributions","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"dist_train_oversampled = np.array([oversampled_train_counter[x] for x in labels]) / sum(oversampled_train_counter.values())\n\nhalf = len(labels) // 2\nplot_label_dist(\n    labels[:half],\n    dist_train[:half],\n    dist_train_oversampled[:half],\n    'original',\n    'oversampled',\n    title='Label distribution in train datasets with/without oversampling: Labels 0-{}'.format(half - 1)\n)\n\nplot_label_dist(\n    labels[half:],\n    dist_train[half:],\n    dist_train_oversampled[half:],\n    'original',\n    'oversampled',    \n    title='Label distribution in train datasets with/without oversampling: Labels {}-{}'.format(half, len(labels) - 1)\n)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"It is very clear that the oversampled training dataset we just created is super balanced. The argument `target_counting` is set to $782$, and in the oversampled datasets, the number of occurrences for all classes is inside the range from $750$ to $800$ with a mean very close to $782$.\n\nIt is also important to keep in mind that, althoug we have created a super balanced training dataset, the label distribution is now much more different from the label distribution in the validation dataset.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### original / oversampled datasets - samples side by side \n\nLet's look a few sample batches in the original dataset and in the oversampled dataset.","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# Peek the oversampled training data\ntrain_iter = iter(train_dataset)\noversampled_train_iter = iter(oversampled_train_dataset)\n\ndisplay_pairs_of_image_batch(next(train_iter), next(oversampled_train_iter), ds_name_1='original dataset', ds_name_2='oversampled dataset')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"From the above figures, we see the images do repeat in the oversampled dataset. Since we set `ordered=True` when we created the previous datasets, there is no shuffling. Therefore, the oversampled dataset often has a lot of same images in the same batch. When we create the actual training dataset, we will shuffle it and the same images will usually appear in different batches.\n\nHowever, even with shuffling, having exactly the same images appear a lot of times is still not desired, because it is equivalent to training with more epochs, and a model will be very likely overfitted.\n\nIn image classification tasks, data augmentation is a natural approach and a commn technique to improve results and avoid overfitting. With data augmentation, the same images will be transformed to different (but related) images, which is an important step to take, in particular for an oversampled dataset. We will discuss this later in section [Data augmentation - Perspective transformation](#perspective-transformation).","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Define the model and training process<a id='define-model'></a>\n\nAfter the input pipeline is defined, we are ready to see how to create models and how to train them using TPU.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Create a trainer to make the experminents easier\n\nThe next cell has nothing related to tensorflow / TPU. It just contains some stuffs that make our experminents and presentation easier. The actual model definition and training process are defined in the subsequent cells.\n\nYou can check it if you want to know how our training works in a high level.","execution_count":null},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"class Flower_Trainer:\n    \n    def __init__(self, batch_size_per_replica=16, prediction_batch_size_per_replica=64, shuffle_buffer_size=1, oversample=False, target_counting=1, grad_acc_steps=1, augmentation_fn=None, probability=1.0, log_interval=1):\n    \n        self.batch_size_per_replica = batch_size_per_replica\n        self.prediction_batch_size_per_replica = prediction_batch_size_per_replica\n        \n        self.batch_size = batch_size_per_replica * strategy.num_replicas_in_sync\n        self.prediction_batch_size = prediction_batch_size_per_replica * strategy.num_replicas_in_sync\n\n        self.grad_acc_steps = grad_acc_steps\n        self.update_size = self.batch_size * self.grad_acc_steps\n        \n        self.shuffle_buffer_size = shuffle_buffer_size\n        self.oversample = oversample\n        self.target_counting = target_counting\n        \n        self.augmentation_fn = augmentation_fn\n        \n        self.train_ds, self.nb_examples_approx = get_oversampled_training_dataset(\n            self.target_counting, self.update_size, self.shuffle_buffer_size,\n            repeat_dataset=True, ordered=False,\n            oversample=self.oversample, augmentation_fn=self.augmentation_fn,\n            probability=probability\n        )\n\n        self.updates_per_epoch = self.nb_examples_approx // self.update_size        \n        \n        self.valid_ds = get_validation_dataset(self.prediction_batch_size)\n        self.test_ds = get_test_dataset(self.prediction_batch_size)\n        \n        self.log_interval = log_interval\n         \n    def train(self, train_name, model_name, epochs, start_lr, max_lr, end_lr, warmup, lr_scaling, optimized_loop=False, verbose=False):\n        \n        update_steps = epochs * self.updates_per_epoch\n        warmup_steps = int(update_steps * warmup)\n        \n        model, loss_fn, optimizer, gradient_accumulator, metrics = get_model(model_name, update_steps, warmup_steps, start_lr, max_lr, end_lr, lr_scaling, verbose=verbose)\n        \n        dist_train_1_epoch_optimized, dist_train_1_epoch_normal, dist_predict_step  = get_routines(\n            model, loss_fn, optimizer, gradient_accumulator, metrics, self.batch_size_per_replica, self.update_size, self.grad_acc_steps, self.updates_per_epoch\n        )\n\n        dist_train_1_epoch = dist_train_1_epoch_normal\n        if optimized_loop:\n             dist_train_1_epoch = dist_train_1_epoch_optimized\n        \n        train_fn = get_train_fn(dist_train_1_epoch, dist_predict_step, loss_fn, metrics, log_interval=self.log_interval)\n        history, valid_labels, valid_preds = train_fn(train_name, epochs, self.train_ds, self.valid_ds, self.test_ds, self.updates_per_epoch)\n        \n        return history, valid_labels, valid_preds","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Linear learning rate with warmup\n\nWarmup is commonly used in learning rate schedule where we start training a model with a much smaller learning rate and increase it during the first few epochs/steps until the initial learning rate is used.\n\nIntuitively, it allows a model to adjust itself less before it becomes more familiar with the dataset. For adaptive optimisers like Adam, warmup also allows the optimizers to compute bettere statistics of the gradients.\n\nHere we present a very simple way that turns any learnning rate schedule without warmup into a version that uses warmup. This is only for educational purpose, and we will use a constant learning rate later in this notebook.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"class WarmupLearningRateSchedule(tf.keras.optimizers.schedules.LearningRateSchedule):\n\n    def __init__(self, backend_schedule, start_lr, max_lr, end_lr, opt_steps, warmup_steps, lr_scaling):\n\n        self.start_lr = start_lr\n        self.max_lr = max_lr\n        self.end_lr = end_lr\n        self.opt_steps = tf.cast(opt_steps, tf.float32)\n        self.warmup_steps = tf.cast(warmup_steps, tf.float32)\n        self.lr_scaling = tf.cast(lr_scaling, tf.float32)\n        self.backend_lr = backend_schedule\n\n        self.warmup_incremental = (self.max_lr - self.start_lr) / tf.math.reduce_max([self.warmup_steps, 1.0]) * tf.cast(self.warmup_steps > 0.0, tf.float32)\n\n    def __call__(self, step):\n\n        is_warmup = tf.cast(step < self.warmup_steps, tf.float32)\n        warmup_lr = self.warmup_incremental * step + self.start_lr\n        decay_lr = self.backend_lr(step - self.warmup_steps)\n        lr = (1.0 - is_warmup) * decay_lr + is_warmup * warmup_lr\n\n        return lr * self.lr_scaling","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### visualize the learning rate schedule\n\nLet's use the above code to turn learning rate schedules to use warmup and visualize them.","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def plot_lr_schedule(lr_schedule, n_steps):\n\n    steps = [i for i in range(n_steps)]\n    lrs = [lr_schedule(x) for x in steps]\n    plt.plot(steps, lrs)\n    print(\"Learning rate schedule: {:.3g} to {:.3g} to {:.3g}\".format(lrs[0], max(lrs), lrs[-1])) \n    plt.show()\n    \ndef plot_lr_schedule_pair(lr_schedule_1, lr_schedule_2, n_steps):\n    \n    steps = [i for i in range(n_steps)]\n    \n    plt.figure(figsize=(11.0, 6.0 / 2))\n    \n    lrs = [lr_schedule_1(x) for x in steps]\n    plt.subplot(1, 2, 1)\n    plt.plot(steps, lrs)\n    plt.title('original lr', fontsize=14, color='black', fontdict={'verticalalignment':'center'}, pad=12.0)\n          \n    lrs = [lr_schedule_2(x) for x in steps]\n    plt.subplot(1, 2, 2)\n    plt.plot(steps, lrs)\n    plt.title('warmup lr', fontsize=14, color='black', fontdict={'verticalalignment':'center'}, pad=12.0)\n    \n    plt.show()\n    \n    \nopt_steps, start_lr, max_lr, end_lr, lr_scaling = 1000, 1e-7, 1e-5, 1e-6, 1\n\nwarmup_steps = 0\nbackend_lr = tf.keras.optimizers.schedules.ExponentialDecay(\n    max_lr, opt_steps - warmup_steps, decay_rate=(end_lr / max_lr),\n)\nlr_rate1 = WarmupLearningRateSchedule(backend_lr, start_lr, max_lr, end_lr, opt_steps, warmup_steps, lr_scaling)\n\nwarmup_steps = 0\nbackend_lr = tf.keras.optimizers.schedules.PolynomialDecay(\n    initial_learning_rate=max_lr, decay_steps=(opt_steps - warmup_steps), end_learning_rate=end_lr, power=1.0\n)\nlr_rate3 = WarmupLearningRateSchedule(backend_lr, start_lr, max_lr, end_lr, opt_steps, warmup_steps, lr_scaling)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Exponential Decay","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"warmup_steps = 200\nbackend_lr = tf.keras.optimizers.schedules.ExponentialDecay(\n    max_lr, opt_steps - warmup_steps, decay_rate=(end_lr / max_lr),\n)\nlr_rate2 = WarmupLearningRateSchedule(backend_lr, start_lr, max_lr, end_lr, opt_steps, warmup_steps, lr_scaling)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plot_lr_schedule_pair(lr_rate1, lr_rate2, opt_steps)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Linear Decay","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"warmup_steps = 200\nbackend_lr = tf.keras.optimizers.schedules.PolynomialDecay(\n    initial_learning_rate=max_lr, decay_steps=(opt_steps - warmup_steps), end_learning_rate=end_lr, power=1.0\n)\nlr_rate4 = WarmupLearningRateSchedule(backend_lr, start_lr, max_lr, end_lr, opt_steps, warmup_steps, lr_scaling)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plot_lr_schedule_pair(lr_rate3, lr_rate4, opt_steps)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Model, metric and optimizer<a id='objects'></a>\n\nIn order to use TPU, or tensorflow distribute strategy in general, some objects have to be created inside the strategy's scope.\nHere is the rule of thumb:\n\n* Anything that creates variables that will be used in a distributed way must be created inside `strategy.scope()`.\n* This includes:\n  - model creation\n  - optimizer\n  - metrics\n  - sometimes, checkpoint restore\n  - any custom code that creates distributed variables\n* Once a variable is created inside a strategy's scope, it captures the strategy's information, and you can use it outside the strategy's scope.\n* Unless using a high level API like `model.fit()`, define things inside the strategy's scope won't automatically distribute the computation. This will be discussed in [Distributed computation](#distributed-computation).\n\nInside the scope, everything is defined in a way just like without using distribute strategy. There is however a particularity about the loss function, see [Loss classes and reduction](#loss-functions).\n\nIn the next cell, we define the learning rate and the loss object inside the scope, but it's not mandatory.\n\n**References:**\n1. [Doc - TPUStrategy - scope](https://www.tensorflow.org/api_docs/python/tf/distribute/experimental/TPUStrategy#scope)\n2. [Tutorial - Custom training with TPUs](https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/custom_training.ipynb#scrollTo=s_suB7CZNw5W)","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_model(model_name, update_steps, warmup_steps, start_lr, max_lr, end_lr, lr_scaling, verbose=False):\n\n    with strategy.scope():\n\n        model_class = MODEL_CLASSES[model_name]\n        pretrained_model = model_class(weights='imagenet', include_top=False, input_shape=[*IMAGE_SIZE, 3])\n        \n        # False = transfer learning, True = fine-tuning\n        pretrained_model.trainable = True \n\n        model = tf.keras.Sequential([\n            pretrained_model,\n            tf.keras.layers.Dropout(rate=0.05),\n            tf.keras.layers.GlobalAveragePooling2D(),\n            tf.keras.layers.Dense(len(CLASSES))\n        ])\n        \n        if verbose:\n            model.summary()\n\n        backend_lr = tf.keras.optimizers.schedules.ExponentialDecay(\n            max_lr, opt_steps - warmup_steps, decay_rate=(end_lr / max_lr),\n        )\n        lr_rate = WarmupLearningRateSchedule(backend_lr, start_lr, max_lr, end_lr, update_steps, warmup_steps, lr_scaling)\n        \n        # Instiate an optimizer with a learning rate schedule\n        optimizer = tf.keras.optimizers.Adam(lr_rate)\n\n        # Only `NONE` and `SUM` are allowed, and it has to be explicitly specified.\n        loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True, reduction=tf.keras.losses.Reduction.SUM)\n\n        # Instantiate metrics\n        metrics = {\n            'train loss': tf.keras.metrics.Sum(),\n            'train acc': tf.keras.metrics.SparseCategoricalAccuracy(),\n            'valid acc': tf.keras.metrics.SparseCategoricalAccuracy()\n        }\n        \n        gradient_accumulator = None\n\n        return model, loss_fn, optimizer, gradient_accumulator, metrics","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Loss classes and reduction<a id='loss-functions'></a>\n\nAccording to the tutorial [Custom training with tf.distribute.Strategy - Define the loss function](https://www.tensorflow.org/tutorials/distribute/custom_training#define_the_loss_function), if a loss class in the module [tf.keras.losses](https://www.tensorflow.org/api_docs/python/tf/keras/losses) is used, like [SparseCategoricalCrossentropy](https://www.tensorflow.org/api_docs/python/tf/keras/losses/SparseCategoricalCrossentropy) in this notebook, we have to specify `NONE` or `SUM` for the parameter `reduction` when working with [tf.distribute.Strategy](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy). The default value `AUTO` and the usually used `SUM_OVER_BATCH_SIZE` are disallowed when working with tf.distribute.Strategy. \n\nOn each replica, after the per example losses are summed, it should be divided by the global bacth size rather than the number of examples processed by a single replica. By global bacth, it means a batch of examples that is distributed to different replicas. Tensorflow only allows `NONE` or `SUM` reductions to make the users explicitly think about the correct and desired reduction in their distributed case. We will show how to deal with loss values in [Loss calculation](#loss-calculation).\n\n**References**\n\n1. [Tutorial - Custom training with tf.distribute.Strategy - Define the loss function](https://www.tensorflow.org/tutorials/distribute/custom_training#define_the_loss_function)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Distributed dataset<a id='distributed-dataset'></a>\n\nWith an input pipeline [tf.data.Dataset](https://www.tensorflow.org/api_docs/python/tf/data/Dataset), we use  [strategy.experimental_distribute_dataset](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#experimental_distribute_dataset) to turn it into a distributed dataset, which produces `per-replica` values (which are objects of type [PerReplica](https://github.com/tensorflow/tensorflow/blob/v2.3.0/tensorflow/python/distribute/values.py#L361)) when iterating over it. For example, \n\n```\n    ds = (... something that is a `tf.data.Dataset` ...)\n    dist_ds = strategy.experimental_distribute_dataset(ds)\n```","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### PerReplica objects in distributed datasets\n\nThe distributed datasets (when working with TPU) contains objects of type [tensorflow.python.distribute.values.PerReplica](https://github.com/tensorflow/tensorflow/blob/v2.3.0/tensorflow/python/distribute/values.py#L361), which is a subclass of [tf.distribute.DistributedValues](https://www.tensorflow.org/api_docs/python/tf/distribute/DistributedValues) that is the base class for representing distributed values.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Check a batch in the distributed dataset\n[Previously](#check-batch), we checked a batch in the training dataset, which is a tuple containing 2 tensors.\nOne is a batch of images, and the other one is a batch of labels.\nLet's check what we get when we distribute our flower training dataset.\n\n<a id=\"check-dist-batch\"></a>\nLet's create a dataset of batch size $9$.","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"ds = get_training_dataset(batch_size=9, shuffle_buffer_size=1)\ndist_ds = strategy.experimental_distribute_dataset(ds)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"dist_batch = next(iter(dist_ds))\nprint('The distributed batch is a {} with {} components.'.format(type(dist_batch).__name__, len(dist_batch)))\nprint('\\nThe 1st compoent is a {}'.format(type(dist_batch[0]).__name__))\nprint('The 2nd compoent is a {}'.format(type(dist_batch[1]).__name__))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"For a batch in the distribute dataset, we also have a tuple of 2 compoents as in the original dataset, but each component is a `PerReplica` objeect rather than a tensor.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Look a PerReplica object<a id=\"look-perreplica-object\"></a>\nHere is the second component `dist_batch[1]`. It contains tensors, each of them is a batch of labels that will be processed on a different replica. They have different batch dimensions: $0$, $1$ and $2$, but their sum is $9$ which is the batch size we used to create [the dataset](#check-dist-batch).\n\nSimilarly, `dist_batch[0]` contains tensors which are batch of images.","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"dist_batch[1]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Access PerReplica's content\n\nFor a `PerReplica` object, you can use the property `values` to access its content. It turns out to be a tuple. The number of its components is the number of replicas `strategy.num_replicas_in_sync`.","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"print('The values contained inside dist_batch[0] (which is a `{}` object) are packed in a {} with {} components.\\n'.format(type(dist_batch[0]).__name__, type(dist_batch[0].values).__name__, len(dist_batch[0].values)))\nprint('The 1st component in `dist_batch[0].values` is a {} with shape {}'.format(type(dist_batch[0].values[0]).__name__, dist_batch[0].values[0].shape))\nprint('The 4th component in `dist_batch[0].values` is a {} with shape {}'.format(type(dist_batch[0].values[4]).__name__, dist_batch[0].values[4].shape))\nprint('The last component in `dist_batch[0].values` is a {} with shape {}'.format(type(dist_batch[0].values[-1]).__name__, dist_batch[0].values[-1].shape))","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"print('The values contained inside dist_batch[1] (which is a `{}` object) are packed in a {} with {} components.\\n'.format(type(dist_batch[1]).__name__, type(dist_batch[1].values).__name__, len(dist_batch[1].values)))\nprint('The first component in `dist_batch[1].values` is a {} with shape {}'.format(type(dist_batch[1].values[0]).__name__, dist_batch[1].values[0].shape))\nprint('The 4th component in `dist_batch[1].values` is a {} with shape {}'.format(type(dist_batch[1].values[4]).__name__, dist_batch[1].values[4].shape))\nprint('The last component in `dist_batch[1].values` is a {} with shape {}'.format(type(dist_batch[1].values[-1]).__name__, dist_batch[1].values[-1].shape))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Distributed computation<a id='distributed-computation'></a>\n\nFor each distributed batch (which contains `PerReplica` objects as discussed in [Distributed dataset](#distributed-dataset)) produced by a distributed dataset, we use [strategy.run](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#run) to perform a distributed computation on different TPU replicas, each processes a part of the batch.\n\n```\n    @tf.function\n    def dist_step(dist_batch):\n        strategy.run(replica_fn, args=dist_batch)\n        \n    for dist_batch in dist_ds:\n        dist_step(dist_batch)\n```\n\nHere `replica_fn` is a function that is going to be run on each replica, and it should work with tensors, not with `PerReplica` objects.\nYou define the operations (for example, forward pass, compute loss values and gradients, etc.) to peform just like witout using TPU. \nWhen working with `TPU`, either [strategy.run](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#run) have to be called inside [tf.function](https://www.tensorflow.org/api_docs/python/tf/function) or the replica function have to be annotated with [tf.function](https://www.tensorflow.org/api_docs/python/tf/function). For example:\n\n```\n    @tf.function\n    def replica_fn(batch):\n        \n        model(batch)\n        ...\n        \n    for dist_batch in dist_ds:\n        strategy.run(replica_fn, args=dist_batch)\n```\n\nThe above code snippet is a high level concept, and `replica_fn` doesn't necessary receive a single argument. In our case, the original dataset yields tuples of tensors, a distributed batch is also a tuple of `PerReplica` objects, and `replica_fn` actually receives the unpacked version of a tuple of tensors as arguments.\n\nIf a dataset yield a single tensor, you can do things like \n```\n    @tf.function\n    def replica_fn(batch):\n        \n        tensor0 (, ... tensorN) = batch\n        model(tensor0, ... tensorN)\n\n    strategy.run(replica_fn, args=(dist_batch,))\n```\nwhere `replica_fn` expects a single tensor as arugment. Even if a dataset yields tuples of tensors, the above code still works, but `replica_fn` expects a single tuple of tensors as argument.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Optimized loops<a id='optimized-loops'></a>\n\nIn [Distributed computation](#distributed-computation), we show a way to iterate the distributed dataset:\n\n```\n    for dist_batch in dist_ds:\n        dist_step(dist_batch)\n```\nEvery step in the loop, which calls [strategy.run](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#run), will have a communication between the local VM (in our case, the Kaggle VM) and the remote TPU worker(s).\n\nHowever, you can iterate the distributed dataset inside a `tf.function`, like\n```        \n    @tf.function\n    def dist_run_on_dataset(dist_ds):\n    \n        for dist_batch in dist_ds:\n            dist_step(dist_batch)\n            \n    dist_process_dataset(dist_ds)\n```\nThis way, the whole operations over the dataset is compiled into a graph is sent to the remote TPU worker(s) for execution. This will reduce the running time and avoid TPUs to be idle waiting for data from the local VM. See [TPU: extreme optimizations](https://www.kaggle.com/c/flower-classification-with-tpus/discussion/135443) for a good benchmark by [Martin Görner](https://www.kaggle.com/mgornergoogle).\n\n\n\nIn this notebook, we use a fixed number of training steps, so we can also use\n```        \n    @tf.function\n    def dist_process_dataset(dist_ds_iter):\n    \n        for _ in tf.range(n_stes):\n            dist_step(next(dist_ds_iter))\n            \n    dist_ds_iter = iter(dist_ds)\n    dist_process_dataset(dist_ds_iter)\n```\n\n**References**\n\n* [Tutorial - Iterating inside a tf.function](https://www.tensorflow.org/tutorials/distribute/custom_training#iterating_inside_a_tffunction)\n\n* [Tutorial - Using iterators](https://www.tensorflow.org/tutorials/distribute/custom_training#using_iterators)\n\n* [Kaggle discussion - TPU: extreme optimizations](https://www.kaggle.com/c/flower-classification-with-tpus/discussion/135443)\n\n* [Kaggle notebook - Custom Training Loop with 100+ flowers on TPU](https://www.kaggle.com/mgornergoogle/custom-training-loop-with-100-flowers-on-tpu#Optimized-custom-training-loop)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Define the routines<a id='define-routines'></a>\n\nWith the above discussions, we are ready to define the routines used for training, validation and prediction. The following code should be clear now, except for the loss calculation.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Loss calculation<a id='loss-calculation'></a>\n\nWhen a batch is distributed to the replicas by calling [strategy.run](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#run), each replica receives a part of the batch and\ncalculates the loss values separately. It **SHOULD NOT** calculate the average of the per example losses on the (partial) batch it recevies. This is because :\n1. The gradients calculated on each replica will be synced across the replicas - they are summed before the optimizer applies the gradients to update the model's parameters.\n2. If we use the averaged per examples loss to compute the graident on each replica, the final graident applied by the optimizer will correspond to the sum of these averaged per examples losses on the different replicas.\n3. However, the optimizer should apply the gradient obtained from the averaged per examples loss over the whole distributed batch.<a id=\"point-3\"></a>\n4. We have already seen that [each replica might receive different number of examples](#look-perreplica-object). Therefore it is impossible, in general, to obtain the averaged per example loss over the whole distributed batch from [3.](#point-3) by simply divide it by the number of replicas.\n5. So on each replica, we calculate the sum of per examples losses divided by the batch size of the whole distributed batch, which will give the optimizer the correct gradients to apply.\n\nIn this notebook, since we use gradient accumulation, each replica receives several batches before the optimizer applying the graidents, we divide the sum of per examples losses by the update size (i.e. the number of examples used for one parameter update) rather than by the size of a single distributed batch.\n\n**References**\n\n1. [Tutorial - Custom training with tf.distribute.Strategy - Define the loss function](https://www.tensorflow.org/tutorials/distribute/custom_training#define_the_loss_function)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Collect the return values<a id='collecting'></a>\n\nThe results of [strategy.run](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#run) are also \ndistributed values, just like distributed batches as its inputs. For each return value, we can use [strategy.experimental_local_results](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#experimental_local_results) to obtain a tuple of tensors from all replicas, and use [tf.concat](https://www.tensorflow.org/api_docs/python/tf/concat) to aggregate them into a single tensor.\nWe use this method to collect the labels and model predictions during training, and use them to calculate different metrics after each epoch.\n\n**References**\n1. [Doc - strategy.experimental_local_results](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#experimental_local_results)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Check strategy.experimental_local_results","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"@tf.function\ndef dummy_run(images, labels):\n    \n    images = images + 1\n    labels = labels * 0\n    \n    return images, labels\n    \ndummy_images, dummy_labels = strategy.run(dummy_run, args=dist_batch)\ndummy_labels","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"The returned labels is a `PerReplica` object.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"strategy.experimental_local_results(dummy_labels)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"We get a tuple of tensors after calling [strategy.experimental_local_results](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy#experimental_local_results).","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"tf.concat(strategy.experimental_local_results(dummy_labels), axis=0)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"We can aggregate the results into a single tensor by using [tf.concat](https://www.tensorflow.org/api_docs/python/tf/concat)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Shape invariance\n\nThere are a few subtleties when working with TPUs: it requires the shapes of tensors to be fixed inside a loop. Also, the indices used for a tensor slice have to be compile-time constant.\n\nHowever, when we aggregate the results, their shapes increase along the batch dimension. In order to overcome these restriction, we use the following trick:\n\n```\n    # To keep the shape invariant\n    preds = tf.zeros(shape=[... predefined known shape ...])\n\n    for _ in tf.range(...):\n\n        # results from distributed computation\n        _preds = dist_train_step(next(data_iter))\n        \n        # these are tuples of tensors\n        _preds = strategy.experimental_local_results(_preds)\n        \n        # convert each to a single tensor\n        _preds = tf.concat(_preds, axis=0)\n        \n        # collect the results\n        preds = tf.concat([preds[update_size:], _preds], axis=0)\n        \n    return preds\n```\nBasically, it just puts the results `_preds` at the end of `preds` each time, and discards a few elements at the beginning of `pred` to keep the shape invariant. This trick is also used for the gradient accumulation implemented in `train_1_update`, but operated on the input batches instead of the output batches.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Finally, the implementation of our routines","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_routines(model, loss_fn, optimizer, gradient_accumulator, metrics, batch_size_per_replica, update_size, grad_acc_steps, updates_per_epoch):\n\n    def train_1_forward_backward(images, labels):\n\n        with tf.GradientTape() as tape:\n\n            logits = model(images, training=True)\n            # Remember that we use the `SUM` reduction when we define the loss object.\n            loss = loss_fn(labels, logits) / update_size\n\n        grads = tape.gradient(loss, model.trainable_variables)\n        \n        # shape = [batch_size_per_replica]\n        preds = tf.cast(tf.math.argmax(logits, axis=-1), dtype=tf.int32)\n\n        # update metrics\n        metrics['train loss'].update_state(loss)\n        metrics['train acc'].update_state(labels, logits)\n\n        return grads, preds\n\n    def train_1_update(images, labels):\n        \"\"\"\n        gradient accumulation.\n        \"\"\"\n        \n        accumulated_grads = [tf.zeros_like(var, dtype=tf.float32) for var in model.trainable_variables]\n        \n        # Used for collecting the predictions.\n        preds = tf.zeros_like(labels)\n        \n        for idx in tf.range(grad_acc_steps):\n\n            # Take the 1st `batch_size_per_replica` examples.\n            _images = images[:batch_size_per_replica]\n            _labels = labels[:batch_size_per_replica]\n\n            # Get the gradients\n            grads, _preds = train_1_forward_backward(_images, _labels)\n            preds = tf.concat([preds[batch_size_per_replica:], _preds], axis=0)\n\n            # accumulated the gradients\n            accumulated_grads = [x + y for x, y in zip(accumulated_grads, grads)]\n\n            # Move the leading part to the end, so the shape is not changed.\n            images = tf.concat([images[batch_size_per_replica:], _images], axis=0)\n            labels = tf.concat([labels[batch_size_per_replica:], _labels], axis=0)\n            \n        # Update the model's parameters.\n        optimizer.apply_gradients(zip(accumulated_grads, model.trainable_variables))\n\n        return labels, preds\n        \n    @tf.function\n    def dist_train_step(dist_batch):\n        \n        labels, preds = strategy.run(train_1_update, args=dist_batch)        \n        \n        return labels, preds\n        \n    def dist_train_1_epoch(data_iter):\n        \"\"\"\n        Iterating outside `tf.function`.\n        \"\"\"\n        \n        labels = tf.zeros(shape=[updates_per_epoch * update_size], dtype=tf.int32)\n        preds = tf.zeros(shape=[updates_per_epoch * update_size], dtype=tf.int32)\n        \n        for _ in range(updates_per_epoch):\n            \n            _labels, _preds = dist_train_step(next(data_iter))\n            \n            # these are tuples of tensors\n            _labels = strategy.experimental_local_results(_labels)\n            _preds = strategy.experimental_local_results(_preds)\n            \n            # convert each to a single tensor\n            _labels = tf.concat(_labels, axis=0)\n            _preds = tf.concat(_preds, axis=0)\n            \n            # collect the results\n            labels = tf.concat([labels[update_size:], _labels], axis=0)\n            preds = tf.concat([preds[update_size:], _preds], axis=0)\n            \n        return labels, preds\n        \n    @tf.function\n    def dist_train_1_epoch_optimized(data_iter):\n        \"\"\"\n        Iterating inside `tf.function` to optimized training time.\n        \"\"\"\n\n        labels = tf.zeros(shape=[updates_per_epoch * update_size], dtype=tf.int32)\n        preds = tf.zeros(shape=[updates_per_epoch * update_size], dtype=tf.int32)        \n        \n        for _ in tf.range(updates_per_epoch):\n            \n            _labels, _preds = dist_train_step(next(data_iter))\n            \n            # tuple of tensors\n            _labels = strategy.experimental_local_results(_labels)\n            _preds = strategy.experimental_local_results(_preds)\n            \n            # to a single tensor\n            _labels = tf.concat(_labels, axis=0)\n            _preds = tf.concat(_preds, axis=0)           \n            \n            # collect\n            labels = tf.concat([labels[update_size:], _labels], axis=0)\n            preds = tf.concat([preds[update_size:], _preds], axis=0)\n            \n        return labels, preds\n            \n    def predict_step(images):\n\n        logits = model(images, training=False)\n        return logits\n\n    @tf.function\n    def dist_predict_step(images):\n\n        logits = strategy.run(predict_step, [images])\n        return logits\n\n    return dist_train_1_epoch_optimized, dist_train_1_epoch, dist_predict_step","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def save_results(train_name, history, valid_labels, valid_preds, test_idx, test_preds):\n\n    with open(f'history-{train_name}.json', 'w', encoding='UTF-8') as fp:\n        json.dump(history, fp, indent=4, ensure_ascii=False)\n\n    with open(f'valid-labels-{train_name}.json', 'w', encoding='UTF-8') as fp:\n        json.dump(valid_labels, fp, indent=4, ensure_ascii=False)\n\n    with open(f'valid-preds-{train_name}.json', 'w', encoding='UTF-8') as fp:\n        json.dump(valid_preds, fp, ensure_ascii=False)\n\n    with open(f'test-preds-{train_name}.json', 'w', encoding='UTF-8') as fp:\n        json.dump(test_preds, fp, indent=4, ensure_ascii=False)\n        \n    submission = pd.DataFrame(test_idx, columns=['id'])\n    submission['label'] = test_preds\n    submission.to_csv(f'submission-{train_name}.csv', index=False)\n    \ndef print_metrics(history, epochs, log_interval):\n    \n    epoch = len(history) - 1\n    \n    if epoch in [0, epochs-1] or (epoch + 1) % log_interval == 0:\n\n        print('epoch: {}'.format(epoch + 1))\n        print('elapsed: {}\\n'.format(history[epoch]['train timing']))\n\n        print('train loss: {}'.format(history[epoch]['train loss']))\n        print('train acc: {}'.format(history[epoch]['train acc']))                \n        print('train recall: {}'.format(history[epoch]['train recall']))\n        print('train precision: {}'.format(history[epoch]['train precision']))\n        print('train f1: {}\\n'.format(history[epoch]['train f1']))           \n\n        print('valid loss: {}'.format(history[epoch]['valid loss']))\n        print('valid acc: {}'.format(history[epoch]['valid acc']))        \n        print('valid recall: {}'.format(history[epoch]['valid recall']))\n        print('valid precision: {}'.format(history[epoch]['valid precision']))\n        print('valid f1: {}'.format(history[epoch]['valid f1']))\n        \n        print('-' * 40)    ","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Put the routines together\n\nWe are at the final step before the real traning! Here we use the above routines to define the highest level of the training, validation and testing processes, including printing some information and saving the results.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_train_fn(dist_train_1_epoch, dist_predict_step, loss_fn, metrics, log_interval=1):\n\n    def predict_fn(dist_image_ds):\n\n        all_logits = []\n        for images in dist_image_ds:\n\n            # PerReplica object\n            logits = dist_predict_step(images)\n\n            # Tuple of tensors\n            logits = strategy.experimental_local_results(logits)\n\n            # tf.Tensor\n            logits = tf.concat(logits, axis=0)\n\n            all_logits.append(logits)\n\n        # tf.Tensor\n        logits = tf.concat(all_logits, axis=0)\n        preds = tf.math.argmax(logits, axis=-1)\n\n        return logits, preds\n\n    def valid_fn(dist_image_ds, labels, epoch):\n\n        logits, preds = predict_fn(dist_image_ds)\n\n        loss = loss_fn(labels, logits) / NUM_VALIDATION_IMAGES\n\n        # update metrics\n        metrics['valid acc'].update_state(labels, logits)\n\n        # get metrics\n        acc = metrics['valid acc'].result()\n\n        recall = sklearn.metrics.recall_score(labels, preds, average='macro')\n        precision = sklearn.metrics.precision_score(labels, preds, average='macro')\n        f1 = sklearn.metrics.f1_score(labels, preds, average='macro')\n        \n        # reset metrics\n        metrics['valid acc'].reset_states()\n        \n        return {'loss': float(loss), 'acc': float(acc), 'recall': recall, 'precision': precision, 'f1': f1, 'preds': preds}\n    \n    def train_fn(train_name, epochs, train_ds, valid_ds, test_ds, updates_per_epoch):    \n        \n        valid_image_ds = valid_ds.map(lambda image, label: image)   \n        test_image_ds = test_ds.map(lambda image, idx: image)\n    \n        train_dist_ds = strategy.experimental_distribute_dataset(train_ds)        \n        valid_dist_image_ds = strategy.experimental_distribute_dataset(valid_image_ds)\n        test_dist_image_ds = strategy.experimental_distribute_dataset(test_image_ds)\n        \n        train_data_iter = iter(train_dist_ds)\n        \n        valid_label_ds = valid_ds.map(lambda image, label: label)\n        valid_labels = next(iter(valid_label_ds.unbatch().batch(NUM_VALIDATION_IMAGES)))        \n        \n        test_idx_ds = test_ds.map(lambda image, idx: idx)\n        test_idx = next(iter(test_idx_ds.unbatch().batch(NUM_TEST_IMAGES)))\n      \n        history = {}\n        valid_preds = {}\n    \n        for epoch in range(epochs):\n            \n            s = datetime.datetime.now()\n\n            labels, preds = dist_train_1_epoch(train_data_iter)\n\n            # get metrics\n            train_loss = metrics['train loss'].result() / updates_per_epoch\n            train_acc = metrics['train acc'].result()\n\n            # reset metrics\n            metrics['train loss'].reset_states()\n            metrics['train acc'].reset_states()\n            \n            recall = sklearn.metrics.recall_score(labels, preds, average='macro')\n            precision = sklearn.metrics.precision_score(labels, preds, average='macro')\n            f1 = sklearn.metrics.f1_score(labels, preds, average='macro')\n            \n            e = datetime.datetime.now()\n            elapsed = (e - s).total_seconds()\n            \n            valid_results = valid_fn(valid_dist_image_ds, valid_labels, epoch)\n            \n            history[epoch] = {\n                'train loss': float(train_loss),\n                'train acc': float(train_acc),\n                'train recall': recall,\n                'train precision': precision,\n                'train f1': f1,                \n                'valid loss': valid_results['loss'],\n                'valid acc': valid_results['acc'],\n                'valid recall': valid_results['recall'],\n                'valid precision': valid_results['precision'],\n                'valid f1': valid_results['f1'],\n                'train timing': elapsed\n            }\n            valid_preds[epoch] = valid_results['preds'].numpy().tolist()\n            \n            print_metrics(history, epochs, log_interval)\n            \n        _, test_preds = predict_fn(test_dist_image_ds)\n        \n        valid_labels = valid_labels.numpy().tolist()\n        test_preds = test_preds.numpy().tolist()\n        test_idx = test_idx.numpy().tolist()\n        \n        save_results(train_name, history, valid_labels, valid_preds, test_idx, test_preds)\n        \n        return history, valid_labels, valid_preds\n                \n    return train_fn","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Training<a id='training'></a>\n\nWith all the efforts made so far, the training is very easy!","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Fix some hyperparameters\nIn our experiment, we fix the model to be `EfficientNetB7` and the number of epochs to be $30$. The image size is $192$ in order to reduce the running time. With larger image size, we could get better results.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Remark","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"In this notebook, we only run each configuration once. Ideally, each configuration should be run multiple times and the averaged results are used for comparison. Due to the 3 hours TPU time limit on Kaggle, this is not feasible for the model we use in this notebook.\n\nHowever, most of the conclusions in this notebook are stable and won't be different in another run.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"model_name = 'EfficientNetB7'\n# model_name = 'Xception'\nepochs = 30\nlr_scaling = 8\nlog_interval = 10","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Train with the original dataset","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Train without optimized loop","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"trainer = Flower_Trainer(\n    batch_size_per_replica=16, prediction_batch_size_per_replica=64, shuffle_buffer_size=None,\n    oversample=False, target_counting=1, grad_acc_steps=1, augmentation_fn=None, log_interval=log_interval\n)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### print configuration ","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def print_config(trainer):\n\n    print('use oversampling: {}'.format(trainer.oversample))\n    \n    if trainer.oversample:\n        print('target counting of each class for oversampling {}: '.format(trainer.target_counting))    \n    \n    print('(approximated) nb. of training examples used: {}'.format(trainer.nb_examples_approx))\n    \n    print('per replica batch size for training: {}'.format(trainer.batch_size_per_replica))\n    print('batch size for training: {}'.format(trainer.batch_size))    \n    print('gradient accumulation steps: {}'.format(trainer.grad_acc_steps))\n    print('update size: {}'.format(trainer.update_size))\n    print('updates per epoch: {}'.format(trainer.updates_per_epoch))\n    \n    print('per replica batch size for prediction: {}'.format(trainer.prediction_batch_size_per_replica))\n    print('batch size for prediction: {}'.format(trainer.prediction_batch_size))\n\n    print('use data augmentation: {}'.format(trainer.augmentation_fn is not None))","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"print_config(trainer)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history_1, valid_labels, valid_preds = trainer.train(train_name='original', model_name=model_name, epochs=epochs, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=1, optimized_loop=False, verbose=True)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Plot history","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def plot_history(history, desc=''):\n    \n    fig, _ = plt.subplots(figsize=(25, 14.28))\n    # fig, _ = plt.subplots(figsize=(17.25, 10))\n    # plt.tight_layout()\n\n    if desc:\n        fig.suptitle('{}'.format(desc), fontsize=24, y=0.95)\n    \n    xs = range(1, len(history) + 1)\n\n    subplot = (2, 2, 1)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n    ax.plot(xs, [history[k]['train loss'] for k in history])\n    ax.plot(xs, [history[k]['valid loss'] for k in history])\n    ax.set_title('model loss', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('loss', fontsize=16)\n    ax.legend(['train loss', 'valid loss'], fontsize=16)\n\n    subplot = (2, 2, 2)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n    ax.plot(xs, [history[k]['train acc'] for k in history])\n    ax.plot(xs, [history[k]['valid acc'] for k in history])\n    ax.set_title('model accuracy', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('accuracy', fontsize=16)\n    ax.legend(['train acc', 'valid acc'], fontsize=16)\n\n    subplot = (2, 2, 3)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n    ax.plot(xs, [history[k]['train recall'] for k in history])\n    ax.plot(xs, [history[k]['train precision'] for k in history])\n    ax.plot(xs, [history[k]['train f1'] for k in history])\n    ax.set_title('train - recall, precision, f1', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('train metrics', fontsize=16)\n\n    ax.legend(['train recall', 'train precision', 'train f1'], fontsize=16)\n\n    subplot = (2, 2, 4)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n    ax.plot(xs, [history[k]['valid recall'] for k in history])\n    ax.plot(xs, [history[k]['valid precision'] for k in history])\n    ax.plot(xs, [history[k]['valid f1'] for k in history])\n    ax.set_title('valid - recall, precision, f1', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('valid metrics', fontsize=16)    \n    \n    ax.legend(['valid recall', 'valid precision', 'valid f1'], fontsize=16)    \n    \ndef plot_history_pair(history_1, history_2, desc_1='', desc_2='', short_desc_1='history 1', short_desc_2='history 2'):\n    \n    nb_epochs_1 = len(history_1)\n    nb_epochs_2 = len(history_2)\n    \n    # extend by the last epoch\n    if nb_epochs_1 < nb_epochs_2:\n        for epoch in range(nb_epochs_1, nb_epochs_2):\n            history_1[epoch] = history_1[nb_epochs_1 - 1]\n    elif nb_epochs_1 > nb_epochs_2:\n        for epoch in range(nb_epochs_2, nb_epochs_1):\n            history_2[epoch] = history_2[nb_epochs_2 - 1]        \n    \n    fig, _ = plt.subplots(figsize=(25, 14.28))\n    # fig, _ = plt.subplots(figsize=(17.25, 10))\n    # plt.tight_layout()\n    \n    if desc_1 and desc_2:\n        fig.suptitle('{}   vs.   {}'.format(desc_1, desc_2), fontsize=24, y=0.95)\n    elif desc_1:\n        fig.suptitle('{}'.format(desc_1), fontsize=24, y=0.95)\n\n    xs = range(1, len(history_1) + 1)\n\n    subplot = (2, 2, 1)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n\n    ax.plot(xs, [history_2[k]['train loss'] for k in history_2], color='b')\n    ax.plot(xs, [history_2[k]['valid loss'] for k in history_2], color='g')     \n\n    ax.plot([], [], linestyle='--', color='k')     \n    ax.plot([], [], linestyle='-', color='k')       \n    \n    ax.plot(xs, [history_1[k]['train loss'] for k in history_1], linestyle='--', color='b')\n    ax.plot(xs, [history_1[k]['valid loss'] for k in history_1], linestyle='--', color='g')\n    \n    ax.set_title('model loss', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('loss', fontsize=16)\n    ax.legend(['train loss', 'valid loss', short_desc_1, short_desc_2], fontsize=16)\n\n    subplot = (2, 2, 2)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n    \n    ax.plot(xs, [history_2[k]['train acc'] for k in history_2], color='b')\n    ax.plot(xs, [history_2[k]['valid acc'] for k in history_2], color='g')     \n    \n    ax.plot([], [], linestyle='--', color='k')     \n    ax.plot([], [], linestyle='-', color='k')     \n    \n    ax.plot(xs, [history_1[k]['train acc'] for k in history_1], linestyle='--', color='b')\n    ax.plot(xs, [history_1[k]['valid acc'] for k in history_1], linestyle='--', color='g')\n    \n    ax.set_title('model accuracy', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('accuracy', fontsize=16)\n    ax.legend(['train acc', 'valid acc', short_desc_1, short_desc_2], fontsize=16)\n\n    subplot = (2, 2, 3)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n\n    ax.plot(xs, [history_2[k]['train recall'] for k in history_2], color='b')\n    ax.plot(xs, [history_2[k]['train precision'] for k in history_2], color='g')\n    ax.plot(xs, [history_2[k]['train f1'] for k in history_2], color='r')    \n\n    ax.plot([], [], linestyle='--', color='k')     \n    ax.plot([], [], linestyle='-', color='k')     \n    \n    ax.plot(xs, [history_1[k]['train recall'] for k in history_1], linestyle='--', color='b')\n    ax.plot(xs, [history_1[k]['train precision'] for k in history_1], linestyle='--', color='g')\n    ax.plot(xs, [history_1[k]['train f1'] for k in history_1], linestyle='--', color='r')\n    \n    ax.set_title('train - recall, precision, f1', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('train metrics', fontsize=16)\n\n    ax.legend(['train recall', 'train precision', 'train f1', short_desc_1, short_desc_2], fontsize=16)\n    \n    subplot = (2, 2, 4)\n    ax = plt.subplot(*subplot)\n    ax.set_facecolor('#F8F8F8')\n    \n    ax.plot(xs, [history_2[k]['valid recall'] for k in history_2], color='b')\n    ax.plot(xs, [history_2[k]['valid precision'] for k in history_2], color='g')\n    ax.plot(xs, [history_2[k]['valid f1'] for k in history_2], color='r')    \n\n    ax.plot([], [], linestyle='--', color='k')     \n    ax.plot([], [], linestyle='-', color='k')      \n    \n    ax.plot(xs, [history_1[k]['valid recall'] for k in history_1], linestyle='--', color='b')\n    ax.plot(xs, [history_1[k]['valid precision'] for k in history_1], linestyle='--', color='g')\n    ax.plot(xs, [history_1[k]['valid f1'] for k in history_1], linestyle='--', color='r')\n    \n    ax.set_title('valid - recall, precision, f1', fontsize=20)\n    ax.set_xlabel('epoch', fontsize=16)\n    ax.set_ylabel('valid metrics', fontsize=16)\n\n    ax.legend(['valid recall', 'valid precision', 'valid f1', short_desc_1, short_desc_2], fontsize=16)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plot_history(history_1, desc='original training')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Train with optimized loop\n\nNow let's train with optimized loop. The model performance will be the same, but the training time will be reduced.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"history_2, valid_labels, valid_preds = trainer.train(train_name='optimized loop', model_name=model_name, epochs=epochs, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=1, optimized_loop=True, verbose=False)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Compare training with / without optimized loop","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"def compare_training_time(history1, history2, title1, title2):\n\n    avg1 = sum([history1[k]['train timing'] for k in history1 if k != 0]) / (len(history1) - 1)\n    avg2 = sum([history2[k]['train timing'] for k in history2 if k != 0]) / (len(history2) - 1)\n\n    print('Training time per epoch\\n')\n    print('  for the 1st epoch')\n    print(f'    {title1}: {history1[0][\"train timing\"]}')\n    print(f'    {title2}: {history2[0][\"train timing\"]}\\n')\n    print('  for the remaining epoch')\n    print(f'    {title1}: {avg1}')\n    print(f'    {title2}: {avg2}')","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":false,"trusted":true},"cell_type":"code","source":"compare_training_time(history_1, history_2, 'usual training loop', 'optimized training loop')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"The above results confirm that the training time is reduced when the optimized loop is used. Except for the first epoch, the trining speed is about 2x faster! For the 1st epoch, since a computation graph is compilled, it always takes more time to finish.\n\nFrom now on, we will perform training only with the optimized loop.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"plot_history_pair(history_1, history_2, desc_1='[usual training loop]', desc_2='[optimized training loop]', short_desc_1='usual loop', short_desc_2='optimized loop')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"The performances are almost identical for training with / without optimized loop, which is expected.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Train with gradient accumulation","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Train with gradient accumulation steps 8\n\nNow, let's accumulate the gradients 8 times before updating the model parameters.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"trainer = Flower_Trainer(\n    batch_size_per_replica=16, prediction_batch_size_per_replica=64, shuffle_buffer_size=None,\n    oversample=False, target_counting=1, grad_acc_steps=8, augmentation_fn=None, log_interval=log_interval\n)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"print_config(trainer)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history_3, valid_labels, valid_preds = trainer.train(train_name='grad. accumulation 8', model_name=model_name, epochs=epochs, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=1, optimized_loop=True, verbose=False)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### Compare training with / without gradient accumulation","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"compare_training_time(history_2, history_3, 'no gradient accumulation', 'gradient accumulation steps 8')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"The training time is further but slightly reduced. However, depending on the model size and the number of training epochs, it could be a significant amount.","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plot_history_pair(history_2, history_3, desc_1='[no gradient accumulation]', desc_2='[gradient accumulation steps 8]', short_desc_1='no grad. accumulation', short_desc_2='grad. accumulation 8')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"With gradient accumulation, the model performs worse than the training without graident accumulation. This is because the number of times that the model parameters are updated is fewer (8 times fewer here). One can either train with more epochs or with a larger learning rate.\n\nHere, we try to scale the learning rate.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Train with gradient accumulation steps 8 + learning rate scaling 8","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"history_4, valid_labels, valid_preds = trainer.train(train_name='grad. accumulation + lr. x8', model_name=model_name, epochs=epochs, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=lr_scaling, optimized_loop=True, verbose=False)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### learning rate scaling: x1 vs. x8\nFor gradient accumulation rate $8$, let's see the impact of scaling learning rate by $8$.","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plot_history_pair(history_3, history_4, desc_1='lr scaling 1', desc_2='lr scaling 8', short_desc_1='grad. accumulation lr. x1', short_desc_2='grad. accumulation lr. x8')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"With learning rate scaled by $8$ while using a gradient accumulation stpes $8$, we have much better results than no learning rate scaling.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### compare to training without gradient accumulationo again","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plot_history_pair(history_2, history_4, desc_1='[no gradient accumulation]', desc_2='[gradient accumulation steps 8 + lr. x8]', short_desc_1='no. grad. accumulation', short_desc_2='grad. accumulation lr. x8')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"With learning rate scaled by $8$ while using a gradient accumulation stpes $8$, the results on the validation dataset are better than not using gradient accumulation. From now on, we will use this training configuration.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"### Train with oversampled dataset\n\nLet's see what's the impact of oversampling.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### oversampled dataset with $N = 100$.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"trainer = Flower_Trainer(\n    batch_size_per_replica=16, prediction_batch_size_per_replica=64, shuffle_buffer_size=None,\n    oversample=True, target_counting=100, grad_acc_steps=8, augmentation_fn=None, log_interval=log_interval\n)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"print_config(trainer)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history_5, valid_labels, valid_preds = trainer.train(train_name='oversampling N=100', model_name=model_name, epochs=epochs, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=lr_scaling, optimized_loop=True, verbose=False)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### no oversampling vs. oversampling $N=100$","execution_count":null},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plot_history_pair(history_4, history_5, desc_1='[no oversampling]', desc_2='[oversampling N=100]', short_desc_1='no oversampling', short_desc_2='oversamp. N=100')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Using oversampling, we obtains better results than without using oversampling, especially for the `recall` score (and therefore also for the `f1` score).","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### oversampled dataset with $N = 300$.\n\nLet's increase the number of occurrences of each class.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"trainer = Flower_Trainer(\n    batch_size_per_replica=16, prediction_batch_size_per_replica=64, shuffle_buffer_size=None,\n    oversample=True, target_counting=300, grad_acc_steps=8, augmentation_fn=None, log_interval=log_interval\n)","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"print_config(trainer)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history_6, valid_labels, valid_preds = trainer.train(train_name='oversampling N=300', model_name=model_name, epochs=epochs, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=lr_scaling, optimized_loop=True, verbose=False)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### oversampling $N=100$ vs. oversampling $N=300$","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"plot_history_pair(history_5, history_6, desc_1='[oversampling N=100]', desc_2='[oversampling N=300]', short_desc_1='oversamp. N=100', short_desc_2='oversamp. N=300')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Compared to oversampling with $N=100$, we get better results when training by oversampling with $N=300$.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### no oversampling vs. oversampling $N=300$","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"plot_history_pair(history_4, history_6, desc_1='[no oversampling]', desc_2='[oversampling N=300]', short_desc_1='no oversampling', short_desc_2='oversamp. N=300')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### oversampled dataset with $N = 300$, but with fewer epochs\n\nWhen we train a model with oversampling, it is unfair to compare to the training without oversampling by looking at the same epochs, because oversampling has more training examples in each epoch.\n\nFor oversampling with $N=300$, we have about $33300$ examples in one epoch, which is about $2.6$ times the number of original training example (which is $12753$). Let's reduce the number of epochs by a similar factor when training with oversampling.","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"epochs_reduced = int(round(epochs / (trainer.nb_examples_approx / ORIGINAL_NUM_TRAINING_IMAGES)))\nhistory_7, valid_labels, valid_preds = trainer.train(train_name='oversampling 300 + epochs {}'.format(epochs_reduced), model_name=model_name, epochs=epochs_reduced, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=lr_scaling, optimized_loop=True, verbose=False)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### no oversampling vs. oversampling $N=300$ with fewer epochs","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"plot_history_pair(history_4, history_7, desc_1=f'[no oversampling + {epochs} epochs]', desc_2=f'[oversampling 300 + {epochs_reduced} epochs]', short_desc_1='no oversampling', short_desc_2=f'oversamp. epoch {epochs_reduced}')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Even trained with much fewer epochs, oversampling with $N=300$ (11 epochs) outperforms training without oversampling (30 epochs) on `recall` and `f1` scores.\n\nHowever, this is not very stable across different runs. Sometimes, their results are very close.","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Data augmentation - Perspective transformation<a id=perspective-transformation></a>\n\nThis is originally implemented in my notebook [perspective transformation](https://www.kaggle.com/yihdarshieh/perspective-transformation?scriptVersionId=29866403), which followed a discussion in [Computing a projective transformation](https://math.stackexchange.com/a/339033/33138) that has a [javascript implementation](http://jsfiddle.net/dFrHS/1/).\n\nWe will skip the introduction to perspective transformation here. Basically, you can think it as a transformation obtained by mapping 4 points in a source space to 4 points in a target space. That's why it is also called `4 points transformation`. It also includes rotations and flipping.\n\nThere are other notebooks implementing different data augmentations. See [the references here](#ref-aug).","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"#### Preview the effect of perspective transformation<a id='preview'></a>\n\n![inbox_1533864_7d71919df88ad547a96aca9b3a7557d6___results___9_0.png](attachment:inbox_1533864_7d71919df88ad547a96aca9b3a7557d6___results___9_0.png)","attachments":{"inbox_1533864_7d71919df88ad547a96aca9b3a7557d6___results___9_0.png":{"image/png":"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"}},"execution_count":null},{"metadata":{},"cell_type":"markdown","source":"## Play with perspective transformation in JavaScript<a id='play-pers-trans'></a>\n\nThe code here is from the [javascript implementation](http://jsfiddle.net/dFrHS/1/) which I found through the discussion in [Computing a projective transformation](https://math.stackexchange.com/a/339033/33138).\n\nYou can move the 4 corners to play with perspective transformation!","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"import IPython\nIPython.display.IFrame(\"//jsfiddle.net/dFrHS/1/embedded/result,js,html,css\", width=700, height=500)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Implement perspective transformation in TensorFlow (batch)<a id='imp-pers-trans'></a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"def random_4_points_2D_batch(height, width, batch_size, probability=1.0):\n    \"\"\"Generate `batch_size * 4` random 2-D points.\n    \n    Each 4 points are inside a rectangle with the same center as the above rectangle\n    but with side length being approximately 1.5 times. This choice is to avoid the\n    image being transformed too disruptively.\n\n    Each point is created first by making it close to the corresponding corner points\n    determined by the rectangle, i.e [0, 0], [0, width], [height, width] and [height, 0]\n    respectively. Then the 4 points are randomly shifted module 4 and randomly flipped.\n    \n    Args:\n        height: 0-D tensor, height of a reference rectangle.\n        width: 0-D tensor, width of a reference rectangle.\n        batch_size: 0-D tensor, the number of 4 points to be generated.\n        probability: 0-D tensor, the probability to use perspective transformation.\n        \n    Returns:\n        points: 3-D tensor of shape [batch_size, 4, 2]\n    \"\"\"\n\n    probability = tf.constant(probability, dtype=tf.float32)\n    \n    sy = height // 4\n    sx = width // 4\n        \n    h, w = height, width\n    \n    # Each has shape [batch_size]\n    y1 = tf.random.uniform(minval = -sy, maxval = sy, shape=[batch_size], dtype=tf.int32)\n    x1 = tf.random.uniform(minval = -sx, maxval = sx, shape=[batch_size], dtype=tf.int32)\n\n    y2 = tf.random.uniform(minval = -sy, maxval = sy, shape=[batch_size], dtype=tf.int32)\n    x2 = tf.random.uniform(minval = 3 * sx, maxval = 5 * sx, shape=[batch_size], dtype=tf.int32)\n\n    y3 = tf.random.uniform(minval = 3 * sy, maxval = 5 * sy, shape=[batch_size], dtype=tf.int32)\n    x3 = tf.random.uniform(minval = 3 * sx, maxval = 5 * sx, shape=[batch_size], dtype=tf.int32)    \n\n    y4 = tf.random.uniform(minval = 3 * sy, maxval = 5 * sy, shape=[batch_size], dtype=tf.int32)\n    x4 = tf.random.uniform(minval = -sx, maxval = sx, shape=[batch_size], dtype=tf.int32)\n        \n    # shape = [4, 2, batch_size]\n    _points = tf.convert_to_tensor([[y1, x1], [y2, x2], [y3, x3], [y4, x4]])\n    \n    # shape = [batch_size, 4, 2]\n    #     Each _points[i, :, :] consists of 4 points\n    #         [y1, x1], [y2, x2], [y3, x3], [y4, x4],\n    #     with xj, yj as scalars this time.\n    _points = tf.transpose(_points, perm=[2, 0, 1])\n    \n    # shape = [4, 2]\n    _standard_points = tf.constant([[0, 0], [0, width], [height, width], [height, 0]], dtype=tf.int32)\n    # shape = [batch_size, 4, 2]\n    _standard_points = tf.broadcast_to(_standard_points[tf.newaxis, :, :], shape=[batch_size, 4, 2])\n    \n    # If to use perspective transformation\n    # shape = [batch_size, 1, 1]\n    do_perspective = tf.cast(tf.random.uniform(shape=[batch_size]) < probability, dtype=tf.int32)[:, tf.newaxis, tf.newaxis]\n    \n    # shape = [batch_size, 4, 2]\n    _points = do_perspective * _points + (1 - do_perspective) * _standard_points\n    \n    # ----------------------------------------\n    # Trick to get random rotations\n    \n    # shape = [batch_size]\n    # shift degree\n    shift_degree = tf.random.uniform(minval=0, maxval=4, shape=[batch_size], dtype=tf.int32)\n    \n    # shape = [batch_size, 4]\n    # Each `_indices[i, :]` is [0, 1, 2, 3] + a random integer in [0, 1, 2, 3]\n    # This shifts the indices of the 4 points, which corresponds to a rotation.\n    _indices = shift_degree[:, tf.newaxis] + tf.range(4, dtype=tf.int32)[tf.newaxis, :]\n    _indices = tf.math.floormod(_indices, 4)\n\n    # shape = [batch_size, 4, 2]\n    # Each `indices[i, :, 0]` is [i, i, i, i]\n    # Each `indices[i, :, :]` is [[i, k1], [i, k2] [i, k3], [i, k4]] where [k0, k1, k2, k3] is `_indices[i]`.\n    _indices = tf.stack(\n        [\n            tf.broadcast_to(\n                tf.range(batch_size, dtype=tf.int32)[:, tf.newaxis],\n                shape=[batch_size, 4]\n            ),\n            _indices\n        ],\n        axis=2\n    )\n\n    # Obtain a tensor `new _points` of shape [batch_size, 4, 2], where\n    # `new _points[i, j] = _points[indices[i, j]]`\n    \n    # shape = [batch_size, 4, 2]\n    _points = tf.gather_nd(_points, _indices)\n      \n    # ----------------------------------------\n    # Trick to get random reflections\n    \n    # All has shape [4]\n    # no reflection\n    reflection_0 = tf.constant([0, 1, 2, 3], dtype=tf.int32)\n    # flip up/down\n    reflection_1 = tf.constant([3, 2, 1, 0], dtype=tf.int32)\n    # flip left/right\n    reflection_2 = tf.constant([1, 0, 3, 2], dtype=tf.int32)\n    \n    # shape = [3, 4]\n    reflections = tf.stack([reflection_0, reflection_1, reflection_2], axis=0)\n    \n    # shape = [batch_size, 3]\n    reflection_types = tf.cast(\n        tf.one_hot(\n            tf.random.uniform(\n                minval=0, maxval=3, shape=[batch_size], dtype=tf.int32\n            ),\n            3\n        ),\n        dtype=tf.int32\n    )\n\n    # shape = [batch_size, 4]\n    selected_reflections = tf.linalg.matmul(reflection_types, reflections)\n        \n    # shape = [batch_size, 4, 2]\n    _indices = tf.stack(\n        [\n            tf.broadcast_to(\n                tf.range(batch_size, dtype=tf.int32)[:, tf.newaxis],\n                shape=[batch_size, 4]\n            ),\n            selected_reflections\n        ],\n        axis=2\n    )\n            \n    # shape = [batch_size, 4, 2]\n    _points = tf.gather_nd(_points, _indices)\n    \n    # ----------------------------------------\n    \n    return _points\n\n\ndef random_4_point_transform_2D_batch(images, probability=1.0):\n    \"\"\"Apply 4 point transformation on 2-D images `images` with randomly\n       generated 4 points on target spaces.\n    \n    On source space, the 4 points are the corner points, i.e [0, 0], [0, width],\n    [height, width] and [height, 0].\n    \n    On target space, the 4 points are randomly generated by `random_4_points_2D_batch()`.\n    \"\"\"\n\n    batch_size, height, width = images.shape[:3]\n\n    # 4 corner points in source image\n    # shape = [batch_size, 4, 2]\n    src_pts = tf.convert_to_tensor([[0, 0], [0, width], [height, width], [height, 0]])\n    src_pts = tf.broadcast_to(src_pts, shape=[batch_size, 4, 2])\n\n    # 4 points in target image\n    # shape = [batch_size, 4, 2]\n    tgt_pts = random_4_points_2D_batch(height, width, batch_size, probability=probability)\n    \n    tgt_images = four_point_transform_2D_batch(images, src_pts, tgt_pts)\n\n    return tgt_images\n\n\ndef four_point_transform_2D_batch(images, src_pts, tgt_pts):\n    \"\"\"Apply 4 point transformation determined by `src_pts` and `tgt_pts`\n       on 2-D images `images`.\n    \n    Args:\n        images: 3-D tensor of shape [batch_size, height, width], or 4-D tensor\n            of shape [batch_size, height, width, channels]\n        src_pts: 3-D tensor of shape [batch_size, 4, 2]\n        tgt_pts: 3-D tensor of shape [batch_size, 4, 2]\n        \n    Returns:\n        A tensor with the same shape as `images`.\n    \"\"\"\n    \n    src_to_tgt_mat = get_src_to_tgt_mat_2D_batch(src_pts, tgt_pts)\n    \n    tgt_images = transform_by_perspective_matrix_2D_batch(images, src_to_tgt_mat)\n    \n    return tgt_images\n\n\ndef transform_by_perspective_matrix_2D_batch(images, src_to_tgt_mat):\n    \"\"\"Transform 2-D images by prespective transformation matrices\n    \n    Args:\n        images: 3-D tensor of shape [batch_size, height, width], or 4-D tensor of\n            shape [batch_size, height, width, channels]\n        src_to_tgt_mat: 3-D tensor of shape [batch_size, 3, 3]. This is the\n            transformation matrix mapping the source space to the target space.\n        \n    Returns:\n        A tensor with the same shape as `image`.        \n    \"\"\"\n\n    batch_size, height, width = images.shape[:3]\n\n    # shape = (3, 3)\n    tgt_to_src_mat = tf.linalg.inv(src_to_tgt_mat)\n        \n    # prepare y coordinates\n    # shape = [height * width]\n    ys = tf.repeat(tf.range(height), width) \n    \n    # prepare x coordinates\n    # shape = [height * width]\n    xs = tf.tile(tf.range(width), [height])\n\n    # prepare indices in target space\n    # shape = [2, height * width]\n    tgt_indices = tf.stack([ys, xs], axis=0)\n    \n    # Change to projective coordinates in the target space by adding ones\n    # shape = [3, height * width]\n    tgt_indices_homo = tf.concat([tgt_indices, tf.ones(shape=[1, height * width], dtype=tf.int32)], axis=0)\n    \n    # Get the corresponding projective coordinate in the source space\n    # shape = [batch_size, 3, height * width]\n    src_indices_homo = tf.linalg.matmul(tgt_to_src_mat, tf.cast(tgt_indices_homo, dtype=tf.float64))\n    \n    # normalize the projective coordinates\n    # shape = [batch_size, 3, height * width]\n    src_indices_normalized = src_indices_homo[:, :3, :] / src_indices_homo[:, 2:, :]\n    \n    # Get the affine coordinate by removing ones\n    # shape = [batch_size, 2, height * width]\n    src_indices_affine = tf.cast(src_indices_normalized, dtype=tf.int32)[:, :2, :]\n    \n    # Mask the points outside the range\n    # shape = [batch_size, height * width]\n    y_mask = tf.logical_and(src_indices_affine[:, 0] >= 0, src_indices_affine[:, 0] <= height - 1)\n    x_mask = tf.logical_and(src_indices_affine[:, 1] >= 0, src_indices_affine[:, 1] <= width - 1)\n    mask = tf.logical_and(y_mask, x_mask)\n    \n    # clip the coordinates\n    # shape = [batch_size, 2, height * width]\n    src_indices = tf.clip_by_value(src_indices_affine, clip_value_min=0, clip_value_max=[[height - 1], [width - 1]])\n    \n    # Get a collection of (y_coord, x_coord)\n    # shape = [batch_size, height * width, 2]\n    src_indices = tf.transpose(src_indices, perm=[0, 2, 1])\n    \n    # shape = [batch_size, height * width, channels]\n    tgt_images = tf.gather_nd(images, src_indices, batch_dims=1)\n    \n    # Set pixel to 0 by using the mask\n    tgt_images = tgt_images * tf.cast(mask[:, :, tf.newaxis], tf.float32)\n    \n    # reshape to [height, width, channels]\n    tgt_images = tf.reshape(tgt_images, images.shape)\n\n    return tgt_images\n\n\ndef get_src_to_tgt_mat_2D_batch(src_pts, tgt_pts):\n    \"\"\"Get the perspective transformation matrix from the source space to the target space,\n       which maps the 4 source points to the 4 target points.\n    \n    Args:\n        src_pts: 3-D tensor of shape [batch_size, 4, 2]\n        tgt_pts: 3-D tensor of shape [batch_size, 4, 2]\n        \n    Returns:\n        3-D tensor of shape [batch_size, 3, 3]\n    \"\"\"\n    \n    src_pts = tf.cast(src_pts, tf.int32)\n    tgt_pts = tf.cast(tgt_pts, tf.int32)\n    \n    # The perspective transformation matrix mapping basis vectors and (1, 1, 1) to `src_pts`\n    # shape = [batch_size, 3, 3]\n    src_mat = get_transformation_mat_2D_batch(src_pts)\n    \n    # The perspective transformation matrix mapping basis vectors and (1, 1, 1) to `tgt_pts`\n    # shape = [batch_size, 3, 3]\n    tgt_mat = get_transformation_mat_2D_batch(tgt_pts)\n    \n    # The perspective transformation matrix mapping `src_pts` to `tgt_pts`\n    # shape = [batch_size, 3, 3]\n    src_to_tgt_mat = tf.linalg.matmul(tgt_mat, tf.linalg.inv(src_mat))\n    \n    return src_to_tgt_mat\n  \n    \ndef get_transformation_mat_2D_batch(four_pts):\n    \"\"\"Get the perspective transformation matrix from a space to another space,\n       which maps the basis vectors and (1, 1, 1) to the 4 points defined by `four_pts`.\n    \n    Args:\n        four_pts: 3-D tensor of shape [batch_size, 4, 2]\n        \n    Returns:\n        3-D tensor of shape [batch_size, 3, 3]        \n    \"\"\"\n    \n    batch_size = four_pts.shape[0]\n    \n    # Change to projective coordinates by adding ones\n    # shape = [batch_size, 3, 4]\n    pts_homo = tf.transpose(tf.concat([four_pts, tf.ones(shape=[batch_size, 4, 1], dtype=tf.int32)], axis=-1), perm=[0, 2, 1])\n    \n    pts_homo = tf.cast(pts_homo, tf.float64)\n    \n    # Find `scalars` such that: src_pts_homo[:, 3:] * scalars == src_pts_homo[:, 3:]\n    # shape = [batch_size 3, 3]\n    inv_mat = tf.linalg.inv(pts_homo[:, :, :3])\n    # shape = [batch_size, 3, 1]\n    scalars = tf.linalg.matmul(inv_mat, pts_homo[:, :, 3:])\n    \n    # Get the matrix transforming unit vectors to the 4 source points\n    # shape = [batch_size, 3, 3]    \n    mat = tf.transpose(tf.transpose(pts_homo[:, :, :3], perm=[0, 2, 1]) * scalars, perm=[0, 2, 1])\n    \n    return mat\n\ndef perspective_transform(images, labels, probability=1.0):\n    \"\"\"\n    This is the method used for dataset transformation (random perspective transformation on images).\n    \"\"\"\n        \n    transformed_images = random_4_point_transform_2D_batch(images, probability=probability)\n    \n    return transformed_images, labels","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Visualize perspective transformation<a id='visu-pers-trans'></a>","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"train_dataset = get_training_dataset(batch_size=16, shuffle_buffer_size=1, ordered=True)\ntrain_iter = iter(train_dataset)\n\ntransformed_train_dataset = train_dataset.map(lambda images, labels: perspective_transform(images, labels, probability=0.8))\ntransformed_train_iter = iter(transformed_train_dataset)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# run this cell again for next set of images\nbatch = next(train_iter)\ntransformed_batch = next(transformed_train_iter)\n\ndisplay_pairs_of_image_batch(batch, transformed_batch, ds_name_1='original dataset', ds_name_2='transformed dataset')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Train with data augmentation","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"trainer = Flower_Trainer(\n    batch_size_per_replica=16, prediction_batch_size_per_replica=64, shuffle_buffer_size=None,\n    oversample=True, target_counting=300, grad_acc_steps=8, augmentation_fn=perspective_transform,\n    probability=0.35, log_interval=log_interval\n)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history_8, valid_labels, valid_preds = trainer.train(train_name='with data augmentation', model_name=model_name, epochs=epochs, start_lr=1e-5, max_lr=1e-5, end_lr=1e-5, warmup=0.2, lr_scaling=lr_scaling, optimized_loop=True, verbose=False)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"#### without data augmentation vs. with data augmentation","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"plot_history_pair(history_6, history_8, desc_1=f'[without data augmentation]', desc_2=f'[with data augmentation]', short_desc_1='no data aug.', short_desc_2=f'data aug.')","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"print('results of the last epoch\\n')\n\nprint('    without data augmentation:\\n')\n\nprint('        valid recall:', history_6[len(history_6) - 1]['valid recall'])\nprint('        valid precision:', history_6[len(history_6) - 1]['valid precision'])\nprint('        valid f1:', history_6[len(history_6) - 1]['valid f1'])\n\nprint('\\n    with data augmentation:\\n')\n\nprint('        valid recall:', history_8[len(history_8) - 1]['valid recall'])\nprint('        valid precision:', history_8[len(history_8) - 1]['valid precision'])\nprint('        valid f1:', history_8[len(history_8) - 1]['valid f1'])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Our perspecitve transformation as data augmentation helps the model to perform slightly better on the validation dataset.\nHowever, this might depends on a lot of factors, including the model architecture, model size, image size, etc. Also, our perspective transformation introduces black regions in the images, which might be another factor that affects the model performance. We leave the readers to explore different image augmentation methods by themselves. See the references for some notebooks about data augmentation.\n\nWith [TensorFlow 2.3](https://blog.tensorflow.org/2020/07/whats-new-in-tensorflow-2-3.html), we have the new layer [tf.keras.layers.experimental.preprocessing.RandomRotation](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/RandomRotation) that can perform random rotation for us!\n\n**References**<a id='ref-aug'></a>\n1. [CutMix and MixUp on GPU/TPU](https://www.kaggle.com/cdeotte/cutmix-and-mixup-on-gpu-tpu)\n2. [Rotation Augmentation GPU/TPU - [0.96+]](https://www.kaggle.com/cdeotte/rotation-augmentation-gpu-tpu-0-96)\n3. [Make Chris Deotte's data augmentation faster](https://www.kaggle.com/yihdarshieh/make-chris-deotte-s-data-augmentation-faster)\n4. [batch implementation of more data augmentations](https://www.kaggle.com/yihdarshieh/batch-implementation-of-more-data-augmentations)\n5. [GridMask data augmentation with tensorflow](https://www.kaggle.com/xiejialun/gridmask-data-augmentation-with-tensorflow)\n6. [Flower with TPUs - Advanced augmentations](https://www.kaggle.com/dimitreoliveira/flower-with-tpus-advanced-augmentations)","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"# Conclusion<a id='conclusion'></a>","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"In this notebook, we went through a custom training with TPUs. We learned about datase pipeline, oversampling, distributed dataset and distributed computation. We also saw how to define the loss values correctly, how to collect the return values from TPUs and a way to optimize the training time. A minimal implementation of gradient accumulation is provided for working with TPUs. We also showed a unusual data augmentation - perspective transformation. Finally, we performed several training and compared their results.\n\nI hope you enjoy reading this notebook and learn something new!","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}