{"cells":[{"metadata":{},"cell_type":"markdown","source":"based on : \n* https://www.kaggle.com/CVxTz/keras-cnn-starter\n* https://www.kaggle.com/jmourad100/keras-eda-and-cnn-starter\n* https://github.com/viig99/mkscancer\n\n# || Loading Packages"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\nimport os, time, random, cv2, glob, pickle, librosa\nfrom pathlib import Path\nfrom PIL import Image\nimport imgaug as ia\nfrom imgaug import augmenters as iaa\nfrom tqdm import tqdm\n\nfrom keras.models import Model\nfrom keras.layers import (Convolution1D, Input, Dense, Flatten, Dropout, GlobalAveragePooling1D, concatenate,\n                          Activation, MaxPool1D, GlobalMaxPool1D, BatchNormalization, Concatenate, ReLU, LeakyReLU)\nfrom keras.layers import BatchNormalization, Activation, Conv1D, Concatenate, AveragePooling1D\nfrom keras.layers import Conv1D, BatchNormalization, Activation, MaxPooling1D, GlobalAveragePooling1D\n\nfrom keras.callbacks import ModelCheckpoint, EarlyStopping, LearningRateScheduler\nfrom keras.optimizers import Adam, SGD, RMSprop\nfrom keras.losses import sparse_categorical_crossentropy\nfrom keras.utils.np_utils import to_categorical\nfrom sklearn.model_selection import train_test_split\nfrom keras import layers as ll\n\nprint(os.listdir(\"../input\"))","execution_count":1,"outputs":[{"output_type":"stream","text":"Using TensorFlow backend.\n","name":"stderr"},{"output_type":"stream","text":"['train_curated.csv', 'train_noisy.csv', 'test', 'sample_submission.csv', 'train_curated', 'train_noisy']\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"def identity_block(input_tensor, kernel_size, filters, stage, block):\n    filters1, filters2, filters3 = filters\n    conv_name_base = 'res' + str(stage) + block + '_branch'\n    bn_name_base = 'bn' + str(stage) + block + '_branch'\n\n    x = BatchNormalization(name=bn_name_base + '2a')(input_tensor)\n    x = Activation('relu')(x)\n    x = Conv1D(filters1, 1, name=conv_name_base + '2a')(x)\n\n    x = BatchNormalization(name=bn_name_base + '2b')(x)\n    x = Activation('relu')(x)\n    x = Conv1D(filters2, kernel_size,\n               padding='same', name=conv_name_base + '2b')(x)\n\n    x = BatchNormalization(name=bn_name_base + '2c')(x)\n    x = Conv1D(filters3, 1, name=conv_name_base + '2c')(x)\n\n    x = ll.add([x, input_tensor])\n    x = Activation('relu')(x)\n    return x\n\n\ndef conv_block(input_tensor, kernel_size, filters, stage, block, strides=2):\n    filters1, filters2, filters3 = filters\n    conv_name_base = 'res' + str(stage) + block + '_branch'\n    bn_name_base = 'bn' + str(stage) + block + '_branch'\n\n    x = BatchNormalization(name=bn_name_base + '2a')(input_tensor)\n    x = Activation('relu')(x)\n    x = Conv1D(filters1, 1, strides=strides,\n               name=conv_name_base + '2a')(x)\n\n    x = BatchNormalization(name=bn_name_base + '2b')(x)\n    x = Activation('relu')(x)\n    x = Conv1D(filters2, kernel_size, padding='same',\n               name=conv_name_base + '2b')(x)\n\n    x = BatchNormalization(name=bn_name_base + '2c')(x)\n    x = Conv1D(filters3, 1, name=conv_name_base + '2c')(x)\n\n    shortcut = BatchNormalization(name=bn_name_base + '1')(input_tensor)\n    shortcut = Conv1D(filters3, 1, strides=strides,\n                      name=conv_name_base + '1')(shortcut)\n\n    x = ll.add([x, shortcut])\n    x = Activation('relu')(x)\n    return x\n\n\ndef resnet_block(input_tensor, final_layer_output=128, append='n'):\n    x = Conv1D(\n        64, 7, strides=2, padding='same', name='conv1' + append)(input_tensor)\n    x = BatchNormalization(name='bn_conv1' + append)(x)\n    x = Activation('relu')(x)\n    x = MaxPooling1D(3, strides=2)(x)\n    x = conv_block(x, 3, [64, 64, 256],\n                   stage=2, block='a' + append, strides=1)\n    x = identity_block(x, 3, [64, 64, 256], stage=2, block='b' + append)\n    x = identity_block(x, 3, [64, 64, 256], stage=2, block='c' + append)\n    x = conv_block(x, 3, [128, 128, 512], stage=3, block='a' + append)\n    x = identity_block(x, 3, [128, 128, 512], stage=3, block='b' + append)\n    x = identity_block(x, 3, [128, 128, 512], stage=3, block='c' + append)\n    x = identity_block(x, 3, [128, 128, 512], stage=3, block='d' + append)\n#     x = conv_block(x, 3, [256, 256, 1024], stage=4, block='a' + append)\n#     x = identity_block(x, 3, [256, 256, 1024], stage=4, block='b' + append)\n#     x = identity_block(x, 3, [256, 256, 1024], stage=4, block='c' + append)\n#     x = identity_block(x, 3, [256, 256, 1024], stage=4, block='d' + append)\n#     x = identity_block(x, 3, [256, 256, 1024], stage=4, block='e' + append)\n#     x = identity_block(x, 3, [256, 256, 1024], stage=4, block='f' + append)\n#     x = conv_block(x, 3, [512, 512, 2048], stage=5, block='a' + append)\n#     x = identity_block(x, 3, [512, 512, 2048], stage=5, block='b' + append)\n#     x = identity_block(x, 3, [512, 512, 2048], stage=5, block='c' + append)\n    x = AveragePooling1D(final_layer_output, name='avg_pool' + append)(x)\n    x = Flatten()(x)\n    return x","execution_count":2,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","collapsed":true,"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":false},"cell_type":"markdown","source":"# || Configuration"},{"metadata":{"trusted":true},"cell_type":"code","source":"t_start = time.time()\n\n# Keras reproduce score (then init all model seed)\nseed_nb=14\nimport numpy as np \nnp.random.seed(seed_nb)\nimport tensorflow as tf\ntf.set_random_seed(seed_nb)","execution_count":3,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# || Data Preparation"},{"metadata":{"trusted":true},"cell_type":"code","source":"input_length = 5000\n\nbatch_size = 128\n\ndef audio_norm(data):\n\n    max_data = np.max(data)\n    min_data = np.min(data)\n    data = (data-min_data)/(max_data-min_data+0.0001)\n    return data-0.5\n\n\ndef load_audio_file(file_path, input_length=input_length):\n    data = librosa.core.load(file_path, sr=16000)[0] #, sr=16000\n    if len(data)>input_length:\n        max_offset = len(data)-input_length\n        offset = np.random.randint(max_offset)\n        data = data[offset:(input_length+offset)]\n        \n    else:\n        if input_length > len(data):\n            max_offset = input_length - len(data)\n            offset = np.random.randint(max_offset)\n        else:\n            offset = 0\n            \n        data = np.pad(data, (offset, input_length - len(data) - offset), \"constant\")\n        \n    data = audio_norm(data)\n    return data","execution_count":4,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_files = glob.glob(\"../input/train_curated/*.wav\")\ntrain_labels = pd.read_csv(\"../input/train_curated.csv\")\ntrain_labels['labels'] = train_labels['labels'].apply(lambda x: x.split(',')[0]) # only keep first label for now","execution_count":5,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"file_to_label = {\"../input/train_curated/\"+k:v for k,v in zip(train_labels.fname.values, train_labels.labels.values)}","execution_count":6,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"list_labels = sorted(list(set(train_labels.labels.values)))\nlabel_to_int = {k:v for v,k in enumerate(list_labels)}\nint_to_label = {v:k for k,v in label_to_int.items()}\nfile_to_int = {k:label_to_int[v] for k,v in file_to_label.items()}","execution_count":7,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def get_model():\n    nclass = len(list_labels)\n    model_input = Input(shape=(input_length, 1))\n    output = resnet_block(model_input)    \n    dense_1 = Dense(nclass, activation=\"softmax\")(output)\n\n    model = Model(inputs=model_input, outputs=dense_1)\n    model.compile(optimizer=Adam(0.001), loss=sparse_categorical_crossentropy, metrics=['acc'])\n    return model","execution_count":8,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def chunker(seq, size):\n    return (seq[pos:pos + size] for pos in range(0, len(seq), size))","execution_count":9,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def train_generator(list_files, batch_size=batch_size):\n    while True:\n        random.shuffle(list_files)\n        for batch_files in chunker(list_files, size=batch_size):\n            batch_data = [load_audio_file(fpath) for fpath in batch_files]\n            batch_data = np.array(batch_data)[:,:,np.newaxis]\n            batch_labels = [file_to_int[fpath] for fpath in batch_files]\n            batch_labels = np.array(batch_labels)\n            \n            yield batch_data, batch_labels","execution_count":10,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"tr_files, val_files = train_test_split(train_files, test_size=0.05)","execution_count":11,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model = get_model()","execution_count":12,"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.\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# model.summary()","execution_count":13,"outputs":[{"output_type":"stream","text":"__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_1 (InputLayer)            (None, 5000, 1)      0                                            \n__________________________________________________________________________________________________\nconv1n (Conv1D)                 (None, 2500, 64)     512         input_1[0][0]                    \n__________________________________________________________________________________________________\nbn_conv1n (BatchNormalization)  (None, 2500, 64)     256         conv1n[0][0]                     \n__________________________________________________________________________________________________\nactivation_1 (Activation)       (None, 2500, 64)     0           bn_conv1n[0][0]                  \n__________________________________________________________________________________________________\nmax_pooling1d_1 (MaxPooling1D)  (None, 1249, 64)     0           activation_1[0][0]               \n__________________________________________________________________________________________________\nbn2an_branch2a (BatchNormalizat (None, 1249, 64)     256         max_pooling1d_1[0][0]            \n__________________________________________________________________________________________________\nactivation_2 (Activation)       (None, 1249, 64)     0           bn2an_branch2a[0][0]             \n__________________________________________________________________________________________________\nres2an_branch2a (Conv1D)        (None, 1249, 64)     4160        activation_2[0][0]               \n__________________________________________________________________________________________________\nbn2an_branch2b (BatchNormalizat (None, 1249, 64)     256         res2an_branch2a[0][0]            \n__________________________________________________________________________________________________\nactivation_3 (Activation)       (None, 1249, 64)     0           bn2an_branch2b[0][0]             \n__________________________________________________________________________________________________\nres2an_branch2b (Conv1D)        (None, 1249, 64)     12352       activation_3[0][0]               \n__________________________________________________________________________________________________\nbn2an_branch2c (BatchNormalizat (None, 1249, 64)     256         res2an_branch2b[0][0]            \n__________________________________________________________________________________________________\nbn2an_branch1 (BatchNormalizati (None, 1249, 64)     256         max_pooling1d_1[0][0]            \n__________________________________________________________________________________________________\nres2an_branch2c (Conv1D)        (None, 1249, 256)    16640       bn2an_branch2c[0][0]             \n__________________________________________________________________________________________________\nres2an_branch1 (Conv1D)         (None, 1249, 256)    16640       bn2an_branch1[0][0]              \n__________________________________________________________________________________________________\nadd_1 (Add)                     (None, 1249, 256)    0           res2an_branch2c[0][0]            \n                                                                 res2an_branch1[0][0]             \n__________________________________________________________________________________________________\nactivation_4 (Activation)       (None, 1249, 256)    0           add_1[0][0]                      \n__________________________________________________________________________________________________\nbn2bn_branch2a (BatchNormalizat (None, 1249, 256)    1024        activation_4[0][0]               \n__________________________________________________________________________________________________\nactivation_5 (Activation)       (None, 1249, 256)    0           bn2bn_branch2a[0][0]             \n__________________________________________________________________________________________________\nres2bn_branch2a (Conv1D)        (None, 1249, 64)     16448       activation_5[0][0]               \n__________________________________________________________________________________________________\nbn2bn_branch2b (BatchNormalizat (None, 1249, 64)     256         res2bn_branch2a[0][0]            \n__________________________________________________________________________________________________\nactivation_6 (Activation)       (None, 1249, 64)     0           bn2bn_branch2b[0][0]             \n__________________________________________________________________________________________________\nres2bn_branch2b (Conv1D)        (None, 1249, 64)     12352       activation_6[0][0]               \n__________________________________________________________________________________________________\nbn2bn_branch2c (BatchNormalizat (None, 1249, 64)     256         res2bn_branch2b[0][0]            \n__________________________________________________________________________________________________\nres2bn_branch2c (Conv1D)        (None, 1249, 256)    16640       bn2bn_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_2 (Add)                     (None, 1249, 256)    0           res2bn_branch2c[0][0]            \n                                                                 activation_4[0][0]               \n__________________________________________________________________________________________________\nactivation_7 (Activation)       (None, 1249, 256)    0           add_2[0][0]                      \n__________________________________________________________________________________________________\nbn2cn_branch2a (BatchNormalizat (None, 1249, 256)    1024        activation_7[0][0]               \n__________________________________________________________________________________________________\nactivation_8 (Activation)       (None, 1249, 256)    0           bn2cn_branch2a[0][0]             \n__________________________________________________________________________________________________\nres2cn_branch2a (Conv1D)        (None, 1249, 64)     16448       activation_8[0][0]               \n__________________________________________________________________________________________________\nbn2cn_branch2b (BatchNormalizat (None, 1249, 64)     256         res2cn_branch2a[0][0]            \n__________________________________________________________________________________________________\nactivation_9 (Activation)       (None, 1249, 64)     0           bn2cn_branch2b[0][0]             \n__________________________________________________________________________________________________\nres2cn_branch2b (Conv1D)        (None, 1249, 64)     12352       activation_9[0][0]               \n__________________________________________________________________________________________________\nbn2cn_branch2c (BatchNormalizat (None, 1249, 64)     256         res2cn_branch2b[0][0]            \n__________________________________________________________________________________________________\nres2cn_branch2c (Conv1D)        (None, 1249, 256)    16640       bn2cn_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_3 (Add)                     (None, 1249, 256)    0           res2cn_branch2c[0][0]            \n                                                                 activation_7[0][0]               \n__________________________________________________________________________________________________\nactivation_10 (Activation)      (None, 1249, 256)    0           add_3[0][0]                      \n__________________________________________________________________________________________________\nbn3an_branch2a (BatchNormalizat (None, 1249, 256)    1024        activation_10[0][0]              \n__________________________________________________________________________________________________\nactivation_11 (Activation)      (None, 1249, 256)    0           bn3an_branch2a[0][0]             \n__________________________________________________________________________________________________\nres3an_branch2a (Conv1D)        (None, 625, 128)     32896       activation_11[0][0]              \n__________________________________________________________________________________________________\nbn3an_branch2b (BatchNormalizat (None, 625, 128)     512         res3an_branch2a[0][0]            \n__________________________________________________________________________________________________\nactivation_12 (Activation)      (None, 625, 128)     0           bn3an_branch2b[0][0]             \n__________________________________________________________________________________________________\nres3an_branch2b (Conv1D)        (None, 625, 128)     49280       activation_12[0][0]              \n__________________________________________________________________________________________________\nbn3an_branch2c (BatchNormalizat (None, 625, 128)     512         res3an_branch2b[0][0]            \n__________________________________________________________________________________________________\nbn3an_branch1 (BatchNormalizati (None, 1249, 256)    1024        activation_10[0][0]              \n__________________________________________________________________________________________________\nres3an_branch2c (Conv1D)        (None, 625, 512)     66048       bn3an_branch2c[0][0]             \n__________________________________________________________________________________________________\nres3an_branch1 (Conv1D)         (None, 625, 512)     131584      bn3an_branch1[0][0]              \n__________________________________________________________________________________________________\nadd_4 (Add)                     (None, 625, 512)     0           res3an_branch2c[0][0]            \n                                                                 res3an_branch1[0][0]             \n__________________________________________________________________________________________________\nactivation_13 (Activation)      (None, 625, 512)     0           add_4[0][0]                      \n__________________________________________________________________________________________________\nbn3bn_branch2a (BatchNormalizat (None, 625, 512)     2048        activation_13[0][0]              \n__________________________________________________________________________________________________\nactivation_14 (Activation)      (None, 625, 512)     0           bn3bn_branch2a[0][0]             \n__________________________________________________________________________________________________\nres3bn_branch2a (Conv1D)        (None, 625, 128)     65664       activation_14[0][0]              \n__________________________________________________________________________________________________\nbn3bn_branch2b (BatchNormalizat (None, 625, 128)     512         res3bn_branch2a[0][0]            \n__________________________________________________________________________________________________\nactivation_15 (Activation)      (None, 625, 128)     0           bn3bn_branch2b[0][0]             \n__________________________________________________________________________________________________\nres3bn_branch2b (Conv1D)        (None, 625, 128)     49280       activation_15[0][0]              \n__________________________________________________________________________________________________\nbn3bn_branch2c (BatchNormalizat (None, 625, 128)     512         res3bn_branch2b[0][0]            \n__________________________________________________________________________________________________\nres3bn_branch2c (Conv1D)        (None, 625, 512)     66048       bn3bn_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_5 (Add)                     (None, 625, 512)     0           res3bn_branch2c[0][0]            \n                                                                 activation_13[0][0]              \n__________________________________________________________________________________________________\nactivation_16 (Activation)      (None, 625, 512)     0           add_5[0][0]                      \n__________________________________________________________________________________________________\nbn3cn_branch2a (BatchNormalizat (None, 625, 512)     2048        activation_16[0][0]              \n__________________________________________________________________________________________________\nactivation_17 (Activation)      (None, 625, 512)     0           bn3cn_branch2a[0][0]             \n__________________________________________________________________________________________________\nres3cn_branch2a (Conv1D)        (None, 625, 128)     65664       activation_17[0][0]              \n__________________________________________________________________________________________________\nbn3cn_branch2b (BatchNormalizat (None, 625, 128)     512         res3cn_branch2a[0][0]            \n__________________________________________________________________________________________________\nactivation_18 (Activation)      (None, 625, 128)     0           bn3cn_branch2b[0][0]             \n__________________________________________________________________________________________________\nres3cn_branch2b (Conv1D)        (None, 625, 128)     49280       activation_18[0][0]              \n__________________________________________________________________________________________________\nbn3cn_branch2c (BatchNormalizat (None, 625, 128)     512         res3cn_branch2b[0][0]            \n__________________________________________________________________________________________________\nres3cn_branch2c (Conv1D)        (None, 625, 512)     66048       bn3cn_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_6 (Add)                     (None, 625, 512)     0           res3cn_branch2c[0][0]            \n                                                                 activation_16[0][0]              \n__________________________________________________________________________________________________\nactivation_19 (Activation)      (None, 625, 512)     0           add_6[0][0]                      \n__________________________________________________________________________________________________\nbn3dn_branch2a (BatchNormalizat (None, 625, 512)     2048        activation_19[0][0]              \n__________________________________________________________________________________________________\nactivation_20 (Activation)      (None, 625, 512)     0           bn3dn_branch2a[0][0]             \n__________________________________________________________________________________________________\nres3dn_branch2a (Conv1D)        (None, 625, 128)     65664       activation_20[0][0]              \n__________________________________________________________________________________________________\nbn3dn_branch2b (BatchNormalizat (None, 625, 128)     512         res3dn_branch2a[0][0]            \n__________________________________________________________________________________________________\nactivation_21 (Activation)      (None, 625, 128)     0           bn3dn_branch2b[0][0]             \n__________________________________________________________________________________________________\nres3dn_branch2b (Conv1D)        (None, 625, 128)     49280       activation_21[0][0]              \n__________________________________________________________________________________________________\nbn3dn_branch2c (BatchNormalizat (None, 625, 128)     512         res3dn_branch2b[0][0]            \n__________________________________________________________________________________________________\nres3dn_branch2c (Conv1D)        (None, 625, 512)     66048       bn3dn_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_7 (Add)                     (None, 625, 512)     0           res3dn_branch2c[0][0]            \n                                                                 activation_19[0][0]              \n__________________________________________________________________________________________________\nactivation_22 (Activation)      (None, 625, 512)     0           add_7[0][0]                      \n__________________________________________________________________________________________________\navg_pooln (AveragePooling1D)    (None, 4, 512)       0           activation_22[0][0]              \n__________________________________________________________________________________________________\nflatten_1 (Flatten)             (None, 2048)         0           avg_pooln[0][0]                  \n__________________________________________________________________________________________________\ndense_1 (Dense)                 (None, 78)           159822      flatten_1[0][0]                  \n==================================================================================================\nTotal params: 1,140,430\nTrainable params: 1,132,110\nNon-trainable params: 8,320\n__________________________________________________________________________________________________\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"model.fit_generator(train_generator(tr_files), \n                    steps_per_epoch=len(tr_files)//batch_size, \n                    validation_data=train_generator(val_files),\n                    validation_steps=len(val_files)//batch_size,\n                    epochs=2)","execution_count":16,"outputs":[{"output_type":"stream","text":"Epoch 1/2\n","name":"stdout"},{"output_type":"error","ename":"KeyboardInterrupt","evalue":"","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m<ipython-input-16-e8d33f160f7f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      4\u001b[0m                     \u001b[0mvalidation_steps\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval_files\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m//\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m                     \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m                     verbose=2)\n\u001b[0m","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/legacy/interfaces.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m     89\u001b[0m                 warnings.warn('Update your `' + object_name + '` call to the ' +\n\u001b[1;32m     90\u001b[0m                               'Keras 2 API: ' + signature, stacklevel=2)\n\u001b[0;32m---> 91\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     92\u001b[0m         \u001b[0mwrapper\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_original_function\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     93\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mfit_generator\u001b[0;34m(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)\u001b[0m\n\u001b[1;32m   1416\u001b[0m             \u001b[0muse_multiprocessing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0muse_multiprocessing\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1417\u001b[0m             \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshuffle\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1418\u001b[0;31m             initial_epoch=initial_epoch)\n\u001b[0m\u001b[1;32m   1419\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1420\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0minterfaces\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegacy_generator_methods_support\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/engine/training_generator.py\u001b[0m in \u001b[0;36mfit_generator\u001b[0;34m(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)\u001b[0m\n\u001b[1;32m    179\u001b[0m             \u001b[0mbatch_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    180\u001b[0m             \u001b[0;32mwhile\u001b[0m \u001b[0msteps_done\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 181\u001b[0;31m                 \u001b[0mgenerator_output\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutput_generator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    182\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    183\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgenerator_output\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__len__'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/utils/data_utils.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    683\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    684\u001b[0m             \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_running\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 685\u001b[0;31m                 \u001b[0minputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mqueue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mblock\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    686\u001b[0m                 \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mqueue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtask_done\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    687\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0minputs\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/multiprocessing/pool.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m    636\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    637\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 638\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    639\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mready\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    640\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mTimeoutError\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/multiprocessing/pool.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m    633\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    634\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 635\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_event\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    636\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    637\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/threading.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m    549\u001b[0m             \u001b[0msignaled\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_flag\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    550\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0msignaled\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 551\u001b[0;31m                 \u001b[0msignaled\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_cond\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    552\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0msignaled\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    553\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/threading.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m    293\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m    \u001b[0;31m# restore state no matter what (e.g., KeyboardInterrupt)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    294\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mtimeout\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 295\u001b[0;31m                 \u001b[0mwaiter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    296\u001b[0m                 \u001b[0mgotit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    297\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "]}]},{"metadata":{"trusted":true},"cell_type":"code","source":"list_preds = []\nbatch_size = 128\ntest_files = glob.glob(\"../input/test/*.wav\")\ntest_files.sort()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for batch_files in tqdm(chunker(test_files, size=batch_size), total=len(test_files)//batch_size ):\n    batch_data = [load_audio_file(fpath) for fpath in batch_files]\n    batch_data = np.array(batch_data)[:,:,np.newaxis]\n    preds = model.predict(batch_data).tolist()\n    list_preds += preds","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"array_preds = np.array(list_preds)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df = pd.read_csv('../input/sample_submission.csv')\nfor i, v in enumerate(list_labels):\n    df[v] = array_preds[:, i]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df['fname'] = df.fname.apply(lambda x: x.split(\"/\")[-1])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.to_csv(\"submission.csv\", index=False)\ndf.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"t_finish = time.time()\nprint(f\"Kernel run time = {(t_finish-t_start)/3600} hours\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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}