{"cells":[{"metadata":{},"cell_type":"markdown","source":"### imports"},{"metadata":{},"cell_type":"markdown","source":"# Introduction \nThis is my effort to do a *minimum* `Keras` replication with comparable baseline to the great kernel of @mhiro2 https://www.kaggle.com/mhiro2/simple-2d-cnn-classifier-with-pytorch (and further improved by @peining), which in turns use the excellent pre-processed data of @daisukelab https://www.kaggle.com/daisukelab/creating-fat2019-preprocessed-data) -- Note that to inference to the private data in stage-2, you have to preprocess data yourself.\n\nOne change I made in a Keras version, instead of a simple conv net, I decide to use a pre-defined architectures [trained from scratch] `MobileNetV2`, `InceptionV3` and `Xception` where you can choose in the kernel. Also, many ideas borrow from a nice kernel of @voglinio https://www.kaggle.com/voglinio/keras-2d-model-5-fold-log-specgram-curated-only , I also borrow the SoftMax+BCE loss & TTA ideas from Giba's kernel (BTW, we all know Giba without having to mention his user :).\n\n**UPDATE in V.17 : I add a simple CNN almost exactly the same as the pytorch baseline**\n\nI apologize that my code is not at all clean; some of the `pytorch` code is still here albeit not used.\n\n## Major Updates\n* V1 [CV680, LB574]\n* V4 [CV66x, LB576]\n* V5 [] Add image augmentation module\n* V9 [CV679] Add lwlrap TF metric (credit @rio114 : https://www.kaggle.com/rio114/keras-cnn-with-lwlrap-evaluation )\n* V11 [] Employ list of augmentations mentioned in https://github.com/sainathadapa/kaggle-freesound-audio-tagging/blob/master/approaches_all.md\n* V16 [] Add BCEwithLogits (use only with ACTIVATION = 'linear')\n* V17 add SimpleCNN similar to the pytorch baseline\n* V20 add Curated-Only, Train-augment options\n\n\n**with BCEwithLogits and SimpleCNN, now this kernel should almost comparable to the pytorch baseline**\n\n### Minor Updates\n* V15[CV662]\n"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import gc\nimport os\nimport pickle\nimport random\nimport time\nfrom collections import Counter, defaultdict\nfrom functools import partial\nfrom pathlib import Path\nfrom psutil import cpu_count\nimport matplotlib.pyplot as plt\n\nimport librosa\nimport numpy as np\nimport pandas as pd\nfrom PIL import Image\nfrom sklearn.model_selection import train_test_split\nfrom imgaug import augmenters as iaa\n#from skmultilearn.model_selection import iterative_train_test_split\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom fastprogress import master_bar, progress_bar\nfrom torch.optim import Adam\nfrom torch.optim.lr_scheduler import CosineAnnealingLR\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision.transforms import transforms","execution_count":3,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### utils"},{"metadata":{"trusted":true},"cell_type":"code","source":"NUM_CLASSES = 80\ncheckpoint_file = 'model_best.h5'\nSIZE=128\nEPOCHS = 200 #150 for inception, 100 for xception\nBATCH_SIZE = 64\n\nLR = 4e-4\nTTA = 19 #Number of test-time augmentation\nPATIENCE = 5  #ReduceOnPlateau option\nLR_FACTOR = 0.25 #ReduceOnPlateau option\nCURATED_ONLY = True # use only curated data for training\nTRAIN_AUGMENT = True # use augmentation for training data?\nMODEL = 'inception' # choose among 'xception', 'inception', 'mobile', 'simple'\n\n# if use BCEwithLogits loss, use Activation = 'linear' only\nACTIVATION = 'linear' \n# ACTIVATION = 'softmax'\n# ACTIVATION = 'sigmoid'\n\n# LOSS = 'categorical_crossentropy'\n# LOSS = 'binary_crossentropy' \nLOSS = 'BCEwithLogits' ","execution_count":4,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def seed_everything(seed):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    torch.manual_seed(seed)\n    torch.cuda.manual_seed(seed)\n    torch.backends.cudnn.deterministic = True\n\nSEED = 520\nseed_everything(SEED)","execution_count":5,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true,"_kg_hide-output":true},"cell_type":"code","source":"# from official code https://colab.research.google.com/drive/1AgPdhSp7ttY18O3fEoHOQKlt_3HJDLi8#scrollTo=cRCaCIb9oguU\ndef _one_sample_positive_class_precisions(scores, truth):\n    \"\"\"Calculate precisions for each true class for a single sample.\n\n    Args:\n      scores: np.array of (num_classes,) giving the individual classifier scores.\n      truth: np.array of (num_classes,) bools indicating which classes are true.\n\n    Returns:\n      pos_class_indices: np.array of indices of the true classes for this sample.\n      pos_class_precisions: np.array of precisions corresponding to each of those\n        classes.\n    \"\"\"\n    num_classes = scores.shape[0]\n    pos_class_indices = np.flatnonzero(truth > 0)\n    # Only calculate precisions if there are some true classes.\n    if not len(pos_class_indices):\n        return pos_class_indices, np.zeros(0)\n    # Retrieval list of classes for this sample.\n    retrieved_classes = np.argsort(scores)[::-1]\n    # class_rankings[top_scoring_class_index] == 0 etc.\n    class_rankings = np.zeros(num_classes, dtype=np.int)\n    class_rankings[retrieved_classes] = range(num_classes)\n    # Which of these is a true label?\n    retrieved_class_true = np.zeros(num_classes, dtype=np.bool)\n    retrieved_class_true[class_rankings[pos_class_indices]] = True\n    # Num hits for every truncated retrieval list.\n    retrieved_cumulative_hits = np.cumsum(retrieved_class_true)\n    # Precision of retrieval list truncated at each hit, in order of pos_labels.\n    precision_at_hits = (\n            retrieved_cumulative_hits[class_rankings[pos_class_indices]] /\n            (1 + class_rankings[pos_class_indices].astype(np.float)))\n    return pos_class_indices, precision_at_hits\n\n\ndef calculate_per_class_lwlrap(truth, scores):\n    \"\"\"Calculate label-weighted label-ranking average precision.\n\n    Arguments:\n      truth: np.array of (num_samples, num_classes) giving boolean ground-truth\n        of presence of that class in that sample.\n      scores: np.array of (num_samples, num_classes) giving the classifier-under-\n        test's real-valued score for each class for each sample.\n\n    Returns:\n      per_class_lwlrap: np.array of (num_classes,) giving the lwlrap for each\n        class.\n      weight_per_class: np.array of (num_classes,) giving the prior of each\n        class within the truth labels.  Then the overall unbalanced lwlrap is\n        simply np.sum(per_class_lwlrap * weight_per_class)\n    \"\"\"\n    assert truth.shape == scores.shape\n    num_samples, num_classes = scores.shape\n    # Space to store a distinct precision value for each class on each sample.\n    # Only the classes that are true for each sample will be filled in.\n    precisions_for_samples_by_classes = np.zeros((num_samples, num_classes))\n    for sample_num in range(num_samples):\n        pos_class_indices, precision_at_hits = (\n            _one_sample_positive_class_precisions(scores[sample_num, :],\n                                                  truth[sample_num, :]))\n        precisions_for_samples_by_classes[sample_num, pos_class_indices] = (\n            precision_at_hits)\n    labels_per_class = np.sum(truth > 0, axis=0)\n    weight_per_class = labels_per_class / float(np.sum(labels_per_class))\n    # Form average of each column, i.e. all the precisions assigned to labels in\n    # a particular class.\n    per_class_lwlrap = (np.sum(precisions_for_samples_by_classes, axis=0) /\n                        np.maximum(1, labels_per_class))\n    # overall_lwlrap = simple average of all the actual per-class, per-sample precisions\n    #                = np.sum(precisions_for_samples_by_classes) / np.sum(precisions_for_samples_by_classes > 0)\n    #           also = weighted mean of per-class lwlraps, weighted by class label prior across samples\n    #                = np.sum(per_class_lwlrap * weight_per_class)\n    return per_class_lwlrap, weight_per_class","execution_count":6,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true,"_kg_hide-output":true},"cell_type":"code","source":"import tensorflow as tf\n\n# from https://www.kaggle.com/ratthachat/keras-cnn-with-lwlrap-evaluation/edit\ndef tf_one_sample_positive_class_precisions(y_true, y_pred) :\n    num_samples, num_classes = y_pred.shape\n    \n    # find true labels\n    pos_class_indices = tf.where(y_true > 0) \n    \n    # put rank on each element\n    retrieved_classes = tf.nn.top_k(y_pred, k=num_classes).indices\n    sample_range = tf.zeros(shape=tf.shape(tf.transpose(y_pred)), dtype=tf.int32)\n    sample_range = tf.add(sample_range, tf.range(tf.shape(y_pred)[0], delta=1))\n    sample_range = tf.transpose(sample_range)\n    sample_range = tf.reshape(sample_range, (-1,num_classes*tf.shape(y_pred)[0]))\n    retrieved_classes = tf.reshape(retrieved_classes, (-1,num_classes*tf.shape(y_pred)[0]))\n    retrieved_class_map = tf.concat((sample_range, retrieved_classes), axis=0)\n    retrieved_class_map = tf.transpose(retrieved_class_map)\n    retrieved_class_map = tf.reshape(retrieved_class_map, (tf.shape(y_pred)[0], num_classes, 2))\n    \n    class_range = tf.zeros(shape=tf.shape(y_pred), dtype=tf.int32)\n    class_range = tf.add(class_range, tf.range(num_classes, delta=1))\n    \n    class_rankings = tf.scatter_nd(retrieved_class_map,\n                                          class_range,\n                                          tf.shape(y_pred))\n    \n    #pick_up ranks\n    num_correct_until_correct = tf.gather_nd(class_rankings, pos_class_indices)\n\n    # add one for division for \"presicion_at_hits\"\n    num_correct_until_correct_one = tf.add(num_correct_until_correct, 1) \n    num_correct_until_correct_one = tf.cast(num_correct_until_correct_one, tf.float32)\n    \n    # generate tensor [num_sample, predict_rank], \n    # top-N predicted elements have flag, N is the number of positive for each sample.\n    sample_label = pos_class_indices[:, 0]   \n    sample_label = tf.reshape(sample_label, (-1, 1))\n    sample_label = tf.cast(sample_label, tf.int32)\n    \n    num_correct_until_correct = tf.reshape(num_correct_until_correct, (-1, 1))\n    retrieved_class_true_position = tf.concat((sample_label, \n                                               num_correct_until_correct), axis=1)\n    retrieved_pos = tf.ones(shape=tf.shape(retrieved_class_true_position)[0], dtype=tf.int32)\n    retrieved_class_true = tf.scatter_nd(retrieved_class_true_position, \n                                         retrieved_pos, \n                                         tf.shape(y_pred))\n    # cumulate predict_rank\n    retrieved_cumulative_hits = tf.cumsum(retrieved_class_true, axis=1)\n\n    # find positive position\n    pos_ret_indices = tf.where(retrieved_class_true > 0)\n\n    # find cumulative hits\n    correct_rank = tf.gather_nd(retrieved_cumulative_hits, pos_ret_indices)  \n    correct_rank = tf.cast(correct_rank, tf.float32)\n\n    # compute presicion\n    precision_at_hits = tf.truediv(correct_rank, num_correct_until_correct_one)\n\n    return pos_class_indices, precision_at_hits\n\ndef tf_lwlrap(y_true, y_pred):\n    num_samples, num_classes = y_pred.shape\n    pos_class_indices, precision_at_hits = (tf_one_sample_positive_class_precisions(y_true, y_pred))\n    pos_flgs = tf.cast(y_true > 0, tf.int32)\n    labels_per_class = tf.reduce_sum(pos_flgs, axis=0)\n    weight_per_class = tf.truediv(tf.cast(labels_per_class, tf.float32),\n                                  tf.cast(tf.reduce_sum(labels_per_class), tf.float32))\n    sum_precisions_by_classes = tf.zeros(shape=(num_classes), dtype=tf.float32)  \n    class_label = pos_class_indices[:,1]\n    sum_precisions_by_classes = tf.unsorted_segment_sum(precision_at_hits,\n                                                        class_label,\n                                                       num_classes)\n    labels_per_class = tf.cast(labels_per_class, tf.float32)\n    labels_per_class = tf.add(labels_per_class, 1e-7)\n    per_class_lwlrap = tf.truediv(sum_precisions_by_classes,\n                                  tf.cast(labels_per_class, tf.float32))\n    out = tf.cast(tf.tensordot(per_class_lwlrap, weight_per_class, axes=1), dtype=tf.float32)\n    return out","execution_count":7,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras import backend as k\ndef BCEwithLogits(y_true, y_pred):\n    return K.mean(K.binary_crossentropy(y_true, y_pred, from_logits=True), axis=-1)","execution_count":8,"outputs":[{"output_type":"stream","text":"Using TensorFlow backend.\n","name":"stderr"}]},{"metadata":{},"cell_type":"markdown","source":"### dataset"},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"dataset_dir = Path('../input/freesound-audio-tagging-2019')\npreprocessed_dir = Path('../input/fat2019_prep_mels1')","execution_count":9,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"csvs = {\n    'train_curated': dataset_dir / 'train_curated.csv',\n    #'train_noisy': dataset_dir / 'train_noisy.csv',\n    'train_noisy': preprocessed_dir / 'trn_noisy_best50s.csv',\n    'sample_submission': dataset_dir / 'sample_submission.csv',\n}\n\ndataset = {\n    'train_curated': dataset_dir / 'train_curated',\n    'train_noisy': dataset_dir / 'train_noisy',\n    'test': dataset_dir / 'test',\n}\n\nmels = {\n    'train_curated': preprocessed_dir / 'mels_train_curated.pkl',\n    'train_noisy': preprocessed_dir / 'mels_trn_noisy_best50s.pkl',\n    'test': preprocessed_dir / 'mels_test.pkl',  # NOTE: this data doesn't work at 2nd stage\n}","execution_count":10,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_curated = pd.read_csv(csvs['train_curated'])\ntrain_noisy = pd.read_csv(csvs['train_noisy'])\nif CURATED_ONLY:\n    train_df = train_curated\nelse:\n    train_df = pd.concat([train_curated, train_noisy], sort=True, ignore_index=True)\ntrain_df.head()","execution_count":11,"outputs":[{"output_type":"execute_result","execution_count":11,"data":{"text/plain":"          fname           labels\n0  0006ae4e.wav             Bark\n1  0019ef41.wav         Raindrop\n2  001ec0ad.wav  Finger_snapping\n3  0026c7cb.wav              Run\n4  0026f116.wav  Finger_snapping","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>fname</th>\n      <th>labels</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0006ae4e.wav</td>\n      <td>Bark</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0019ef41.wav</td>\n      <td>Raindrop</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>001ec0ad.wav</td>\n      <td>Finger_snapping</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>0026c7cb.wav</td>\n      <td>Run</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0026f116.wav</td>\n      <td>Finger_snapping</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_df = pd.read_csv(csvs['sample_submission'])\ntest_df.head()","execution_count":12,"outputs":[{"output_type":"execute_result","execution_count":12,"data":{"text/plain":"          fname        ...          Zipper_(clothing)\n0  000ccb97.wav        ...                          0\n1  0012633b.wav        ...                          0\n2  001ed5f1.wav        ...                          0\n3  00294be0.wav        ...                          0\n4  003fde7a.wav        ...                          0\n\n[5 rows x 81 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>fname</th>\n      <th>Accelerating_and_revving_and_vroom</th>\n      <th>Accordion</th>\n      <th>Acoustic_guitar</th>\n      <th>Applause</th>\n      <th>Bark</th>\n      <th>Bass_drum</th>\n      <th>Bass_guitar</th>\n      <th>Bathtub_(filling_or_washing)</th>\n      <th>Bicycle_bell</th>\n      <th>Burping_and_eructation</th>\n      <th>Bus</th>\n      <th>Buzz</th>\n      <th>Car_passing_by</th>\n      <th>Cheering</th>\n      <th>Chewing_and_mastication</th>\n      <th>Child_speech_and_kid_speaking</th>\n      <th>Chink_and_clink</th>\n      <th>Chirp_and_tweet</th>\n      <th>Church_bell</th>\n      <th>Clapping</th>\n      <th>Computer_keyboard</th>\n      <th>Crackle</th>\n      <th>Cricket</th>\n      <th>Crowd</th>\n      <th>Cupboard_open_or_close</th>\n      <th>Cutlery_and_silverware</th>\n      <th>Dishes_and_pots_and_pans</th>\n      <th>Drawer_open_or_close</th>\n      <th>Drip</th>\n      <th>Electric_guitar</th>\n      <th>Fart</th>\n      <th>Female_singing</th>\n      <th>Female_speech_and_woman_speaking</th>\n      <th>Fill_(with_liquid)</th>\n      <th>Finger_snapping</th>\n      <th>Frying_(food)</th>\n      <th>Gasp</th>\n      <th>Glockenspiel</th>\n      <th>Gong</th>\n      <th>...</th>\n      <th>Harmonica</th>\n      <th>Hi-hat</th>\n      <th>Hiss</th>\n      <th>Keys_jangling</th>\n      <th>Knock</th>\n      <th>Male_singing</th>\n      <th>Male_speech_and_man_speaking</th>\n      <th>Marimba_and_xylophone</th>\n      <th>Mechanical_fan</th>\n      <th>Meow</th>\n      <th>Microwave_oven</th>\n      <th>Motorcycle</th>\n      <th>Printer</th>\n      <th>Purr</th>\n      <th>Race_car_and_auto_racing</th>\n      <th>Raindrop</th>\n      <th>Run</th>\n      <th>Scissors</th>\n      <th>Screaming</th>\n      <th>Shatter</th>\n      <th>Sigh</th>\n      <th>Sink_(filling_or_washing)</th>\n      <th>Skateboard</th>\n      <th>Slam</th>\n      <th>Sneeze</th>\n      <th>Squeak</th>\n      <th>Stream</th>\n      <th>Strum</th>\n      <th>Tap</th>\n      <th>Tick-tock</th>\n      <th>Toilet_flush</th>\n      <th>Traffic_noise_and_roadway_noise</th>\n      <th>Trickle_and_dribble</th>\n      <th>Walk_and_footsteps</th>\n      <th>Water_tap_and_faucet</th>\n      <th>Waves_and_surf</th>\n      <th>Whispering</th>\n      <th>Writing</th>\n      <th>Yell</th>\n      <th>Zipper_(clothing)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000ccb97.wav</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0012633b.wav</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>001ed5f1.wav</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>00294be0.wav</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>003fde7a.wav</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>...</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"labels = test_df.columns[1:].tolist()\nlabels[:10]","execution_count":13,"outputs":[{"output_type":"execute_result","execution_count":13,"data":{"text/plain":"['Accelerating_and_revving_and_vroom',\n 'Accordion',\n 'Acoustic_guitar',\n 'Applause',\n 'Bark',\n 'Bass_drum',\n 'Bass_guitar',\n 'Bathtub_(filling_or_washing)',\n 'Bicycle_bell',\n 'Burping_and_eructation']"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"num_classes = len(labels)\nnum_classes","execution_count":14,"outputs":[{"output_type":"execute_result","execution_count":14,"data":{"text/plain":"80"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train = np.zeros((len(train_df), num_classes)).astype(int)\nfor i, row in enumerate(train_df['labels'].str.split(',')):\n    for label in row:\n        idx = labels.index(label)\n        y_train[i, idx] = 1\n\ny_train.shape","execution_count":15,"outputs":[{"output_type":"execute_result","execution_count":15,"data":{"text/plain":"(4970, 80)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"with open(mels['train_curated'], 'rb') as curated, open(mels['train_noisy'], 'rb') as noisy:\n    x_train = pickle.load(curated)\n    if CURATED_ONLY == False:\n        x_train.extend(pickle.load(noisy))\n\nwith open(mels['test'], 'rb') as test:\n    x_test = pickle.load(test)\n    \nlen(x_train), len(x_test)","execution_count":16,"outputs":[{"output_type":"execute_result","execution_count":16,"data":{"text/plain":"(4970, 1120)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"\nfor ii in range(5):\n    print(x_train[ii].shape) #x_train is of shape (TRAIN_NUM,128,LEN,3) [4D Tensor]\n    print(x_test[ii].shape,'\\n')  #x_test of shape (TEST_NUM,128,LEN,3) [4D Tensor]","execution_count":17,"outputs":[{"output_type":"stream","text":"(128, 448, 3)\n(128, 128, 3) \n\n(128, 131, 3)\n(128, 1021, 3) \n\n(128, 128, 3)\n(128, 300, 3) \n\n(128, 1623, 3)\n(128, 1146, 3) \n\n(128, 128, 3)\n(128, 1442, 3) \n\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"### model"},{"metadata":{"trusted":true,"_kg_hide-input":true,"_kg_hide-output":true},"cell_type":"code","source":"from keras.layers import *\nfrom keras.models import Sequential, load_model, Model\nfrom keras import metrics\nfrom keras.optimizers import Adam \nfrom keras import backend as K\nimport keras\nfrom keras.models import Model\nfrom keras.applications.inception_v3 import InceptionV3\nfrom keras.applications.inception_v3 import preprocess_input as preprocess_inception\nfrom keras.applications.mobilenet_v2 import MobileNetV2\nfrom keras.applications.mobilenet_v2 import preprocess_input as preprocess_mobile\nfrom keras.applications.xception import Xception\nfrom keras.applications.xception import preprocess_input as preprocess_xception\n\nfrom keras.utils import Sequence\nfrom sklearn.utils import shuffle\ndef create_model_inception(n_out=NUM_CLASSES):\n\n    base_model =InceptionV3(weights=None, include_top=False)\n    \n    x0 = base_model.output\n    x1 = GlobalAveragePooling2D()(x0)\n    x2 = GlobalMaxPooling2D()(x0)\n    x = Concatenate()([x1,x2])\n    \n    x = BatchNormalization()(x)\n    x = Dropout(0.5)(x)\n    \n    x = Dense(256, activation='relu')(x)\n    x = BatchNormalization()(x)\n    x = Dropout(0.5)(x)\n\n    \n    predictions = Dense(n_out, activation=ACTIVATION)(x)\n\n    # this is the model we will train\n    model = Model(inputs=base_model.input, outputs=predictions)\n    return model","execution_count":18,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def create_model_xception(n_out=NUM_CLASSES):\n\n    base_model = Xception(weights=None, include_top=False)\n    \n    x0 = base_model.output\n    x1 = GlobalAveragePooling2D()(x0)\n    x2 = GlobalMaxPooling2D()(x0)\n    x = Concatenate()([x1,x2])\n    \n    x = BatchNormalization()(x)\n    x = Dropout(0.5)(x)\n    \n    x = Dense(256, activation='relu')(x)\n    x = BatchNormalization()(x)\n    x = Dropout(0.5)(x)\n\n#     x = Dense(128, activation='relu')(x)\n#     x = BatchNormalization()(x)\n#     x = Dropout(0.3)(x)\n    \n    predictions = Dense(n_out, activation=ACTIVATION)(x)\n\n    # this is the model we will train\n    model = Model(inputs=base_model.input, outputs=predictions)\n    return model","execution_count":19,"outputs":[]},{"metadata":{"trusted":true,"_kg_hide-input":true,"_kg_hide-output":true},"cell_type":"code","source":"def create_model_mobile(n_out=NUM_CLASSES):\n\n    base_model =MobileNetV2(weights=None, include_top=False)\n    \n    x0 = base_model.output\n    x1 = GlobalAveragePooling2D()(x0)\n    x2 = GlobalMaxPooling2D()(x0)\n    x = Concatenate()([x1,x2])\n    \n    x = BatchNormalization()(x)\n    x = Dropout(0.5)(x)\n    \n    x = Dense(256, activation='relu')(x)\n    x = BatchNormalization()(x)\n    x = Dropout(0.5)(x)\n\n#     x = Dense(128, activation='relu')(x)\n#     x = BatchNormalization()(x)\n#     x = Dropout(0.25)(x)\n\n    \n    predictions = Dense(n_out, activation=ACTIVATION)(x)\n\n    # this is the model we will train\n    model = Model(inputs=base_model.input, outputs=predictions)\n    return model","execution_count":20,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def conv_simple_block(x, n_filters):\n    \n    x = Convolution2D(n_filters, (3,1), padding=\"same\")(x)\n    x = BatchNormalization()(x)\n    x = Activation(\"relu\")(x)\n    \n    x = Convolution2D(n_filters, (3,1), padding=\"same\")(x)\n    x = BatchNormalization()(x)\n    x = Activation(\"relu\")(x)\n    x = AveragePooling2D()(x)\n\n    return x\n\ndef create_model_simplecnn(n_out=NUM_CLASSES):\n    \n    inp = Input(shape=(128,128,3))\n#     inp = Input(shape=(None,None,3))\n    x = conv_simple_block(inp,64)\n    x = conv_simple_block(x,128)\n    x = conv_simple_block(x,256)\n    x = conv_simple_block(x,512)\n    \n    x1 = GlobalAveragePooling2D()(x)\n    x2 = GlobalMaxPooling2D()(x)\n    x = Add()([x1,x2])\n\n    x = Dropout(0.2)(x)\n\n    x = Dense(128, activation='linear')(x)\n    x = PReLU()(x)\n    x = BatchNormalization()(x)\n    x = Dropout(0.1)(x)\n    predictions = Dense(n_out, activation=ACTIVATION)(x)\n\n    model = Model(inputs=inp, outputs=predictions)\n    return model","execution_count":21,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"'''Choose your model here'''\nif MODEL == 'xception':\n    preprocess_input = preprocess_xception\n    model = create_model_xception(n_out=NUM_CLASSES)\nif MODEL == 'inception':\n    preprocess_input = preprocess_inception\n    model = create_model_inception(n_out=NUM_CLASSES)\nif MODEL == 'mobile':\n    preprocess_input = preprocess_mobile\n    model = create_model_mobile(n_out=NUM_CLASSES)\nelse:\n    preprocess_input = preprocess_mobile\n    model = create_model_simplecnn(\n    n_out=NUM_CLASSES)\n\nprint(MODEL)\nmodel.summary()","execution_count":22,"outputs":[{"output_type":"stream","text":"WARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nColocations handled automatically by placer.\nWARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\nInstructions for updating:\nPlease use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\ninception\n__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_2 (InputLayer)            (None, 128, 128, 3)  0                                            \n__________________________________________________________________________________________________\nconv2d_95 (Conv2D)              (None, 128, 128, 64) 640         input_2[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_97 (BatchNo (None, 128, 128, 64) 256         conv2d_95[0][0]                  \n__________________________________________________________________________________________________\nactivation_95 (Activation)      (None, 128, 128, 64) 0           batch_normalization_97[0][0]     \n__________________________________________________________________________________________________\nconv2d_96 (Conv2D)              (None, 128, 128, 64) 12352       activation_95[0][0]              \n__________________________________________________________________________________________________\nbatch_normalization_98 (BatchNo (None, 128, 128, 64) 256         conv2d_96[0][0]                  \n__________________________________________________________________________________________________\nactivation_96 (Activation)      (None, 128, 128, 64) 0           batch_normalization_98[0][0]     \n__________________________________________________________________________________________________\naverage_pooling2d_10 (AveragePo (None, 64, 64, 64)   0           activation_96[0][0]              \n__________________________________________________________________________________________________\nconv2d_97 (Conv2D)              (None, 64, 64, 128)  24704       average_pooling2d_10[0][0]       \n__________________________________________________________________________________________________\nbatch_normalization_99 (BatchNo (None, 64, 64, 128)  512         conv2d_97[0][0]                  \n__________________________________________________________________________________________________\nactivation_97 (Activation)      (None, 64, 64, 128)  0           batch_normalization_99[0][0]     \n__________________________________________________________________________________________________\nconv2d_98 (Conv2D)              (None, 64, 64, 128)  49280       activation_97[0][0]              \n__________________________________________________________________________________________________\nbatch_normalization_100 (BatchN (None, 64, 64, 128)  512         conv2d_98[0][0]                  \n__________________________________________________________________________________________________\nactivation_98 (Activation)      (None, 64, 64, 128)  0           batch_normalization_100[0][0]    \n__________________________________________________________________________________________________\naverage_pooling2d_11 (AveragePo (None, 32, 32, 128)  0           activation_98[0][0]              \n__________________________________________________________________________________________________\nconv2d_99 (Conv2D)              (None, 32, 32, 256)  98560       average_pooling2d_11[0][0]       \n__________________________________________________________________________________________________\nbatch_normalization_101 (BatchN (None, 32, 32, 256)  1024        conv2d_99[0][0]                  \n__________________________________________________________________________________________________\nactivation_99 (Activation)      (None, 32, 32, 256)  0           batch_normalization_101[0][0]    \n__________________________________________________________________________________________________\nconv2d_100 (Conv2D)             (None, 32, 32, 256)  196864      activation_99[0][0]              \n__________________________________________________________________________________________________\nbatch_normalization_102 (BatchN (None, 32, 32, 256)  1024        conv2d_100[0][0]                 \n__________________________________________________________________________________________________\nactivation_100 (Activation)     (None, 32, 32, 256)  0           batch_normalization_102[0][0]    \n__________________________________________________________________________________________________\naverage_pooling2d_12 (AveragePo (None, 16, 16, 256)  0           activation_100[0][0]             \n__________________________________________________________________________________________________\nconv2d_101 (Conv2D)             (None, 16, 16, 512)  393728      average_pooling2d_12[0][0]       \n__________________________________________________________________________________________________\nbatch_normalization_103 (BatchN (None, 16, 16, 512)  2048        conv2d_101[0][0]                 \n__________________________________________________________________________________________________\nactivation_101 (Activation)     (None, 16, 16, 512)  0           batch_normalization_103[0][0]    \n__________________________________________________________________________________________________\nconv2d_102 (Conv2D)             (None, 16, 16, 512)  786944      activation_101[0][0]             \n__________________________________________________________________________________________________\nbatch_normalization_104 (BatchN (None, 16, 16, 512)  2048        conv2d_102[0][0]                 \n__________________________________________________________________________________________________\nactivation_102 (Activation)     (None, 16, 16, 512)  0           batch_normalization_104[0][0]    \n__________________________________________________________________________________________________\naverage_pooling2d_13 (AveragePo (None, 8, 8, 512)    0           activation_102[0][0]             \n__________________________________________________________________________________________________\nglobal_average_pooling2d_2 (Glo (None, 512)          0           average_pooling2d_13[0][0]       \n__________________________________________________________________________________________________\nglobal_max_pooling2d_2 (GlobalM (None, 512)          0           average_pooling2d_13[0][0]       \n__________________________________________________________________________________________________\nadd_1 (Add)                     (None, 512)          0           global_average_pooling2d_2[0][0] \n                                                                 global_max_pooling2d_2[0][0]     \n__________________________________________________________________________________________________\ndropout_3 (Dropout)             (None, 512)          0           add_1[0][0]                      \n__________________________________________________________________________________________________\ndense_3 (Dense)                 (None, 128)          65664       dropout_3[0][0]                  \n__________________________________________________________________________________________________\np_re_lu_1 (PReLU)               (None, 128)          128         dense_3[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_105 (BatchN (None, 128)          512         p_re_lu_1[0][0]                  \n__________________________________________________________________________________________________\ndropout_4 (Dropout)             (None, 128)          0           batch_normalization_105[0][0]    \n__________________________________________________________________________________________________\ndense_4 (Dense)                 (None, 80)           10320       dropout_4[0][0]                  \n==================================================================================================\nTotal params: 1,647,376\nTrainable params: 1,643,280\nNon-trainable params: 4,096\n__________________________________________________________________________________________________\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"### train"},{"metadata":{"trusted":true},"cell_type":"code","source":"# If you want, you can try more advanced augmentation like this\naugment_img = iaa.Sequential([\n    iaa.SomeOf((0,3),[\n#         iaa.ContrastNormalization((0.9, 1.1)),\n#         iaa.Multiply((0.9, 1.1), per_channel=0.2),\n        iaa.Fliplr(0.5),\n        iaa.GaussianBlur(sigma=(0, 0.1)),\n        iaa.Affine( # x-shift\n            translate_percent={\"x\": (-0.1, 0.1), \"y\": (-0.0, 0.0)},\n        ),\n        iaa.CoarseDropout(0.1,size_percent=0.05) # see examples : https://github.com/aleju/imgaug\n            ])], random_order=True)\n\n\n# Or you can choose this simplest augmentation (like pytorch version)\n# augment_img = iaa.Fliplr(0.5)\n\n# This is my ugly modification; sorry about that\nclass FATTrainDataset(Sequence):\n\n    def getitem(image):\n        # crop 2sec\n\n        base_dim, time_dim, _ = image.shape\n        crop = random.randint(0, time_dim - base_dim)\n        image = image[:,crop:crop+base_dim,:]\n\n        image = preprocess_input(image)\n        \n#         label = self.labels[idx]\n        return image\n    def create_generator(train_X, train_y, batch_size, shape, augument=False, shuffling=False, test_data=False):\n        assert shape[2] == 3\n        while True:\n            if shuffling:\n                train_X,train_y = shuffle(train_X,train_y)\n\n            for start in range(0, len(train_y), batch_size):\n                end = min(start + batch_size, len(train_y))\n                batch_images = []\n                X_train_batch = train_X[start:end]\n                if test_data == False:\n                    batch_labels = train_y[start:end]\n                \n                for i in range(len(X_train_batch)):\n                    image = FATTrainDataset.getitem(X_train_batch[i])   \n                    if augument:\n                        image = FATTrainDataset.augment(image)\n                    batch_images.append(image)\n                    \n                if test_data == False:\n                    yield np.array(batch_images, np.float32), batch_labels\n                else:\n                    yield np.array(batch_images, np.float32)\n        return image\n    \n    def augment(image):\n\n        image_aug = augment_img.augment_image(image)\n        return image_aug","execution_count":23,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from keras.callbacks import (ModelCheckpoint, LearningRateScheduler,\n                             EarlyStopping, ReduceLROnPlateau,CSVLogger)\n                             \nfrom sklearn.model_selection import train_test_split\n\ncheckpoint = ModelCheckpoint(checkpoint_file, monitor='val_tf_lwlrap', verbose=1, \n                             save_best_only=True, mode='max', save_weights_only = False)\n\nreduceLROnPlat = ReduceLROnPlateau(monitor='val_tf_lwlrap', factor=LR_FACTOR, patience=PATIENCE, \n                                   verbose=1, mode='max', min_delta=0.0001, cooldown=2, min_lr=1e-5 )\n\ncsv_logger = CSVLogger(filename='../working/training_log.csv',\n                       separator=',',\n                       append=True)\n\n\n# split data into train, valid\nx_trn, x_val, y_trn, y_val = train_test_split(x_train, y_train, test_size=0.2, random_state=SEED)\n\n# create train and valid datagens\ntrain_generator = FATTrainDataset.create_generator(\n    x_trn, y_trn, BATCH_SIZE, (SIZE,SIZE,3), augument=TRAIN_AUGMENT, shuffling=True)\nvalidation_generator = FATTrainDataset.create_generator(\n    x_val, y_val, BATCH_SIZE, (SIZE,SIZE,3), augument=False, shuffling=False)\n\ncallbacks_list = [checkpoint, csv_logger, reduceLROnPlat]","execution_count":24,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_steps = np.ceil(float(len(x_trn)) / float(BATCH_SIZE))\nval_steps = np.ceil(float(len(x_val)) / float(BATCH_SIZE))\ntrain_steps = train_steps.astype(int)\nval_steps = val_steps.astype(int)\nprint(train_steps, val_steps)\nprint(len(x_trn), BATCH_SIZE)\n","execution_count":25,"outputs":[{"output_type":"stream","text":"63 16\n3976 64\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(LOSS)\nif LOSS=='BCEwithLogits':\n     model.compile(loss=BCEwithLogits,\n            optimizer=Adam(lr=LR),\n            metrics=[tf_lwlrap,'categorical_accuracy'])\nelse:\n    model.compile(loss=LOSS,\n            optimizer=Adam(lr=LR),\n            metrics=[tf_lwlrap,'categorical_accuracy'])\n","execution_count":26,"outputs":[{"output_type":"stream","text":"BCEwithLogits\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"\n\nhist = model.fit_generator(\n    train_generator,\n    steps_per_epoch=train_steps,\n    validation_data=validation_generator,\n    validation_steps=val_steps,\n    epochs=EPOCHS,\n    verbose=1,\n    callbacks=callbacks_list)","execution_count":27,"outputs":[{"output_type":"stream","text":"WARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nUse tf.cast instead.\nWARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/math_grad.py:102: div (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nDeprecated in favor of operator or tf.math.divide.\nEpoch 1/200\n63/63 [==============================] - 20s 318ms/step - loss: 0.7227 - tf_lwlrap: 0.0862 - categorical_accuracy: 0.0164 - val_loss: 0.6846 - val_tf_lwlrap: 0.0919 - val_categorical_accuracy: 0.0191\n\nEpoch 00001: val_tf_lwlrap improved from -inf to 0.09194, saving model to model_best.h5\nEpoch 2/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.6515 - tf_lwlrap: 0.0966 - categorical_accuracy: 0.0203 - val_loss: 0.6204 - val_tf_lwlrap: 0.1267 - val_categorical_accuracy: 0.0412\n\nEpoch 00002: val_tf_lwlrap improved from 0.09194 to 0.12671, saving model to model_best.h5\nEpoch 3/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.5416 - tf_lwlrap: 0.0953 - categorical_accuracy: 0.0241 - val_loss: 0.3723 - val_tf_lwlrap: 0.0844 - val_categorical_accuracy: 0.0211\n\nEpoch 00003: val_tf_lwlrap did not improve from 0.12671\nEpoch 4/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.3814 - tf_lwlrap: 0.0946 - categorical_accuracy: 0.0248 - val_loss: 0.2701 - val_tf_lwlrap: 0.1320 - val_categorical_accuracy: 0.0594\n\nEpoch 00004: val_tf_lwlrap improved from 0.12671 to 0.13198, saving model to model_best.h5\nEpoch 5/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.2422 - tf_lwlrap: 0.0983 - categorical_accuracy: 0.0258 - val_loss: 0.1857 - val_tf_lwlrap: 0.1227 - val_categorical_accuracy: 0.0493\n\nEpoch 00005: val_tf_lwlrap did not improve from 0.13198\nEpoch 6/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.1605 - tf_lwlrap: 0.1078 - categorical_accuracy: 0.0303 - val_loss: 0.1233 - val_tf_lwlrap: 0.0887 - val_categorical_accuracy: 0.0141\n\nEpoch 00006: val_tf_lwlrap did not improve from 0.13198\nEpoch 7/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.1191 - tf_lwlrap: 0.1261 - categorical_accuracy: 0.0350 - val_loss: 0.0953 - val_tf_lwlrap: 0.1361 - val_categorical_accuracy: 0.0382\n\nEpoch 00007: val_tf_lwlrap improved from 0.13198 to 0.13608, saving model to model_best.h5\nEpoch 8/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0992 - tf_lwlrap: 0.1397 - categorical_accuracy: 0.0454 - val_loss: 0.0868 - val_tf_lwlrap: 0.1310 - val_categorical_accuracy: 0.0463\n\nEpoch 00008: val_tf_lwlrap did not improve from 0.13608\nEpoch 9/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0890 - tf_lwlrap: 0.1427 - categorical_accuracy: 0.0434 - val_loss: 0.0775 - val_tf_lwlrap: 0.1282 - val_categorical_accuracy: 0.0372\n\nEpoch 00009: val_tf_lwlrap did not improve from 0.13608\nEpoch 10/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0817 - tf_lwlrap: 0.1716 - categorical_accuracy: 0.0571 - val_loss: 0.0750 - val_tf_lwlrap: 0.2143 - val_categorical_accuracy: 0.0825\n\nEpoch 00010: val_tf_lwlrap improved from 0.13608 to 0.21434, saving model to model_best.h5\nEpoch 11/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0767 - tf_lwlrap: 0.2032 - categorical_accuracy: 0.0813 - val_loss: 0.0717 - val_tf_lwlrap: 0.2585 - val_categorical_accuracy: 0.1318\n\nEpoch 00011: val_tf_lwlrap improved from 0.21434 to 0.25846, saving model to model_best.h5\nEpoch 12/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0735 - tf_lwlrap: 0.2383 - categorical_accuracy: 0.1009 - val_loss: 0.0700 - val_tf_lwlrap: 0.2641 - val_categorical_accuracy: 0.1459\n\nEpoch 00012: val_tf_lwlrap improved from 0.25846 to 0.26411, saving model to model_best.h5\nEpoch 13/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0707 - tf_lwlrap: 0.2709 - categorical_accuracy: 0.1163 - val_loss: 0.0684 - val_tf_lwlrap: 0.2689 - val_categorical_accuracy: 0.1147\n\nEpoch 00013: val_tf_lwlrap improved from 0.26411 to 0.26887, saving model to model_best.h5\nEpoch 14/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0684 - tf_lwlrap: 0.3040 - categorical_accuracy: 0.1493 - val_loss: 0.0663 - val_tf_lwlrap: 0.3085 - val_categorical_accuracy: 0.1348\n\nEpoch 00014: val_tf_lwlrap improved from 0.26887 to 0.30853, saving model to model_best.h5\nEpoch 15/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0657 - tf_lwlrap: 0.3445 - categorical_accuracy: 0.1659 - val_loss: 0.0664 - val_tf_lwlrap: 0.2862 - val_categorical_accuracy: 0.1419\n\nEpoch 00015: val_tf_lwlrap did not improve from 0.30853\nEpoch 16/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0638 - tf_lwlrap: 0.3761 - categorical_accuracy: 0.1865 - val_loss: 0.0668 - val_tf_lwlrap: 0.2337 - val_categorical_accuracy: 0.0976\n\nEpoch 00016: val_tf_lwlrap did not improve from 0.30853\nEpoch 17/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0615 - tf_lwlrap: 0.4151 - categorical_accuracy: 0.2254 - val_loss: 0.0634 - val_tf_lwlrap: 0.3004 - val_categorical_accuracy: 0.1569\n\nEpoch 00017: val_tf_lwlrap did not improve from 0.30853\nEpoch 18/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0599 - tf_lwlrap: 0.4364 - categorical_accuracy: 0.2493 - val_loss: 0.0596 - val_tf_lwlrap: 0.3593 - val_categorical_accuracy: 0.1932\n\nEpoch 00018: val_tf_lwlrap improved from 0.30853 to 0.35929, saving model to model_best.h5\nEpoch 19/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0577 - tf_lwlrap: 0.4660 - categorical_accuracy: 0.2646 - val_loss: 0.0614 - val_tf_lwlrap: 0.3324 - val_categorical_accuracy: 0.1771\n\nEpoch 00019: val_tf_lwlrap did not improve from 0.35929\nEpoch 20/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0562 - tf_lwlrap: 0.4927 - categorical_accuracy: 0.2944 - val_loss: 0.0562 - val_tf_lwlrap: 0.4621 - val_categorical_accuracy: 0.2867\n\nEpoch 00020: val_tf_lwlrap improved from 0.35929 to 0.46211, saving model to model_best.h5\nEpoch 21/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0551 - tf_lwlrap: 0.5073 - categorical_accuracy: 0.3155 - val_loss: 0.0545 - val_tf_lwlrap: 0.4779 - val_categorical_accuracy: 0.3099\n\nEpoch 00021: val_tf_lwlrap improved from 0.46211 to 0.47785, saving model to model_best.h5\nEpoch 22/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0534 - tf_lwlrap: 0.5320 - categorical_accuracy: 0.3308 - val_loss: 0.0569 - val_tf_lwlrap: 0.4115 - val_categorical_accuracy: 0.2616\n\nEpoch 00022: val_tf_lwlrap did not improve from 0.47785\nEpoch 23/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0523 - tf_lwlrap: 0.5482 - categorical_accuracy: 0.3460 - val_loss: 0.0509 - val_tf_lwlrap: 0.5115 - val_categorical_accuracy: 0.3300\n\nEpoch 00023: val_tf_lwlrap improved from 0.47785 to 0.51151, saving model to model_best.h5\nEpoch 24/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0514 - tf_lwlrap: 0.5636 - categorical_accuracy: 0.3689 - val_loss: 0.0560 - val_tf_lwlrap: 0.4283 - val_categorical_accuracy: 0.2646\n\nEpoch 00024: val_tf_lwlrap did not improve from 0.51151\nEpoch 25/200\n63/63 [==============================] - 11s 167ms/step - loss: 0.0500 - tf_lwlrap: 0.5823 - categorical_accuracy: 0.3896 - val_loss: 0.0496 - val_tf_lwlrap: 0.5447 - val_categorical_accuracy: 0.3853\n\nEpoch 00025: val_tf_lwlrap improved from 0.51151 to 0.54471, saving model to model_best.h5\nEpoch 26/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0485 - tf_lwlrap: 0.5951 - categorical_accuracy: 0.3973 - val_loss: 0.0516 - val_tf_lwlrap: 0.5054 - val_categorical_accuracy: 0.3410\n\nEpoch 00026: val_tf_lwlrap did not improve from 0.54471\nEpoch 27/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0481 - tf_lwlrap: 0.6005 - categorical_accuracy: 0.4015 - val_loss: 0.0502 - val_tf_lwlrap: 0.5304 - val_categorical_accuracy: 0.3662\n","name":"stdout"},{"output_type":"stream","text":"\nEpoch 00027: val_tf_lwlrap did not improve from 0.54471\nEpoch 28/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0471 - tf_lwlrap: 0.6171 - categorical_accuracy: 0.4187 - val_loss: 0.0497 - val_tf_lwlrap: 0.5489 - val_categorical_accuracy: 0.3903\n\nEpoch 00028: val_tf_lwlrap improved from 0.54471 to 0.54891, saving model to model_best.h5\nEpoch 29/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0457 - tf_lwlrap: 0.6349 - categorical_accuracy: 0.4329 - val_loss: 0.0467 - val_tf_lwlrap: 0.5736 - val_categorical_accuracy: 0.4014\n\nEpoch 00029: val_tf_lwlrap improved from 0.54891 to 0.57356, saving model to model_best.h5\nEpoch 30/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0450 - tf_lwlrap: 0.6409 - categorical_accuracy: 0.4410 - val_loss: 0.0479 - val_tf_lwlrap: 0.5626 - val_categorical_accuracy: 0.3944\n\nEpoch 00030: val_tf_lwlrap did not improve from 0.57356\nEpoch 31/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0438 - tf_lwlrap: 0.6573 - categorical_accuracy: 0.4609 - val_loss: 0.0473 - val_tf_lwlrap: 0.5528 - val_categorical_accuracy: 0.3944\n\nEpoch 00031: val_tf_lwlrap did not improve from 0.57356\nEpoch 32/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0429 - tf_lwlrap: 0.6691 - categorical_accuracy: 0.4636 - val_loss: 0.0542 - val_tf_lwlrap: 0.4355 - val_categorical_accuracy: 0.3028\n\nEpoch 00032: val_tf_lwlrap did not improve from 0.57356\nEpoch 33/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0427 - tf_lwlrap: 0.6751 - categorical_accuracy: 0.4755 - val_loss: 0.0450 - val_tf_lwlrap: 0.5838 - val_categorical_accuracy: 0.4286\n\nEpoch 00033: val_tf_lwlrap improved from 0.57356 to 0.58379, saving model to model_best.h5\nEpoch 34/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0414 - tf_lwlrap: 0.6833 - categorical_accuracy: 0.4938 - val_loss: 0.0419 - val_tf_lwlrap: 0.6252 - val_categorical_accuracy: 0.4628\n\nEpoch 00034: val_tf_lwlrap improved from 0.58379 to 0.62517, saving model to model_best.h5\nEpoch 35/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0408 - tf_lwlrap: 0.6997 - categorical_accuracy: 0.5097 - val_loss: 0.0444 - val_tf_lwlrap: 0.5908 - val_categorical_accuracy: 0.4256\n\nEpoch 00035: val_tf_lwlrap did not improve from 0.62517\nEpoch 36/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0403 - tf_lwlrap: 0.7004 - categorical_accuracy: 0.5127 - val_loss: 0.0433 - val_tf_lwlrap: 0.6001 - val_categorical_accuracy: 0.4396\n\nEpoch 00036: val_tf_lwlrap did not improve from 0.62517\nEpoch 37/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0393 - tf_lwlrap: 0.7166 - categorical_accuracy: 0.5253 - val_loss: 0.0469 - val_tf_lwlrap: 0.5552 - val_categorical_accuracy: 0.3873\n\nEpoch 00037: val_tf_lwlrap did not improve from 0.62517\nEpoch 38/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0391 - tf_lwlrap: 0.7173 - categorical_accuracy: 0.5251 - val_loss: 0.0402 - val_tf_lwlrap: 0.6450 - val_categorical_accuracy: 0.4759\n\nEpoch 00038: val_tf_lwlrap improved from 0.62517 to 0.64504, saving model to model_best.h5\nEpoch 39/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0382 - tf_lwlrap: 0.7277 - categorical_accuracy: 0.5412 - val_loss: 0.0407 - val_tf_lwlrap: 0.6655 - val_categorical_accuracy: 0.5070\n\nEpoch 00039: val_tf_lwlrap improved from 0.64504 to 0.66546, saving model to model_best.h5\nEpoch 40/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0372 - tf_lwlrap: 0.7370 - categorical_accuracy: 0.5515 - val_loss: 0.0416 - val_tf_lwlrap: 0.6178 - val_categorical_accuracy: 0.4527\n\nEpoch 00040: val_tf_lwlrap did not improve from 0.66546\nEpoch 41/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0363 - tf_lwlrap: 0.7406 - categorical_accuracy: 0.5539 - val_loss: 0.0529 - val_tf_lwlrap: 0.4617 - val_categorical_accuracy: 0.3119\n\nEpoch 00041: val_tf_lwlrap did not improve from 0.66546\nEpoch 42/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0359 - tf_lwlrap: 0.7494 - categorical_accuracy: 0.5631 - val_loss: 0.0410 - val_tf_lwlrap: 0.6521 - val_categorical_accuracy: 0.4940\n\nEpoch 00042: val_tf_lwlrap did not improve from 0.66546\nEpoch 43/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0356 - tf_lwlrap: 0.7492 - categorical_accuracy: 0.5555 - val_loss: 0.0396 - val_tf_lwlrap: 0.6490 - val_categorical_accuracy: 0.4769\n\nEpoch 00043: val_tf_lwlrap did not improve from 0.66546\nEpoch 44/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0350 - tf_lwlrap: 0.7592 - categorical_accuracy: 0.5726 - val_loss: 0.0415 - val_tf_lwlrap: 0.6282 - val_categorical_accuracy: 0.4829\n\nEpoch 00044: val_tf_lwlrap did not improve from 0.66546\n\nEpoch 00044: ReduceLROnPlateau reducing learning rate to 9.999999747378752e-05.\nEpoch 45/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0326 - tf_lwlrap: 0.7854 - categorical_accuracy: 0.5928 - val_loss: 0.0351 - val_tf_lwlrap: 0.7205 - val_categorical_accuracy: 0.5654\n\nEpoch 00045: val_tf_lwlrap improved from 0.66546 to 0.72054, saving model to model_best.h5\nEpoch 46/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0318 - tf_lwlrap: 0.7853 - categorical_accuracy: 0.6087 - val_loss: 0.0350 - val_tf_lwlrap: 0.7216 - val_categorical_accuracy: 0.5704\n\nEpoch 00046: val_tf_lwlrap improved from 0.72054 to 0.72161, saving model to model_best.h5\nEpoch 47/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0314 - tf_lwlrap: 0.7991 - categorical_accuracy: 0.6146 - val_loss: 0.0354 - val_tf_lwlrap: 0.7084 - val_categorical_accuracy: 0.5563\n\nEpoch 00047: val_tf_lwlrap did not improve from 0.72161\nEpoch 48/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0308 - tf_lwlrap: 0.8110 - categorical_accuracy: 0.6253 - val_loss: 0.0342 - val_tf_lwlrap: 0.7253 - val_categorical_accuracy: 0.5714\n\nEpoch 00048: val_tf_lwlrap improved from 0.72161 to 0.72530, saving model to model_best.h5\nEpoch 49/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0305 - tf_lwlrap: 0.8137 - categorical_accuracy: 0.6421 - val_loss: 0.0349 - val_tf_lwlrap: 0.7271 - val_categorical_accuracy: 0.5734\n\nEpoch 00049: val_tf_lwlrap improved from 0.72530 to 0.72708, saving model to model_best.h5\nEpoch 50/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0299 - tf_lwlrap: 0.8222 - categorical_accuracy: 0.6503 - val_loss: 0.0349 - val_tf_lwlrap: 0.7116 - val_categorical_accuracy: 0.5644\n\nEpoch 00050: val_tf_lwlrap did not improve from 0.72708\nEpoch 51/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0299 - tf_lwlrap: 0.8231 - categorical_accuracy: 0.6597 - val_loss: 0.0341 - val_tf_lwlrap: 0.7257 - val_categorical_accuracy: 0.5744\n\nEpoch 00051: val_tf_lwlrap did not improve from 0.72708\nEpoch 52/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0299 - tf_lwlrap: 0.8215 - categorical_accuracy: 0.6488 - val_loss: 0.0333 - val_tf_lwlrap: 0.7452 - val_categorical_accuracy: 0.5926\n\nEpoch 00052: val_tf_lwlrap improved from 0.72708 to 0.74523, saving model to model_best.h5\nEpoch 53/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0296 - tf_lwlrap: 0.8219 - categorical_accuracy: 0.6483 - val_loss: 0.0340 - val_tf_lwlrap: 0.7315 - val_categorical_accuracy: 0.5704\n\nEpoch 00053: val_tf_lwlrap did not improve from 0.74523\nEpoch 54/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0290 - tf_lwlrap: 0.8296 - categorical_accuracy: 0.6567 - val_loss: 0.0346 - val_tf_lwlrap: 0.7243 - val_categorical_accuracy: 0.5694\n\nEpoch 00054: val_tf_lwlrap did not improve from 0.74523\nEpoch 55/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0292 - tf_lwlrap: 0.8276 - categorical_accuracy: 0.6574 - val_loss: 0.0335 - val_tf_lwlrap: 0.7290 - val_categorical_accuracy: 0.5755\n\nEpoch 00055: val_tf_lwlrap did not improve from 0.74523\nEpoch 56/200\n","name":"stdout"},{"output_type":"stream","text":"63/63 [==============================] - 10s 165ms/step - loss: 0.0290 - tf_lwlrap: 0.8312 - categorical_accuracy: 0.6625 - val_loss: 0.0340 - val_tf_lwlrap: 0.7267 - val_categorical_accuracy: 0.5684\n\nEpoch 00056: val_tf_lwlrap did not improve from 0.74523\nEpoch 57/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0289 - tf_lwlrap: 0.8352 - categorical_accuracy: 0.6637 - val_loss: 0.0326 - val_tf_lwlrap: 0.7430 - val_categorical_accuracy: 0.5926\n\nEpoch 00057: val_tf_lwlrap did not improve from 0.74523\n\nEpoch 00057: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\nEpoch 58/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0278 - tf_lwlrap: 0.8441 - categorical_accuracy: 0.6706 - val_loss: 0.0322 - val_tf_lwlrap: 0.7473 - val_categorical_accuracy: 0.5936\n\nEpoch 00058: val_tf_lwlrap improved from 0.74523 to 0.74735, saving model to model_best.h5\nEpoch 59/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0280 - tf_lwlrap: 0.8402 - categorical_accuracy: 0.6645 - val_loss: 0.0326 - val_tf_lwlrap: 0.7458 - val_categorical_accuracy: 0.5855\n\nEpoch 00059: val_tf_lwlrap did not improve from 0.74735\nEpoch 60/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0275 - tf_lwlrap: 0.8507 - categorical_accuracy: 0.6810 - val_loss: 0.0318 - val_tf_lwlrap: 0.7454 - val_categorical_accuracy: 0.6036\n\nEpoch 00060: val_tf_lwlrap did not improve from 0.74735\nEpoch 61/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0275 - tf_lwlrap: 0.8484 - categorical_accuracy: 0.6805 - val_loss: 0.0318 - val_tf_lwlrap: 0.7512 - val_categorical_accuracy: 0.5986\n\nEpoch 00061: val_tf_lwlrap improved from 0.74735 to 0.75121, saving model to model_best.h5\nEpoch 62/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0275 - tf_lwlrap: 0.8478 - categorical_accuracy: 0.6830 - val_loss: 0.0322 - val_tf_lwlrap: 0.7447 - val_categorical_accuracy: 0.5885\n\nEpoch 00062: val_tf_lwlrap did not improve from 0.75121\nEpoch 63/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0272 - tf_lwlrap: 0.8569 - categorical_accuracy: 0.6848 - val_loss: 0.0316 - val_tf_lwlrap: 0.7512 - val_categorical_accuracy: 0.5976\n\nEpoch 00063: val_tf_lwlrap improved from 0.75121 to 0.75123, saving model to model_best.h5\nEpoch 64/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0271 - tf_lwlrap: 0.8497 - categorical_accuracy: 0.6974 - val_loss: 0.0326 - val_tf_lwlrap: 0.7411 - val_categorical_accuracy: 0.5915\n\nEpoch 00064: val_tf_lwlrap did not improve from 0.75123\nEpoch 65/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0273 - tf_lwlrap: 0.8500 - categorical_accuracy: 0.6803 - val_loss: 0.0317 - val_tf_lwlrap: 0.7499 - val_categorical_accuracy: 0.5956\n\nEpoch 00065: val_tf_lwlrap did not improve from 0.75123\nEpoch 66/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0271 - tf_lwlrap: 0.8579 - categorical_accuracy: 0.6880 - val_loss: 0.0316 - val_tf_lwlrap: 0.7517 - val_categorical_accuracy: 0.5915\n\nEpoch 00066: val_tf_lwlrap improved from 0.75123 to 0.75173, saving model to model_best.h5\nEpoch 67/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0278 - tf_lwlrap: 0.8527 - categorical_accuracy: 0.6866 - val_loss: 0.0318 - val_tf_lwlrap: 0.7404 - val_categorical_accuracy: 0.5915\n\nEpoch 00067: val_tf_lwlrap did not improve from 0.75173\nEpoch 68/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0273 - tf_lwlrap: 0.8505 - categorical_accuracy: 0.6773 - val_loss: 0.0315 - val_tf_lwlrap: 0.7545 - val_categorical_accuracy: 0.6016\n\nEpoch 00068: val_tf_lwlrap improved from 0.75173 to 0.75449, saving model to model_best.h5\nEpoch 69/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0271 - tf_lwlrap: 0.8530 - categorical_accuracy: 0.6829 - val_loss: 0.0319 - val_tf_lwlrap: 0.7432 - val_categorical_accuracy: 0.5946\n\nEpoch 00069: val_tf_lwlrap did not improve from 0.75449\nEpoch 70/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0270 - tf_lwlrap: 0.8495 - categorical_accuracy: 0.6824 - val_loss: 0.0318 - val_tf_lwlrap: 0.7551 - val_categorical_accuracy: 0.5996\n\nEpoch 00070: val_tf_lwlrap improved from 0.75449 to 0.75511, saving model to model_best.h5\nEpoch 71/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0270 - tf_lwlrap: 0.8515 - categorical_accuracy: 0.6883 - val_loss: 0.0322 - val_tf_lwlrap: 0.7534 - val_categorical_accuracy: 0.5996\n\nEpoch 00071: val_tf_lwlrap did not improve from 0.75511\nEpoch 72/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0267 - tf_lwlrap: 0.8547 - categorical_accuracy: 0.6844 - val_loss: 0.0318 - val_tf_lwlrap: 0.7472 - val_categorical_accuracy: 0.5845\n\nEpoch 00072: val_tf_lwlrap did not improve from 0.75511\nEpoch 73/200\n63/63 [==============================] - 11s 170ms/step - loss: 0.0265 - tf_lwlrap: 0.8584 - categorical_accuracy: 0.6977 - val_loss: 0.0312 - val_tf_lwlrap: 0.7536 - val_categorical_accuracy: 0.6056\n\nEpoch 00073: val_tf_lwlrap did not improve from 0.75511\nEpoch 74/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0263 - tf_lwlrap: 0.8653 - categorical_accuracy: 0.7044 - val_loss: 0.0319 - val_tf_lwlrap: 0.7466 - val_categorical_accuracy: 0.5855\n\nEpoch 00074: val_tf_lwlrap did not improve from 0.75511\nEpoch 75/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0264 - tf_lwlrap: 0.8581 - categorical_accuracy: 0.6881 - val_loss: 0.0319 - val_tf_lwlrap: 0.7440 - val_categorical_accuracy: 0.5875\n\nEpoch 00075: val_tf_lwlrap did not improve from 0.75511\n\nEpoch 00075: ReduceLROnPlateau reducing learning rate to 1e-05.\nEpoch 76/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0261 - tf_lwlrap: 0.8637 - categorical_accuracy: 0.7036 - val_loss: 0.0312 - val_tf_lwlrap: 0.7507 - val_categorical_accuracy: 0.5895\n\nEpoch 00076: val_tf_lwlrap did not improve from 0.75511\nEpoch 77/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0263 - tf_lwlrap: 0.8590 - categorical_accuracy: 0.6959 - val_loss: 0.0312 - val_tf_lwlrap: 0.7601 - val_categorical_accuracy: 0.6026\n\nEpoch 00077: val_tf_lwlrap improved from 0.75511 to 0.76011, saving model to model_best.h5\nEpoch 78/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0260 - tf_lwlrap: 0.8623 - categorical_accuracy: 0.6945 - val_loss: 0.0312 - val_tf_lwlrap: 0.7615 - val_categorical_accuracy: 0.6036\n\nEpoch 00078: val_tf_lwlrap improved from 0.76011 to 0.76150, saving model to model_best.h5\nEpoch 79/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0262 - tf_lwlrap: 0.8628 - categorical_accuracy: 0.7014 - val_loss: 0.0310 - val_tf_lwlrap: 0.7596 - val_categorical_accuracy: 0.6087\n\nEpoch 00079: val_tf_lwlrap did not improve from 0.76150\nEpoch 80/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0261 - tf_lwlrap: 0.8663 - categorical_accuracy: 0.7039 - val_loss: 0.0316 - val_tf_lwlrap: 0.7540 - val_categorical_accuracy: 0.5996\n\nEpoch 00080: val_tf_lwlrap did not improve from 0.76150\nEpoch 81/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0259 - tf_lwlrap: 0.8681 - categorical_accuracy: 0.6989 - val_loss: 0.0312 - val_tf_lwlrap: 0.7504 - val_categorical_accuracy: 0.5936\n\nEpoch 00081: val_tf_lwlrap did not improve from 0.76150\nEpoch 82/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0261 - tf_lwlrap: 0.8662 - categorical_accuracy: 0.7059 - val_loss: 0.0315 - val_tf_lwlrap: 0.7513 - val_categorical_accuracy: 0.5936\n\nEpoch 00082: val_tf_lwlrap did not improve from 0.76150\nEpoch 83/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0256 - tf_lwlrap: 0.8677 - categorical_accuracy: 0.7036 - val_loss: 0.0311 - val_tf_lwlrap: 0.7550 - val_categorical_accuracy: 0.5976\n\nEpoch 00083: val_tf_lwlrap did not improve from 0.76150\nEpoch 84/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0261 - tf_lwlrap: 0.8614 - categorical_accuracy: 0.6955 - val_loss: 0.0310 - val_tf_lwlrap: 0.7568 - val_categorical_accuracy: 0.6026\n\nEpoch 00084: val_tf_lwlrap did not improve from 0.76150\nEpoch 85/200\n","name":"stdout"},{"output_type":"stream","text":"63/63 [==============================] - 10s 165ms/step - loss: 0.0260 - tf_lwlrap: 0.8647 - categorical_accuracy: 0.6999 - val_loss: 0.0314 - val_tf_lwlrap: 0.7535 - val_categorical_accuracy: 0.5976\n\nEpoch 00085: val_tf_lwlrap did not improve from 0.76150\nEpoch 86/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0260 - tf_lwlrap: 0.8648 - categorical_accuracy: 0.6964 - val_loss: 0.0315 - val_tf_lwlrap: 0.7491 - val_categorical_accuracy: 0.5895\n\nEpoch 00086: val_tf_lwlrap did not improve from 0.76150\nEpoch 87/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0258 - tf_lwlrap: 0.8599 - categorical_accuracy: 0.6947 - val_loss: 0.0314 - val_tf_lwlrap: 0.7514 - val_categorical_accuracy: 0.5915\n\nEpoch 00087: val_tf_lwlrap did not improve from 0.76150\nEpoch 88/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0254 - tf_lwlrap: 0.8731 - categorical_accuracy: 0.7054 - val_loss: 0.0307 - val_tf_lwlrap: 0.7690 - val_categorical_accuracy: 0.6117\n\nEpoch 00088: val_tf_lwlrap improved from 0.76150 to 0.76896, saving model to model_best.h5\nEpoch 89/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0260 - tf_lwlrap: 0.8652 - categorical_accuracy: 0.7001 - val_loss: 0.0310 - val_tf_lwlrap: 0.7547 - val_categorical_accuracy: 0.6066\n\nEpoch 00089: val_tf_lwlrap did not improve from 0.76896\nEpoch 90/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0259 - tf_lwlrap: 0.8703 - categorical_accuracy: 0.7015 - val_loss: 0.0312 - val_tf_lwlrap: 0.7591 - val_categorical_accuracy: 0.6137\n\nEpoch 00090: val_tf_lwlrap did not improve from 0.76896\nEpoch 91/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0255 - tf_lwlrap: 0.8674 - categorical_accuracy: 0.6986 - val_loss: 0.0313 - val_tf_lwlrap: 0.7545 - val_categorical_accuracy: 0.5936\n\nEpoch 00091: val_tf_lwlrap did not improve from 0.76896\nEpoch 92/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0257 - tf_lwlrap: 0.8677 - categorical_accuracy: 0.7027 - val_loss: 0.0305 - val_tf_lwlrap: 0.7613 - val_categorical_accuracy: 0.6087\n\nEpoch 00092: val_tf_lwlrap did not improve from 0.76896\nEpoch 93/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0253 - tf_lwlrap: 0.8736 - categorical_accuracy: 0.7108 - val_loss: 0.0313 - val_tf_lwlrap: 0.7563 - val_categorical_accuracy: 0.6076\n\nEpoch 00093: val_tf_lwlrap did not improve from 0.76896\nEpoch 94/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0258 - tf_lwlrap: 0.8613 - categorical_accuracy: 0.6958 - val_loss: 0.0310 - val_tf_lwlrap: 0.7554 - val_categorical_accuracy: 0.5936\n\nEpoch 00094: val_tf_lwlrap did not improve from 0.76896\nEpoch 95/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0255 - tf_lwlrap: 0.8723 - categorical_accuracy: 0.7103 - val_loss: 0.0315 - val_tf_lwlrap: 0.7482 - val_categorical_accuracy: 0.6036\n\nEpoch 00095: val_tf_lwlrap did not improve from 0.76896\nEpoch 96/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0255 - tf_lwlrap: 0.8669 - categorical_accuracy: 0.7004 - val_loss: 0.0313 - val_tf_lwlrap: 0.7482 - val_categorical_accuracy: 0.5915\n\nEpoch 00096: val_tf_lwlrap did not improve from 0.76896\nEpoch 97/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0258 - tf_lwlrap: 0.8625 - categorical_accuracy: 0.6963 - val_loss: 0.0308 - val_tf_lwlrap: 0.7566 - val_categorical_accuracy: 0.6066\n\nEpoch 00097: val_tf_lwlrap did not improve from 0.76896\nEpoch 98/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0255 - tf_lwlrap: 0.8660 - categorical_accuracy: 0.6959 - val_loss: 0.0308 - val_tf_lwlrap: 0.7643 - val_categorical_accuracy: 0.6137\n\nEpoch 00098: val_tf_lwlrap did not improve from 0.76896\nEpoch 99/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0257 - tf_lwlrap: 0.8706 - categorical_accuracy: 0.7101 - val_loss: 0.0312 - val_tf_lwlrap: 0.7546 - val_categorical_accuracy: 0.6066\n\nEpoch 00099: val_tf_lwlrap did not improve from 0.76896\nEpoch 100/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0256 - tf_lwlrap: 0.8735 - categorical_accuracy: 0.7069 - val_loss: 0.0308 - val_tf_lwlrap: 0.7605 - val_categorical_accuracy: 0.5976\n\nEpoch 00100: val_tf_lwlrap did not improve from 0.76896\nEpoch 101/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0258 - tf_lwlrap: 0.8679 - categorical_accuracy: 0.7114 - val_loss: 0.0311 - val_tf_lwlrap: 0.7544 - val_categorical_accuracy: 0.5956\n\nEpoch 00101: val_tf_lwlrap did not improve from 0.76896\nEpoch 102/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0256 - tf_lwlrap: 0.8689 - categorical_accuracy: 0.7004 - val_loss: 0.0309 - val_tf_lwlrap: 0.7603 - val_categorical_accuracy: 0.6117\n\nEpoch 00102: val_tf_lwlrap did not improve from 0.76896\nEpoch 103/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0254 - tf_lwlrap: 0.8733 - categorical_accuracy: 0.7054 - val_loss: 0.0310 - val_tf_lwlrap: 0.7590 - val_categorical_accuracy: 0.5996\n\nEpoch 00103: val_tf_lwlrap did not improve from 0.76896\nEpoch 104/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0251 - tf_lwlrap: 0.8781 - categorical_accuracy: 0.7133 - val_loss: 0.0309 - val_tf_lwlrap: 0.7570 - val_categorical_accuracy: 0.6056\n\nEpoch 00104: val_tf_lwlrap did not improve from 0.76896\nEpoch 105/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0256 - tf_lwlrap: 0.8695 - categorical_accuracy: 0.6992 - val_loss: 0.0311 - val_tf_lwlrap: 0.7502 - val_categorical_accuracy: 0.6006\n\nEpoch 00105: val_tf_lwlrap did not improve from 0.76896\nEpoch 106/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0250 - tf_lwlrap: 0.8759 - categorical_accuracy: 0.7118 - val_loss: 0.0309 - val_tf_lwlrap: 0.7604 - val_categorical_accuracy: 0.6117\n\nEpoch 00106: val_tf_lwlrap did not improve from 0.76896\nEpoch 107/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0254 - tf_lwlrap: 0.8718 - categorical_accuracy: 0.7104 - val_loss: 0.0309 - val_tf_lwlrap: 0.7577 - val_categorical_accuracy: 0.5986\n\nEpoch 00107: val_tf_lwlrap did not improve from 0.76896\nEpoch 108/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0254 - tf_lwlrap: 0.8738 - categorical_accuracy: 0.7050 - val_loss: 0.0307 - val_tf_lwlrap: 0.7628 - val_categorical_accuracy: 0.6076\n\nEpoch 00108: val_tf_lwlrap did not improve from 0.76896\nEpoch 109/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0253 - tf_lwlrap: 0.8669 - categorical_accuracy: 0.7066 - val_loss: 0.0307 - val_tf_lwlrap: 0.7651 - val_categorical_accuracy: 0.6087\n\nEpoch 00109: val_tf_lwlrap did not improve from 0.76896\nEpoch 110/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0251 - tf_lwlrap: 0.8715 - categorical_accuracy: 0.7066 - val_loss: 0.0306 - val_tf_lwlrap: 0.7685 - val_categorical_accuracy: 0.6157\n\nEpoch 00110: val_tf_lwlrap did not improve from 0.76896\nEpoch 111/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0251 - tf_lwlrap: 0.8773 - categorical_accuracy: 0.7128 - val_loss: 0.0312 - val_tf_lwlrap: 0.7518 - val_categorical_accuracy: 0.6036\n\nEpoch 00111: val_tf_lwlrap did not improve from 0.76896\nEpoch 112/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0249 - tf_lwlrap: 0.8786 - categorical_accuracy: 0.7113 - val_loss: 0.0310 - val_tf_lwlrap: 0.7576 - val_categorical_accuracy: 0.6036\n\nEpoch 00112: val_tf_lwlrap did not improve from 0.76896\nEpoch 113/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0249 - tf_lwlrap: 0.8789 - categorical_accuracy: 0.7214 - val_loss: 0.0310 - val_tf_lwlrap: 0.7590 - val_categorical_accuracy: 0.6127\n\nEpoch 00113: val_tf_lwlrap did not improve from 0.76896\nEpoch 114/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0249 - tf_lwlrap: 0.8808 - categorical_accuracy: 0.7101 - val_loss: 0.0305 - val_tf_lwlrap: 0.7628 - val_categorical_accuracy: 0.6167\n\nEpoch 00114: val_tf_lwlrap did not improve from 0.76896\nEpoch 115/200\n","name":"stdout"},{"output_type":"stream","text":"63/63 [==============================] - 10s 166ms/step - loss: 0.0251 - tf_lwlrap: 0.8765 - categorical_accuracy: 0.7141 - val_loss: 0.0311 - val_tf_lwlrap: 0.7543 - val_categorical_accuracy: 0.6026\n\nEpoch 00115: val_tf_lwlrap did not improve from 0.76896\nEpoch 116/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0248 - tf_lwlrap: 0.8789 - categorical_accuracy: 0.7141 - val_loss: 0.0308 - val_tf_lwlrap: 0.7632 - val_categorical_accuracy: 0.6026\n\nEpoch 00116: val_tf_lwlrap did not improve from 0.76896\nEpoch 117/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0252 - tf_lwlrap: 0.8708 - categorical_accuracy: 0.7109 - val_loss: 0.0306 - val_tf_lwlrap: 0.7620 - val_categorical_accuracy: 0.6066\n\nEpoch 00117: val_tf_lwlrap did not improve from 0.76896\nEpoch 118/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0248 - tf_lwlrap: 0.8782 - categorical_accuracy: 0.7126 - val_loss: 0.0314 - val_tf_lwlrap: 0.7499 - val_categorical_accuracy: 0.6016\n\nEpoch 00118: val_tf_lwlrap did not improve from 0.76896\nEpoch 119/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0252 - tf_lwlrap: 0.8679 - categorical_accuracy: 0.7089 - val_loss: 0.0305 - val_tf_lwlrap: 0.7606 - val_categorical_accuracy: 0.6056\n\nEpoch 00119: val_tf_lwlrap did not improve from 0.76896\nEpoch 120/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0250 - tf_lwlrap: 0.8808 - categorical_accuracy: 0.7123 - val_loss: 0.0311 - val_tf_lwlrap: 0.7531 - val_categorical_accuracy: 0.6036\n\nEpoch 00120: val_tf_lwlrap did not improve from 0.76896\nEpoch 121/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0248 - tf_lwlrap: 0.8784 - categorical_accuracy: 0.7116 - val_loss: 0.0313 - val_tf_lwlrap: 0.7498 - val_categorical_accuracy: 0.6036\n\nEpoch 00121: val_tf_lwlrap did not improve from 0.76896\nEpoch 122/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0250 - tf_lwlrap: 0.8726 - categorical_accuracy: 0.7096 - val_loss: 0.0313 - val_tf_lwlrap: 0.7560 - val_categorical_accuracy: 0.5895\n\nEpoch 00122: val_tf_lwlrap did not improve from 0.76896\nEpoch 123/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0245 - tf_lwlrap: 0.8830 - categorical_accuracy: 0.7208 - val_loss: 0.0302 - val_tf_lwlrap: 0.7620 - val_categorical_accuracy: 0.6087\n\nEpoch 00123: val_tf_lwlrap did not improve from 0.76896\nEpoch 124/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0256 - tf_lwlrap: 0.8708 - categorical_accuracy: 0.7007 - val_loss: 0.0306 - val_tf_lwlrap: 0.7592 - val_categorical_accuracy: 0.6117\n\nEpoch 00124: val_tf_lwlrap did not improve from 0.76896\nEpoch 125/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0247 - tf_lwlrap: 0.8790 - categorical_accuracy: 0.7096 - val_loss: 0.0304 - val_tf_lwlrap: 0.7563 - val_categorical_accuracy: 0.5966\n\nEpoch 00125: val_tf_lwlrap did not improve from 0.76896\nEpoch 126/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0249 - tf_lwlrap: 0.8758 - categorical_accuracy: 0.7121 - val_loss: 0.0318 - val_tf_lwlrap: 0.7385 - val_categorical_accuracy: 0.5905\n\nEpoch 00126: val_tf_lwlrap did not improve from 0.76896\nEpoch 127/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0249 - tf_lwlrap: 0.8769 - categorical_accuracy: 0.7195 - val_loss: 0.0303 - val_tf_lwlrap: 0.7591 - val_categorical_accuracy: 0.6026\n\nEpoch 00127: val_tf_lwlrap did not improve from 0.76896\nEpoch 128/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0247 - tf_lwlrap: 0.8799 - categorical_accuracy: 0.7163 - val_loss: 0.0308 - val_tf_lwlrap: 0.7616 - val_categorical_accuracy: 0.6056\n\nEpoch 00128: val_tf_lwlrap did not improve from 0.76896\nEpoch 129/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0245 - tf_lwlrap: 0.8746 - categorical_accuracy: 0.7153 - val_loss: 0.0308 - val_tf_lwlrap: 0.7565 - val_categorical_accuracy: 0.5966\n\nEpoch 00129: val_tf_lwlrap did not improve from 0.76896\nEpoch 130/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0243 - tf_lwlrap: 0.8851 - categorical_accuracy: 0.7183 - val_loss: 0.0305 - val_tf_lwlrap: 0.7659 - val_categorical_accuracy: 0.6137\n\nEpoch 00130: val_tf_lwlrap did not improve from 0.76896\nEpoch 131/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0246 - tf_lwlrap: 0.8805 - categorical_accuracy: 0.7135 - val_loss: 0.0309 - val_tf_lwlrap: 0.7636 - val_categorical_accuracy: 0.6076\n\nEpoch 00131: val_tf_lwlrap did not improve from 0.76896\nEpoch 132/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0247 - tf_lwlrap: 0.8753 - categorical_accuracy: 0.7186 - val_loss: 0.0307 - val_tf_lwlrap: 0.7607 - val_categorical_accuracy: 0.6066\n\nEpoch 00132: val_tf_lwlrap did not improve from 0.76896\nEpoch 133/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0247 - tf_lwlrap: 0.8763 - categorical_accuracy: 0.7174 - val_loss: 0.0309 - val_tf_lwlrap: 0.7552 - val_categorical_accuracy: 0.5986\n\nEpoch 00133: val_tf_lwlrap did not improve from 0.76896\nEpoch 134/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0243 - tf_lwlrap: 0.8851 - categorical_accuracy: 0.7299 - val_loss: 0.0308 - val_tf_lwlrap: 0.7573 - val_categorical_accuracy: 0.6026\n\nEpoch 00134: val_tf_lwlrap did not improve from 0.76896\nEpoch 135/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0245 - tf_lwlrap: 0.8806 - categorical_accuracy: 0.7173 - val_loss: 0.0312 - val_tf_lwlrap: 0.7501 - val_categorical_accuracy: 0.5956\n\nEpoch 00135: val_tf_lwlrap did not improve from 0.76896\nEpoch 136/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0244 - tf_lwlrap: 0.8800 - categorical_accuracy: 0.7218 - val_loss: 0.0303 - val_tf_lwlrap: 0.7562 - val_categorical_accuracy: 0.6036\n\nEpoch 00136: val_tf_lwlrap did not improve from 0.76896\nEpoch 137/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0243 - tf_lwlrap: 0.8812 - categorical_accuracy: 0.7158 - val_loss: 0.0308 - val_tf_lwlrap: 0.7537 - val_categorical_accuracy: 0.6076\n\nEpoch 00137: val_tf_lwlrap did not improve from 0.76896\nEpoch 138/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0241 - tf_lwlrap: 0.8861 - categorical_accuracy: 0.7200 - val_loss: 0.0311 - val_tf_lwlrap: 0.7500 - val_categorical_accuracy: 0.6006\n\nEpoch 00138: val_tf_lwlrap did not improve from 0.76896\nEpoch 139/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0246 - tf_lwlrap: 0.8788 - categorical_accuracy: 0.7134 - val_loss: 0.0307 - val_tf_lwlrap: 0.7610 - val_categorical_accuracy: 0.5956\n\nEpoch 00139: val_tf_lwlrap did not improve from 0.76896\nEpoch 140/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0244 - tf_lwlrap: 0.8798 - categorical_accuracy: 0.7225 - val_loss: 0.0308 - val_tf_lwlrap: 0.7587 - val_categorical_accuracy: 0.6087\n\nEpoch 00140: val_tf_lwlrap did not improve from 0.76896\nEpoch 141/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0240 - tf_lwlrap: 0.8850 - categorical_accuracy: 0.7203 - val_loss: 0.0308 - val_tf_lwlrap: 0.7513 - val_categorical_accuracy: 0.5996\n\nEpoch 00141: val_tf_lwlrap did not improve from 0.76896\nEpoch 142/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0244 - tf_lwlrap: 0.8828 - categorical_accuracy: 0.7202 - val_loss: 0.0306 - val_tf_lwlrap: 0.7585 - val_categorical_accuracy: 0.6056\n\nEpoch 00142: val_tf_lwlrap did not improve from 0.76896\nEpoch 143/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0242 - tf_lwlrap: 0.8811 - categorical_accuracy: 0.7200 - val_loss: 0.0301 - val_tf_lwlrap: 0.7537 - val_categorical_accuracy: 0.6056\n\nEpoch 00143: val_tf_lwlrap did not improve from 0.76896\nEpoch 144/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0242 - tf_lwlrap: 0.8828 - categorical_accuracy: 0.7213 - val_loss: 0.0307 - val_tf_lwlrap: 0.7560 - val_categorical_accuracy: 0.6066\n\nEpoch 00144: val_tf_lwlrap did not improve from 0.76896\nEpoch 145/200\n","name":"stdout"},{"output_type":"stream","text":"63/63 [==============================] - 10s 166ms/step - loss: 0.0242 - tf_lwlrap: 0.8856 - categorical_accuracy: 0.7234 - val_loss: 0.0307 - val_tf_lwlrap: 0.7613 - val_categorical_accuracy: 0.6127\n\nEpoch 00145: val_tf_lwlrap did not improve from 0.76896\nEpoch 146/200\n63/63 [==============================] - 11s 170ms/step - loss: 0.0241 - tf_lwlrap: 0.8797 - categorical_accuracy: 0.7203 - val_loss: 0.0307 - val_tf_lwlrap: 0.7634 - val_categorical_accuracy: 0.6127\n\nEpoch 00146: val_tf_lwlrap did not improve from 0.76896\nEpoch 147/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0241 - tf_lwlrap: 0.8851 - categorical_accuracy: 0.7287 - val_loss: 0.0311 - val_tf_lwlrap: 0.7472 - val_categorical_accuracy: 0.5926\n\nEpoch 00147: val_tf_lwlrap did not improve from 0.76896\nEpoch 148/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0240 - tf_lwlrap: 0.8869 - categorical_accuracy: 0.7304 - val_loss: 0.0307 - val_tf_lwlrap: 0.7570 - val_categorical_accuracy: 0.5966\n\nEpoch 00148: val_tf_lwlrap did not improve from 0.76896\nEpoch 149/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0241 - tf_lwlrap: 0.8807 - categorical_accuracy: 0.7243 - val_loss: 0.0303 - val_tf_lwlrap: 0.7538 - val_categorical_accuracy: 0.6036\n\nEpoch 00149: val_tf_lwlrap did not improve from 0.76896\nEpoch 150/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0241 - tf_lwlrap: 0.8817 - categorical_accuracy: 0.7166 - val_loss: 0.0302 - val_tf_lwlrap: 0.7634 - val_categorical_accuracy: 0.6036\n\nEpoch 00150: val_tf_lwlrap did not improve from 0.76896\nEpoch 151/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0242 - tf_lwlrap: 0.8830 - categorical_accuracy: 0.7221 - val_loss: 0.0303 - val_tf_lwlrap: 0.7618 - val_categorical_accuracy: 0.6066\n\nEpoch 00151: val_tf_lwlrap did not improve from 0.76896\nEpoch 152/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0240 - tf_lwlrap: 0.8798 - categorical_accuracy: 0.7185 - val_loss: 0.0309 - val_tf_lwlrap: 0.7487 - val_categorical_accuracy: 0.5845\n\nEpoch 00152: val_tf_lwlrap did not improve from 0.76896\nEpoch 153/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0242 - tf_lwlrap: 0.8802 - categorical_accuracy: 0.7208 - val_loss: 0.0308 - val_tf_lwlrap: 0.7498 - val_categorical_accuracy: 0.5946\n\nEpoch 00153: val_tf_lwlrap did not improve from 0.76896\nEpoch 154/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0239 - tf_lwlrap: 0.8878 - categorical_accuracy: 0.7186 - val_loss: 0.0302 - val_tf_lwlrap: 0.7637 - val_categorical_accuracy: 0.6107\n\nEpoch 00154: val_tf_lwlrap did not improve from 0.76896\nEpoch 155/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0243 - tf_lwlrap: 0.8869 - categorical_accuracy: 0.7305 - val_loss: 0.0303 - val_tf_lwlrap: 0.7564 - val_categorical_accuracy: 0.6066\n\nEpoch 00155: val_tf_lwlrap did not improve from 0.76896\nEpoch 156/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0239 - tf_lwlrap: 0.8841 - categorical_accuracy: 0.7215 - val_loss: 0.0303 - val_tf_lwlrap: 0.7610 - val_categorical_accuracy: 0.6046\n\nEpoch 00156: val_tf_lwlrap did not improve from 0.76896\nEpoch 157/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0242 - tf_lwlrap: 0.8806 - categorical_accuracy: 0.7220 - val_loss: 0.0304 - val_tf_lwlrap: 0.7581 - val_categorical_accuracy: 0.6016\n\nEpoch 00157: val_tf_lwlrap did not improve from 0.76896\nEpoch 158/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0238 - tf_lwlrap: 0.8876 - categorical_accuracy: 0.7297 - val_loss: 0.0298 - val_tf_lwlrap: 0.7744 - val_categorical_accuracy: 0.6217\n\nEpoch 00158: val_tf_lwlrap improved from 0.76896 to 0.77441, saving model to model_best.h5\nEpoch 159/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0239 - tf_lwlrap: 0.8859 - categorical_accuracy: 0.7279 - val_loss: 0.0304 - val_tf_lwlrap: 0.7530 - val_categorical_accuracy: 0.6026\n\nEpoch 00159: val_tf_lwlrap did not improve from 0.77441\nEpoch 160/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0233 - tf_lwlrap: 0.8918 - categorical_accuracy: 0.7281 - val_loss: 0.0306 - val_tf_lwlrap: 0.7556 - val_categorical_accuracy: 0.6006\n\nEpoch 00160: val_tf_lwlrap did not improve from 0.77441\nEpoch 161/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0238 - tf_lwlrap: 0.8910 - categorical_accuracy: 0.7247 - val_loss: 0.0305 - val_tf_lwlrap: 0.7569 - val_categorical_accuracy: 0.5926\n\nEpoch 00161: val_tf_lwlrap did not improve from 0.77441\nEpoch 162/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0242 - tf_lwlrap: 0.8815 - categorical_accuracy: 0.7141 - val_loss: 0.0300 - val_tf_lwlrap: 0.7622 - val_categorical_accuracy: 0.6076\n\nEpoch 00162: val_tf_lwlrap did not improve from 0.77441\nEpoch 163/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0239 - tf_lwlrap: 0.8857 - categorical_accuracy: 0.7212 - val_loss: 0.0303 - val_tf_lwlrap: 0.7531 - val_categorical_accuracy: 0.5986\n\nEpoch 00163: val_tf_lwlrap did not improve from 0.77441\nEpoch 164/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0241 - tf_lwlrap: 0.8883 - categorical_accuracy: 0.7161 - val_loss: 0.0305 - val_tf_lwlrap: 0.7601 - val_categorical_accuracy: 0.6016\n\nEpoch 00164: val_tf_lwlrap did not improve from 0.77441\nEpoch 165/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0235 - tf_lwlrap: 0.8937 - categorical_accuracy: 0.7275 - val_loss: 0.0304 - val_tf_lwlrap: 0.7585 - val_categorical_accuracy: 0.6066\n\nEpoch 00165: val_tf_lwlrap did not improve from 0.77441\nEpoch 166/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0236 - tf_lwlrap: 0.8835 - categorical_accuracy: 0.7227 - val_loss: 0.0307 - val_tf_lwlrap: 0.7525 - val_categorical_accuracy: 0.6006\n\nEpoch 00166: val_tf_lwlrap did not improve from 0.77441\nEpoch 167/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0235 - tf_lwlrap: 0.8904 - categorical_accuracy: 0.7196 - val_loss: 0.0296 - val_tf_lwlrap: 0.7736 - val_categorical_accuracy: 0.6217\n\nEpoch 00167: val_tf_lwlrap did not improve from 0.77441\nEpoch 168/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0237 - tf_lwlrap: 0.8916 - categorical_accuracy: 0.7289 - val_loss: 0.0302 - val_tf_lwlrap: 0.7630 - val_categorical_accuracy: 0.6097\n\nEpoch 00168: val_tf_lwlrap did not improve from 0.77441\nEpoch 169/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0235 - tf_lwlrap: 0.8848 - categorical_accuracy: 0.7243 - val_loss: 0.0304 - val_tf_lwlrap: 0.7570 - val_categorical_accuracy: 0.5996\n\nEpoch 00169: val_tf_lwlrap did not improve from 0.77441\nEpoch 170/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0234 - tf_lwlrap: 0.8895 - categorical_accuracy: 0.7249 - val_loss: 0.0305 - val_tf_lwlrap: 0.7648 - val_categorical_accuracy: 0.6107\n\nEpoch 00170: val_tf_lwlrap did not improve from 0.77441\nEpoch 171/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0237 - tf_lwlrap: 0.8881 - categorical_accuracy: 0.7284 - val_loss: 0.0303 - val_tf_lwlrap: 0.7660 - val_categorical_accuracy: 0.6137\n\nEpoch 00171: val_tf_lwlrap did not improve from 0.77441\nEpoch 172/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0234 - tf_lwlrap: 0.8959 - categorical_accuracy: 0.7351 - val_loss: 0.0298 - val_tf_lwlrap: 0.7672 - val_categorical_accuracy: 0.6087\n\nEpoch 00172: val_tf_lwlrap did not improve from 0.77441\nEpoch 173/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0233 - tf_lwlrap: 0.8918 - categorical_accuracy: 0.7364 - val_loss: 0.0309 - val_tf_lwlrap: 0.7453 - val_categorical_accuracy: 0.5865\n\nEpoch 00173: val_tf_lwlrap did not improve from 0.77441\nEpoch 174/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0237 - tf_lwlrap: 0.8901 - categorical_accuracy: 0.7349 - val_loss: 0.0309 - val_tf_lwlrap: 0.7596 - val_categorical_accuracy: 0.6046\n\nEpoch 00174: val_tf_lwlrap did not improve from 0.77441\nEpoch 175/200\n","name":"stdout"},{"output_type":"stream","text":"63/63 [==============================] - 10s 166ms/step - loss: 0.0233 - tf_lwlrap: 0.8971 - categorical_accuracy: 0.7324 - val_loss: 0.0298 - val_tf_lwlrap: 0.7671 - val_categorical_accuracy: 0.6097\n\nEpoch 00175: val_tf_lwlrap did not improve from 0.77441\nEpoch 176/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0235 - tf_lwlrap: 0.8892 - categorical_accuracy: 0.7300 - val_loss: 0.0299 - val_tf_lwlrap: 0.7732 - val_categorical_accuracy: 0.6177\n\nEpoch 00176: val_tf_lwlrap did not improve from 0.77441\nEpoch 177/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0234 - tf_lwlrap: 0.8887 - categorical_accuracy: 0.7361 - val_loss: 0.0302 - val_tf_lwlrap: 0.7576 - val_categorical_accuracy: 0.5976\n\nEpoch 00177: val_tf_lwlrap did not improve from 0.77441\nEpoch 178/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0236 - tf_lwlrap: 0.8939 - categorical_accuracy: 0.7344 - val_loss: 0.0299 - val_tf_lwlrap: 0.7646 - val_categorical_accuracy: 0.6157\n\nEpoch 00178: val_tf_lwlrap did not improve from 0.77441\nEpoch 179/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0230 - tf_lwlrap: 0.8992 - categorical_accuracy: 0.7396 - val_loss: 0.0302 - val_tf_lwlrap: 0.7599 - val_categorical_accuracy: 0.6117\n\nEpoch 00179: val_tf_lwlrap did not improve from 0.77441\nEpoch 180/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0235 - tf_lwlrap: 0.8874 - categorical_accuracy: 0.7316 - val_loss: 0.0303 - val_tf_lwlrap: 0.7668 - val_categorical_accuracy: 0.5996\n\nEpoch 00180: val_tf_lwlrap did not improve from 0.77441\nEpoch 181/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0235 - tf_lwlrap: 0.8878 - categorical_accuracy: 0.7232 - val_loss: 0.0308 - val_tf_lwlrap: 0.7487 - val_categorical_accuracy: 0.6006\n\nEpoch 00181: val_tf_lwlrap did not improve from 0.77441\nEpoch 182/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0236 - tf_lwlrap: 0.8852 - categorical_accuracy: 0.7292 - val_loss: 0.0304 - val_tf_lwlrap: 0.7594 - val_categorical_accuracy: 0.6087\n\nEpoch 00182: val_tf_lwlrap did not improve from 0.77441\nEpoch 183/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0233 - tf_lwlrap: 0.8934 - categorical_accuracy: 0.7345 - val_loss: 0.0305 - val_tf_lwlrap: 0.7502 - val_categorical_accuracy: 0.5926\n\nEpoch 00183: val_tf_lwlrap did not improve from 0.77441\nEpoch 184/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0231 - tf_lwlrap: 0.8885 - categorical_accuracy: 0.7230 - val_loss: 0.0302 - val_tf_lwlrap: 0.7603 - val_categorical_accuracy: 0.6127\n\nEpoch 00184: val_tf_lwlrap did not improve from 0.77441\nEpoch 185/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0234 - tf_lwlrap: 0.8876 - categorical_accuracy: 0.7341 - val_loss: 0.0303 - val_tf_lwlrap: 0.7598 - val_categorical_accuracy: 0.6097\n\nEpoch 00185: val_tf_lwlrap did not improve from 0.77441\nEpoch 186/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0232 - tf_lwlrap: 0.8873 - categorical_accuracy: 0.7316 - val_loss: 0.0303 - val_tf_lwlrap: 0.7629 - val_categorical_accuracy: 0.6036\n\nEpoch 00186: val_tf_lwlrap did not improve from 0.77441\nEpoch 187/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0230 - tf_lwlrap: 0.8915 - categorical_accuracy: 0.7378 - val_loss: 0.0307 - val_tf_lwlrap: 0.7502 - val_categorical_accuracy: 0.6046\n\nEpoch 00187: val_tf_lwlrap did not improve from 0.77441\nEpoch 188/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0230 - tf_lwlrap: 0.8944 - categorical_accuracy: 0.7384 - val_loss: 0.0301 - val_tf_lwlrap: 0.7589 - val_categorical_accuracy: 0.6076\n\nEpoch 00188: val_tf_lwlrap did not improve from 0.77441\nEpoch 189/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0231 - tf_lwlrap: 0.8946 - categorical_accuracy: 0.7389 - val_loss: 0.0302 - val_tf_lwlrap: 0.7559 - val_categorical_accuracy: 0.5936\n\nEpoch 00189: val_tf_lwlrap did not improve from 0.77441\nEpoch 190/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0230 - tf_lwlrap: 0.8889 - categorical_accuracy: 0.7354 - val_loss: 0.0300 - val_tf_lwlrap: 0.7681 - val_categorical_accuracy: 0.6076\n\nEpoch 00190: val_tf_lwlrap did not improve from 0.77441\nEpoch 191/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0230 - tf_lwlrap: 0.8924 - categorical_accuracy: 0.7346 - val_loss: 0.0302 - val_tf_lwlrap: 0.7640 - val_categorical_accuracy: 0.6066\n\nEpoch 00191: val_tf_lwlrap did not improve from 0.77441\nEpoch 192/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0231 - tf_lwlrap: 0.8914 - categorical_accuracy: 0.7321 - val_loss: 0.0303 - val_tf_lwlrap: 0.7566 - val_categorical_accuracy: 0.6076\n\nEpoch 00192: val_tf_lwlrap did not improve from 0.77441\nEpoch 193/200\n63/63 [==============================] - 10s 162ms/step - loss: 0.0229 - tf_lwlrap: 0.8921 - categorical_accuracy: 0.7381 - val_loss: 0.0304 - val_tf_lwlrap: 0.7584 - val_categorical_accuracy: 0.6107\n\nEpoch 00193: val_tf_lwlrap did not improve from 0.77441\nEpoch 194/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0228 - tf_lwlrap: 0.8903 - categorical_accuracy: 0.7376 - val_loss: 0.0301 - val_tf_lwlrap: 0.7602 - val_categorical_accuracy: 0.6036\n\nEpoch 00194: val_tf_lwlrap did not improve from 0.77441\nEpoch 195/200\n63/63 [==============================] - 10s 166ms/step - loss: 0.0227 - tf_lwlrap: 0.8963 - categorical_accuracy: 0.7356 - val_loss: 0.0297 - val_tf_lwlrap: 0.7656 - val_categorical_accuracy: 0.6117\n\nEpoch 00195: val_tf_lwlrap did not improve from 0.77441\nEpoch 196/200\n63/63 [==============================] - 10s 163ms/step - loss: 0.0228 - tf_lwlrap: 0.8968 - categorical_accuracy: 0.7460 - val_loss: 0.0301 - val_tf_lwlrap: 0.7665 - val_categorical_accuracy: 0.6127\n\nEpoch 00196: val_tf_lwlrap did not improve from 0.77441\nEpoch 197/200\n63/63 [==============================] - 10s 165ms/step - loss: 0.0230 - tf_lwlrap: 0.8925 - categorical_accuracy: 0.7339 - val_loss: 0.0301 - val_tf_lwlrap: 0.7631 - val_categorical_accuracy: 0.6016\n\nEpoch 00197: val_tf_lwlrap did not improve from 0.77441\nEpoch 198/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0227 - tf_lwlrap: 0.8978 - categorical_accuracy: 0.7351 - val_loss: 0.0305 - val_tf_lwlrap: 0.7606 - val_categorical_accuracy: 0.6036\n\nEpoch 00198: val_tf_lwlrap did not improve from 0.77441\nEpoch 199/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0227 - tf_lwlrap: 0.8990 - categorical_accuracy: 0.7299 - val_loss: 0.0301 - val_tf_lwlrap: 0.7611 - val_categorical_accuracy: 0.6127\n\nEpoch 00199: val_tf_lwlrap did not improve from 0.77441\nEpoch 200/200\n63/63 [==============================] - 10s 164ms/step - loss: 0.0225 - tf_lwlrap: 0.8964 - categorical_accuracy: 0.7391 - val_loss: 0.0302 - val_tf_lwlrap: 0.7612 - val_categorical_accuracy: 0.6056\n\nEpoch 00200: val_tf_lwlrap did not improve from 0.77441\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(K.eval(model.optimizer.lr))","execution_count":28,"outputs":[{"output_type":"stream","text":"1e-05\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"fig, ax = plt.subplots(1, 2, figsize=(15,5))\nax[0].set_title('loss')\nax[0].plot(hist.epoch, hist.history[\"loss\"], label=\"Train loss\")\nax[0].plot(hist.epoch, hist.history[\"val_loss\"], label=\"Validation loss\")\nax[1].set_title('categorical_accuracy')\nax[1].plot(hist.epoch, hist.history[\"categorical_accuracy\"], label=\"Train categorical_accuracy\")\nax[1].plot(hist.epoch, hist.history[\"val_categorical_accuracy\"], label=\"Validation categorical_accuracy\")\nax[0].legend()\nax[1].legend()","execution_count":29,"outputs":[{"output_type":"execute_result","execution_count":29,"data":{"text/plain":"<matplotlib.legend.Legend at 0x7f32548eed30>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x360 with 2 Axes>","image/png":"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r3DbbbcBLst03333MXbsWMrLy7nmmmt46aWXyM3N5S9/+Qv9+vVrc+26ujquu+46Fi5cCMAdd9zBF77wBa6++uo9rv/LX/6S7du3c/rpp9O/f39mz57NSy+9xB133EEkEuGII47g0UcfJS8vj+eff56bb76Z/Px8Jk+ezIYNG3juuefYsWMHV111FWvXriU/P5+HHnqIsWPH8sMf/pD169ezatUqRo4cyYwZM7jvvvt47rnnOtXHjtjbeXPnzuXGG2+ksbGRUCjEG2+8QSAQ4Oabb+bVV1/F4/FwzTXXcO211zJkyBA++ugjiouLee+99/jhD3/I7Nmz93gfP/7xj5kxYwb19fV4PB4eeOABTjrpJADuvPNOnnjiCTweDxdddBFXXHEFl19+OR988AEAy5YtY/r06bz//vud/pnpTYdW0Ob1wed+AU9dwahnL+LNUZ/n4tVf4MJfzeHfLxjN5ScPx+c9dJKPIiIie6jZSGNoANTCxGEK2iS7LV++nMcee4xJkyYBcNddd1FaWko8HmfKlClccskljBkzps05NTU1nHnmmdx11118//vf59FHH+WWW25p0+Y///M/qaioYMmSJVhrqa6u3uv1b7rpJn7xi18wZ84ciouL2b59O3fddRevvfYaubm5/OxnP+NXv/oVN954I9deey1vv/02w4YN48tf/nLz6/3oRz/ipJNO4vnnn+fvf/87M2bMYN68ec3v8a233iIUCjF79uwD6uPun0F72jtv1KhRXHbZZTzzzDNMnDiRmpoagsEgDzzwAJs3b2bx4sV4vV6qqvY/Zan1+2hsbOTVV18lFAqxfPlypk+fzty5c3nhhRd46aWXeP/998nJyaGqqorS0lJycnL46KOPGDt2LDNnzuTKK6/c7+v1NYdW0AYw8gz43hJ49z6K59zN67nv8mTgUn75QhV/mLue7593JBccMwCPyhuLiMihqHYT2z3leD2G8UO1Ppt0rQPJiHWnww47rDlgA3jiiSd45JFHiMfjbN68maVLl+4RsOTk5HDhhRcCcPzxxzNnzpw9rjt79myee+45wFUNLCkp6fD133nnHZYuXcrkyZMBiEajnHbaaSxdupTRo0czfPhwAKZNm8Zjjz0GwD//+U/+9re/AXD++eczY8YMGhoaALj44osJhUJd2sf2tHdeJBJh2LBhTJw4EYCioqLm177x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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"fig, ax = plt.subplots(1, 2, figsize=(15,5))\nax[0].set_title('tf_lwlrap')\nax[0].plot(hist.epoch, hist.history[\"tf_lwlrap\"], label=\"Train lwlrap\")\nax[0].plot(hist.epoch, hist.history[\"val_tf_lwlrap\"], label=\"Validation lwlrap\")\nax[1].set_title('categorical_accuracy')\nax[1].plot(hist.epoch, hist.history[\"categorical_accuracy\"], label=\"Train categorical_accuracy\")\nax[1].plot(hist.epoch, hist.history[\"val_categorical_accuracy\"], label=\"Validation categorical_accuracy\")\nax[0].legend()\nax[1].legend()","execution_count":30,"outputs":[{"output_type":"execute_result","execution_count":30,"data":{"text/plain":"<matplotlib.legend.Legend at 0x7f3643759c50>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 1080x360 with 2 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.load_weights(checkpoint_file)","execution_count":31,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Calculate Validation Score using TTA\nNote that we have to initiate validation_generation everytime before doing a new prediction as `model.fit_generator` will mis-index examples at the end of epoch (and you will get random score)"},{"metadata":{"trusted":true},"cell_type":"code","source":"validation_generator = FATTrainDataset.create_generator(\n    x_val, y_val, BATCH_SIZE, (SIZE,SIZE,3), augument=False, shuffling=False)\n\npred_val_y = model.predict_generator(validation_generator,steps=val_steps,verbose=1)\nfor ii in range(TTA):\n    validation_generator = FATTrainDataset.create_generator(\n        x_val, y_val, BATCH_SIZE, (SIZE,SIZE,3), augument=False, shuffling=False)\n\n    pred_val_y += model.predict_generator(validation_generator,steps=val_steps,verbose=1)\n\n'''Since the score is based on ranking, we do not need to normalize the prediction'''\n# pred_val_y = pred_val_y/10\n","execution_count":32,"outputs":[{"output_type":"stream","text":"16/16 [==============================] - 2s 111ms/step\n16/16 [==============================] - 1s 52ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 52ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 51ms/step\n16/16 [==============================] - 1s 50ms/step\n16/16 [==============================] - 1s 50ms/step\n16/16 [==============================] - 1s 52ms/step\n16/16 [==============================] - 1s 53ms/step\n16/16 [==============================] - 1s 50ms/step\n16/16 [==============================] - 1s 52ms/step\n","name":"stdout"},{"output_type":"execute_result","execution_count":32,"data":{"text/plain":"'Since the score is based on ranking, we do not need to normalize the prediction'"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_generator = FATTrainDataset.create_generator(\n    x_trn, y_trn, BATCH_SIZE, (SIZE,SIZE,3), augument=True, shuffling=False)\npred_train_y = model.predict_generator(train_generator,steps=train_steps,verbose=1)","execution_count":33,"outputs":[{"output_type":"stream","text":"63/63 [==============================] - 5s 86ms/step\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"import sklearn.metrics\ndef calculate_overall_lwlrap_sklearn(truth, scores):\n    \"\"\"Calculate the overall lwlrap using sklearn.metrics.lrap.\"\"\"\n    # sklearn doesn't correctly apply weighting to samples with no labels, so just skip them.\n    sample_weight = np.sum(truth > 0, axis=1)\n    nonzero_weight_sample_indices = np.flatnonzero(sample_weight > 0)\n    overall_lwlrap = sklearn.metrics.label_ranking_average_precision_score(\n      truth[nonzero_weight_sample_indices, :] > 0, \n      scores[nonzero_weight_sample_indices, :], \n      sample_weight=sample_weight[nonzero_weight_sample_indices])\n    return overall_lwlrap","execution_count":34,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(pred_val_y.shape, y_val.shape)\nprint(np.sum(pred_val_y), np.sum(y_val))\n# for ii in range(len(y_val)):\n#     print(np.sum(pred_val_y[ii]), np.sum(y_val[ii]))","execution_count":35,"outputs":[{"output_type":"stream","text":"(994, 80) (994, 80)\n-11021101.0 1128\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"lwlrap from sklearn.metrics for training data =\", calculate_overall_lwlrap_sklearn(y_trn, pred_train_y))\nprint(\"lwlrap from sklearn.metrics =\", calculate_overall_lwlrap_sklearn(y_val, pred_val_y/10))\n\nscore, weight = calculate_per_class_lwlrap(y_val, pred_val_y)\nlwlrap = (score * weight).sum()\nprint('direct calculation of lwlrap : %.4f' % (lwlrap))","execution_count":36,"outputs":[{"output_type":"stream","text":"lwlrap from sklearn.metrics for training data = 0.8982367200698727\nlwlrap from sklearn.metrics = 0.7674129591683412\ndirect calculation of lwlrap : 0.7674\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"markdown","source":"## Predict Test Data with TTA"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_steps = np.ceil(float(len(x_test)) / float(BATCH_SIZE)).astype(int)\n","execution_count":37,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_generator = FATTrainDataset.create_generator(\n    x_test, x_test, BATCH_SIZE, (SIZE,SIZE,3), augument=False, shuffling=False, test_data=True)\npred_test_y = model.predict_generator(test_generator,steps=test_steps,verbose=1)\n\nfor ii in range(TTA):\n    test_generator = FATTrainDataset.create_generator(\n        x_test, x_test, BATCH_SIZE, (SIZE,SIZE,3), augument=False, shuffling=False, test_data=True)\n    pred_test_y += model.predict_generator(test_generator,steps=test_steps,verbose=1)","execution_count":38,"outputs":[{"output_type":"stream","text":"18/18 [==============================] - 1s 60ms/step\n18/18 [==============================] - 1s 51ms/step\n18/18 [==============================] - 1s 50ms/step\n18/18 [==============================] - 1s 51ms/step\n18/18 [==============================] - 1s 52ms/step\n18/18 [==============================] - 1s 51ms/step\n18/18 [==============================] - 1s 50ms/step\n18/18 [==============================] - 1s 50ms/step\n18/18 [==============================] - 1s 51ms/step\n18/18 [==============================] - 1s 51ms/step\n18/18 [==============================] - 1s 50ms/step\n18/18 [==============================] - 1s 52ms/step\n18/18 [==============================] - 1s 51ms/step\n18/18 [==============================] - 1s 50ms/step\n18/18 [==============================] - 1s 50ms/step\n18/18 [==============================] - 1s 51ms/step\n18/18 [==============================] - 1s 53ms/step\n18/18 [==============================] - 1s 53ms/step\n18/18 [==============================] - 1s 52ms/step\n18/18 [==============================] - 1s 51ms/step\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"sort_idx = np.argsort(labels).astype(int)\n","execution_count":39,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(sort_idx)","execution_count":40,"outputs":[{"output_type":"stream","text":"[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47\n 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71\n 72 73 74 75 76 77 78 79]\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_sub = pd.read_csv('../input/freesound-audio-tagging-2019/sample_submission.csv')\ntest_Y_sort = pred_test_y[:, sort_idx]\nsample_sub.iloc[:, 1:] =  test_Y_sort\nsample_sub.to_csv('submission.csv', index=False)\n\nsample_sub.head()","execution_count":41,"outputs":[{"output_type":"execute_result","execution_count":41,"data":{"text/plain":"          fname        ...          Zipper_(clothing)\n0  000ccb97.wav        ...                -130.141586\n1  0012633b.wav        ...                 -79.048164\n2  001ed5f1.wav        ...                 -87.085861\n3  00294be0.wav        ...                 -60.929760\n4  003fde7a.wav        ...                -203.926254\n\n[5 rows x 81 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>fname</th>\n      <th>Accelerating_and_revving_and_vroom</th>\n      <th>Accordion</th>\n      <th>Acoustic_guitar</th>\n      <th>Applause</th>\n      <th>Bark</th>\n      <th>Bass_drum</th>\n      <th>Bass_guitar</th>\n      <th>Bathtub_(filling_or_washing)</th>\n      <th>Bicycle_bell</th>\n      <th>Burping_and_eructation</th>\n      <th>Bus</th>\n      <th>Buzz</th>\n      <th>Car_passing_by</th>\n      <th>Cheering</th>\n      <th>Chewing_and_mastication</th>\n      <th>Child_speech_and_kid_speaking</th>\n      <th>Chink_and_clink</th>\n      <th>Chirp_and_tweet</th>\n      <th>Church_bell</th>\n      <th>Clapping</th>\n      <th>Computer_keyboard</th>\n      <th>Crackle</th>\n      <th>Cricket</th>\n      <th>Crowd</th>\n      <th>Cupboard_open_or_close</th>\n      <th>Cutlery_and_silverware</th>\n      <th>Dishes_and_pots_and_pans</th>\n      <th>Drawer_open_or_close</th>\n      <th>Drip</th>\n      <th>Electric_guitar</th>\n      <th>Fart</th>\n      <th>Female_singing</th>\n      <th>Female_speech_and_woman_speaking</th>\n      <th>Fill_(with_liquid)</th>\n      <th>Finger_snapping</th>\n      <th>Frying_(food)</th>\n      <th>Gasp</th>\n      <th>Glockenspiel</th>\n      <th>Gong</th>\n      <th>...</th>\n      <th>Harmonica</th>\n      <th>Hi-hat</th>\n      <th>Hiss</th>\n      <th>Keys_jangling</th>\n      <th>Knock</th>\n      <th>Male_singing</th>\n      <th>Male_speech_and_man_speaking</th>\n      <th>Marimba_and_xylophone</th>\n      <th>Mechanical_fan</th>\n      <th>Meow</th>\n      <th>Microwave_oven</th>\n      <th>Motorcycle</th>\n      <th>Printer</th>\n      <th>Purr</th>\n      <th>Race_car_and_auto_racing</th>\n      <th>Raindrop</th>\n      <th>Run</th>\n      <th>Scissors</th>\n      <th>Screaming</th>\n      <th>Shatter</th>\n      <th>Sigh</th>\n      <th>Sink_(filling_or_washing)</th>\n      <th>Skateboard</th>\n      <th>Slam</th>\n      <th>Sneeze</th>\n      <th>Squeak</th>\n      <th>Stream</th>\n      <th>Strum</th>\n      <th>Tap</th>\n      <th>Tick-tock</th>\n      <th>Toilet_flush</th>\n      <th>Traffic_noise_and_roadway_noise</th>\n      <th>Trickle_and_dribble</th>\n      <th>Walk_and_footsteps</th>\n      <th>Water_tap_and_faucet</th>\n      <th>Waves_and_surf</th>\n      <th>Whispering</th>\n      <th>Writing</th>\n      <th>Yell</th>\n      <th>Zipper_(clothing)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000ccb97.wav</td>\n      <td>-163.326508</td>\n      <td>-127.003296</td>\n      <td>-137.344559</td>\n      <td>-126.169853</td>\n      <td>-137.099304</td>\n      <td>-95.876122</td>\n      <td>-125.664711</td>\n      <td>-93.716568</td>\n      <td>-94.703079</td>\n      <td>-117.377510</td>\n      <td>-161.496063</td>\n      <td>-98.254410</td>\n      <td>-152.936798</td>\n      <td>-142.869904</td>\n      <td>-89.124245</td>\n      <td>-99.089035</td>\n      <td>-105.199852</td>\n      <td>-110.813637</td>\n      <td>-167.253296</td>\n      <td>-42.053936</td>\n      <td>-104.919930</td>\n      <td>-81.890091</td>\n      <td>-130.427719</td>\n      <td>-136.445480</td>\n      <td>-137.156357</td>\n      <td>-116.864670</td>\n      <td>-120.403427</td>\n      <td>-126.764648</td>\n      <td>-66.019295</td>\n      <td>-141.303726</td>\n      <td>-120.348221</td>\n      <td>-127.865952</td>\n      <td>-105.840103</td>\n      <td>-118.780632</td>\n      <td>-14.004517</td>\n      <td>-86.674942</td>\n      <td>-108.778221</td>\n      <td>-127.958794</td>\n      <td>-132.544281</td>\n      <td>...</td>\n      <td>-130.467819</td>\n      <td>-78.922585</td>\n      <td>-77.917694</td>\n      <td>-91.279961</td>\n      <td>-141.727310</td>\n      <td>-118.924675</td>\n      <td>-85.351357</td>\n      <td>-120.401955</td>\n      <td>-125.245354</td>\n      <td>-107.770271</td>\n      <td>-115.064507</td>\n      <td>-169.613007</td>\n      <td>-120.200035</td>\n      <td>-145.572006</td>\n      <td>-156.387314</td>\n      <td>-60.218742</td>\n      <td>-85.626663</td>\n      <td>-33.501293</td>\n      <td>-131.553207</td>\n      <td>-87.123055</td>\n      <td>-137.464890</td>\n      <td>-123.029312</td>\n      <td>-105.667885</td>\n      <td>-132.421097</td>\n      <td>-102.913704</td>\n      <td>-145.964478</td>\n      <td>-106.900627</td>\n      <td>-136.116959</td>\n      <td>-54.010841</td>\n      <td>-100.404701</td>\n      <td>-124.644936</td>\n      <td>-148.530762</td>\n      <td>-117.328918</td>\n      <td>-83.242477</td>\n      <td>-103.725266</td>\n      <td>-126.237343</td>\n      <td>-88.915764</td>\n      <td>-82.690109</td>\n      <td>-123.331154</td>\n      <td>-130.141586</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0012633b.wav</td>\n      <td>-61.516827</td>\n      <td>-137.957840</td>\n      <td>-135.251022</td>\n      <td>-131.443039</td>\n      <td>-143.504868</td>\n      <td>-91.525894</td>\n      <td>-95.100571</td>\n      <td>-71.105103</td>\n      <td>-143.161514</td>\n      <td>-134.524475</td>\n      <td>-120.346870</td>\n      <td>-46.736603</td>\n      <td>-105.836449</td>\n      <td>-164.404800</td>\n      <td>-83.155899</td>\n      <td>-101.337639</td>\n      <td>-154.266937</td>\n      <td>-139.005035</td>\n      <td>-129.626755</td>\n      <td>-124.227310</td>\n      <td>-142.726013</td>\n      <td>-101.476654</td>\n      <td>-115.320572</td>\n      <td>-149.794159</td>\n      <td>-103.935867</td>\n      <td>-149.656647</td>\n      <td>-163.327408</td>\n      <td>-94.886772</td>\n      <td>-136.855560</td>\n      <td>-119.211861</td>\n      <td>-101.089973</td>\n      <td>-105.599289</td>\n      <td>-107.653961</td>\n      <td>-120.390030</td>\n      <td>-140.153824</td>\n      <td>-67.572388</td>\n      <td>-139.666107</td>\n      <td>-158.461807</td>\n      <td>-122.430939</td>\n      <td>...</td>\n      <td>-96.537735</td>\n      <td>-122.251701</td>\n      <td>-84.801971</td>\n      <td>-141.487045</td>\n      <td>-181.586334</td>\n      <td>-99.657234</td>\n      <td>-107.053207</td>\n      <td>-170.472198</td>\n      <td>-115.240723</td>\n      <td>-121.427605</td>\n      <td>-117.045731</td>\n      <td>-47.767025</td>\n      <td>-116.433083</td>\n      <td>-111.015984</td>\n      <td>-117.057663</td>\n      <td>-143.644608</td>\n      <td>-99.069374</td>\n      <td>-115.339142</td>\n      <td>-141.811096</td>\n      <td>-128.247726</td>\n      <td>-93.803818</td>\n      <td>-86.983429</td>\n      <td>-134.433380</td>\n      <td>-110.397751</td>\n      <td>-112.155441</td>\n      <td>-106.202179</td>\n      <td>-99.703026</td>\n      <td>-132.421921</td>\n      <td>-138.517380</td>\n      <td>-135.493912</td>\n      <td>-96.295563</td>\n      <td>-105.209061</td>\n      <td>-118.531754</td>\n      <td>-79.120201</td>\n      <td>-87.881973</td>\n      <td>-76.267761</td>\n      <td>-135.798553</td>\n      <td>-119.258621</td>\n      <td>-126.908409</td>\n      <td>-79.048164</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>001ed5f1.wav</td>\n      <td>-143.204468</td>\n      <td>-116.359268</td>\n      <td>-171.419418</td>\n      <td>-145.565826</td>\n      <td>-162.699585</td>\n      <td>-104.440559</td>\n      <td>-178.680817</td>\n      <td>-115.201103</td>\n      <td>-144.318588</td>\n      <td>-181.171890</td>\n      <td>-124.767670</td>\n      <td>-174.423737</td>\n      <td>-126.619141</td>\n      <td>-142.114166</td>\n      <td>-105.237106</td>\n      <td>-167.072876</td>\n      <td>-171.083618</td>\n      <td>-172.794205</td>\n      <td>-159.526276</td>\n      <td>-75.499252</td>\n      <td>-73.489700</td>\n      <td>-120.534035</td>\n      <td>-194.184784</td>\n      <td>-144.941940</td>\n      <td>-121.444344</td>\n      <td>-144.566086</td>\n      <td>-144.912659</td>\n      <td>-56.960598</td>\n      <td>-171.115433</td>\n      <td>-120.010994</td>\n      <td>-98.426331</td>\n      <td>-194.418823</td>\n      <td>-130.729202</td>\n      <td>-165.935928</td>\n      <td>-153.662247</td>\n      <td>-154.682068</td>\n      <td>-165.994873</td>\n      <td>-177.782669</td>\n      <td>-167.611755</td>\n      <td>...</td>\n      <td>-162.111710</td>\n      <td>-158.757675</td>\n      <td>-139.856384</td>\n      <td>-135.677750</td>\n      <td>-63.248131</td>\n      <td>-141.793274</td>\n      <td>-117.006775</td>\n      <td>-168.491684</td>\n      <td>-178.772995</td>\n      <td>-143.459732</td>\n      <td>-71.699127</td>\n      <td>-134.442291</td>\n      <td>-145.045731</td>\n      <td>-176.854324</td>\n      <td>-144.462540</td>\n      <td>-156.713089</td>\n      <td>-19.328241</td>\n      <td>-97.318512</td>\n      <td>-191.861496</td>\n      <td>-119.050102</td>\n      <td>-157.246490</td>\n      <td>-155.709457</td>\n      <td>-63.515446</td>\n      <td>-42.678654</td>\n      <td>-91.052040</td>\n      <td>-71.286865</td>\n      <td>-133.747314</td>\n      <td>-167.629395</td>\n      <td>-74.598259</td>\n      <td>-126.484406</td>\n      <td>-153.946716</td>\n      <td>-139.543411</td>\n      <td>-164.702148</td>\n      <td>-41.436291</td>\n      <td>-142.089691</td>\n      <td>-122.757385</td>\n      <td>-138.646347</td>\n      <td>-103.461441</td>\n      <td>-146.732437</td>\n      <td>-87.085861</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>00294be0.wav</td>\n      <td>-160.268265</td>\n      <td>-215.082672</td>\n      <td>-203.810699</td>\n      <td>-220.746155</td>\n      <td>-186.949509</td>\n      <td>-198.693512</td>\n      <td>-164.232315</td>\n      <td>-154.582977</td>\n      <td>-178.585388</td>\n      <td>-165.800186</td>\n      <td>-168.702087</td>\n      <td>-174.106232</td>\n      <td>-152.155914</td>\n      <td>-238.168823</td>\n      <td>-41.965664</td>\n      <td>-136.692825</td>\n      <td>-198.445023</td>\n      <td>-143.844620</td>\n      <td>-211.001816</td>\n      <td>-221.421661</td>\n      <td>-171.870407</td>\n      <td>-131.589966</td>\n      <td>-145.015366</td>\n      <td>-226.896637</td>\n      <td>-210.830261</td>\n      <td>-229.347076</td>\n      <td>-253.675247</td>\n      <td>-129.849503</td>\n      <td>-144.973526</td>\n      <td>-216.243790</td>\n      <td>-139.356628</td>\n      <td>-159.220566</td>\n      <td>-147.234558</td>\n      <td>-108.684387</td>\n      <td>-192.608002</td>\n      <td>-190.506149</td>\n      <td>-172.549255</td>\n      <td>-210.259933</td>\n      <td>-150.200836</td>\n      <td>...</td>\n      <td>-168.080780</td>\n      <td>-269.430634</td>\n      <td>-118.337036</td>\n      <td>-164.237564</td>\n      <td>-145.909851</td>\n      <td>-170.355499</td>\n      <td>-107.474747</td>\n      <td>-217.885773</td>\n      <td>-148.128052</td>\n      <td>-70.610176</td>\n      <td>-213.072113</td>\n      <td>-116.060814</td>\n      <td>-193.518784</td>\n      <td>54.585770</td>\n      <td>-228.859161</td>\n      <td>-122.922668</td>\n      <td>-124.608261</td>\n      <td>-173.166504</td>\n      <td>-144.664963</td>\n      <td>-203.498718</td>\n      <td>-121.339752</td>\n      <td>-142.996017</td>\n      <td>-177.477737</td>\n      <td>-160.373962</td>\n      <td>-161.025940</td>\n      <td>-132.305023</td>\n      <td>-175.064301</td>\n      <td>-202.563202</td>\n      <td>-191.359222</td>\n      <td>-199.721588</td>\n      <td>-183.013535</td>\n      <td>-148.741776</td>\n      <td>-128.768814</td>\n      <td>-77.995857</td>\n      <td>-195.554352</td>\n      <td>-135.571762</td>\n      <td>-114.203064</td>\n      <td>-78.478539</td>\n      <td>-148.339569</td>\n      <td>-60.929760</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>003fde7a.wav</td>\n      <td>-144.632309</td>\n      <td>-141.226013</td>\n      <td>-232.755508</td>\n      <td>-153.680161</td>\n      <td>-215.147385</td>\n      <td>-215.109238</td>\n      <td>-176.399750</td>\n      <td>-164.323502</td>\n      <td>31.024792</td>\n      <td>-153.351883</td>\n      <td>-105.273903</td>\n      <td>-191.400696</td>\n      <td>-151.041077</td>\n      <td>-180.343323</td>\n      <td>-163.182205</td>\n      <td>-199.348328</td>\n      <td>-164.876572</td>\n      <td>-169.647324</td>\n      <td>-168.549606</td>\n      <td>-160.406952</td>\n      <td>-193.799835</td>\n      <td>-169.047653</td>\n      <td>-148.607834</td>\n      <td>-170.688812</td>\n      <td>-190.856598</td>\n      <td>-159.012344</td>\n      <td>-186.324112</td>\n      <td>-119.890579</td>\n      <td>-215.021530</td>\n      <td>-148.516586</td>\n      <td>-175.030777</td>\n      <td>-169.149033</td>\n      <td>-180.869858</td>\n      <td>-158.048462</td>\n      <td>-174.094772</td>\n      <td>-136.623199</td>\n      <td>-177.105209</td>\n      <td>-28.685251</td>\n      <td>-201.956741</td>\n      <td>...</td>\n      <td>-117.654510</td>\n      <td>-186.187622</td>\n      <td>-148.814957</td>\n      <td>-185.319351</td>\n      <td>-141.406326</td>\n      <td>-199.651917</td>\n      <td>-204.341660</td>\n      <td>-107.302376</td>\n      <td>-185.507538</td>\n      <td>-131.321701</td>\n      <td>-91.662750</td>\n      <td>-147.530533</td>\n      <td>-161.417603</td>\n      <td>-171.718155</td>\n      <td>-168.239212</td>\n      <td>-229.545944</td>\n      <td>-143.584366</td>\n      <td>-178.736755</td>\n      <td>-120.951431</td>\n      <td>-160.480835</td>\n      <td>-176.869705</td>\n      <td>-211.862823</td>\n      <td>-204.091721</td>\n      <td>-131.534210</td>\n      <td>-201.893204</td>\n      <td>-113.264008</td>\n      <td>-188.991226</td>\n      <td>-211.053574</td>\n      <td>-185.515976</td>\n      <td>-206.143127</td>\n      <td>-188.171677</td>\n      <td>-106.324875</td>\n      <td>-208.160156</td>\n      <td>-150.677307</td>\n      <td>-216.247604</td>\n      <td>-172.063538</td>\n      <td>-189.247681</td>\n      <td>-195.184067</td>\n      <td>-155.999390</td>\n      <td>-203.926254</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}