{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":14774,"databundleVersionId":875431,"sourceType":"competition"},{"sourceId":556303,"sourceType":"datasetVersion","datasetId":266957},{"sourceId":556726,"sourceType":"datasetVersion","datasetId":267272},{"sourceId":8272012,"sourceType":"datasetVersion","datasetId":4911444},{"sourceId":8277101,"sourceType":"datasetVersion","datasetId":4915051},{"sourceId":8596388,"sourceType":"datasetVersion","datasetId":5142711}],"dockerImageVersionId":29188,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import os\nimport sys\nimport cv2\nimport shutil\nimport random\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom tensorflow import set_random_seed\nfrom sklearn.utils import class_weight\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import confusion_matrix, cohen_kappa_score\nfrom keras import backend as K\nfrom keras.models import Model\nfrom keras.utils import to_categorical\nfrom keras import optimizers, applications\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.layers import Dense, Dropout, GlobalAveragePooling2D, Input\nfrom keras.callbacks import EarlyStopping, ReduceLROnPlateau, Callback, LearningRateScheduler\n\ndef seed_everything(seed=0):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    set_random_seed(0)\n\nseed = 0\nseed_everything(seed)\n%matplotlib inline\nsns.set(style=\"whitegrid\")\nwarnings.filterwarnings(\"ignore\")\nsys.path.append(os.path.abspath('../input/efficientnet/efficientnet-master/efficientnet-master/'))\nfrom efficientnet import *","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-06-03T16:46:12.061495Z","iopub.execute_input":"2024-06-03T16:46:12.061829Z","iopub.status.idle":"2024-06-03T16:46:12.082128Z","shell.execute_reply.started":"2024-06-03T16:46:12.061772Z","shell.execute_reply":"2024-06-03T16:46:12.081394Z"},"trusted":true},"execution_count":7,"outputs":[]},{"cell_type":"code","source":"fold_set = pd.read_csv('/kaggle/input/5-fold/5-fold.csv')\nX_train = fold_set[fold_set['fold_0'] == 'train']\nX_val = fold_set[fold_set['fold_0'] == 'validation']\ntest = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\nprint('Number of train samples: ', X_train.shape[0])\nprint('Number of validation samples: ', X_val.shape[0])\nprint('Number of test samples: ', test.shape[0])\n\n# Preprocecss data\nX_train[\"id_code\"] = X_train[\"id_code\"].apply(lambda x: x + \".png\")\nX_val[\"id_code\"] = X_val[\"id_code\"].apply(lambda x: x + \".png\")\ntest[\"id_code\"] = test[\"id_code\"].apply(lambda x: x + \".png\")\nX_train[\"diagnosis\"] = X_train[\"diagnosis\"].astype(\"str\")\nX_val[\"diagnosis\"] = X_val[\"diagnosis\"].astype(\"str\")\n# display(X_train.head())","metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-06-03T17:13:40.331809Z","iopub.execute_input":"2024-06-03T17:13:40.332105Z","iopub.status.idle":"2024-06-03T17:13:42.524342Z","shell.execute_reply.started":"2024-06-03T17:13:40.332061Z","shell.execute_reply":"2024-06-03T17:13:42.523429Z"},"trusted":true},"execution_count":38,"outputs":[{"name":"stdout","text":"Number of train samples:  2929\nNumber of validation samples:  733\nNumber of test samples:  1928\n","output_type":"stream"}]},{"cell_type":"code","source":"# Model parameters\nFACTOR = 4\nBATCH_SIZE = 8 * FACTOR\nEPOCHS = 20\nWARMUP_EPOCHS = 5\nLEARNING_RATE = 1e-4 * FACTOR\nWARMUP_LEARNING_RATE = 1e-3 * FACTOR\nHEIGHT = 224\nWIDTH = 224\nCHANNELS = 3\nES_PATIENCE = 5\nRLROP_PATIENCE = 3\nDECAY_DROP = 0.5\nLR_WARMUP_EPOCHS_1st = 2\nLR_WARMUP_EPOCHS_2nd = 5\nSTEP_SIZE = len(X_train) // BATCH_SIZE\nTOTAL_STEPS_1st = WARMUP_EPOCHS * STEP_SIZE\nTOTAL_STEPS_2nd = EPOCHS * STEP_SIZE\nWARMUP_STEPS_1st = LR_WARMUP_EPOCHS_1st * STEP_SIZE\nWARMUP_STEPS_2nd = LR_WARMUP_EPOCHS_2nd * STEP_SIZE","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-06-03T16:46:17.860416Z","iopub.execute_input":"2024-06-03T16:46:17.860719Z","iopub.status.idle":"2024-06-03T16:46:17.867746Z","shell.execute_reply.started":"2024-06-03T16:46:17.860677Z","shell.execute_reply":"2024-06-03T16:46:17.867017Z"},"trusted":true},"execution_count":9,"outputs":[]},{"cell_type":"code","source":"# train_base_path = '../input/aptos2019-blindness-detection/train_images/'\n# test_base_path = '../input/aptos2019-blindness-detection/test_images/'\n# train_dest_path = 'base_dir/train_images/'\n# validation_dest_path = 'base_dir/validation_images/'\n# test_dest_path =  'base_dir/test_images/'\n\n# # Making sure directories don't exist\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)\n    \n# # Creating train, validation and test directories\n# os.makedirs(train_dest_path)\n# os.makedirs(validation_dest_path)\n# os.makedirs(test_dest_path)\n\n# def crop_image(img, tol=7):\n#     if img.ndim ==2:\n#         mask = img>tol\n#         return img[np.ix_(mask.any(1),mask.any(0))]\n#     elif img.ndim==3:\n#         gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)\n#         mask = gray_img>tol\n#         check_shape = img[:,:,0][np.ix_(mask.any(1),mask.any(0))].shape[0]\n#         if (check_shape == 0): # image is too dark so that we crop out everything,\n#             return img # return original image\n#         else:\n#             img1=img[:,:,0][np.ix_(mask.any(1),mask.any(0))]\n#             img2=img[:,:,1][np.ix_(mask.any(1),mask.any(0))]\n#             img3=img[:,:,2][np.ix_(mask.any(1),mask.any(0))]\n#             img = np.stack([img1,img2,img3],axis=-1)\n            \n#         return img\n\n# def circle_crop(img):\n#     img = crop_image(img)\n\n#     height, width, depth = img.shape\n#     largest_side = np.max((height, width))\n#     img = cv2.resize(img, (largest_side, largest_side))\n\n#     height, width, depth = img.shape\n\n#     x = width//2\n#     y = height//2\n#     r = np.amin((x, y))\n\n#     circle_img = np.zeros((height, width), np.uint8)\n#     cv2.circle(circle_img, (x, y), int(r), 1, thickness=-1)\n#     img = cv2.bitwise_and(img, img, mask=circle_img)\n#     img = crop_image(img)\n\n#     return img\n    \n# def preprocess_image(base_path, save_path, image_id, HEIGHT, WIDTH, sigmaX=10):\n#     image = cv2.imread(base_path + image_id)\n#     image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n#     image = circle_crop(image)\n#     image = cv2.resize(image, (HEIGHT, WIDTH))\n#     image = cv2.addWeighted(image, 4, cv2.GaussianBlur(image, (0,0), sigmaX), -4 , 128)\n#     cv2.imwrite(save_path + image_id, image)\n    \n# # Pre-procecss train set\n# for i, image_id in enumerate(X_train['id_code']):\n#     preprocess_image(train_base_path, train_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss validation set\n# for i, image_id in enumerate(X_val['id_code']):\n#     preprocess_image(train_base_path, validation_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss test set\n# for i, image_id in enumerate(test['id_code']):\n#     preprocess_image(test_base_path, test_dest_path, image_id, HEIGHT, WIDTH)","metadata":{"execution":{"iopub.status.busy":"2024-06-03T16:41:45.05489Z","iopub.execute_input":"2024-06-03T16:41:45.055177Z","iopub.status.idle":"2024-06-03T16:42:08.972344Z","shell.execute_reply.started":"2024-06-03T16:41:45.055124Z","shell.execute_reply":"2024-06-03T16:42:08.971113Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":6,"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m<ipython-input-6-b83c48334d10>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     66\u001b[0m \u001b[0;31m# Pre-procecss train set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     67\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimage_id\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'id_code'\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---> 68\u001b[0;31m     \u001b[0mpreprocess_image\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_base_path\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrain_dest_path\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimage_id\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mHEIGHT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mWIDTH\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     70\u001b[0m \u001b[0;31m# Pre-procecss validation set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m<ipython-input-6-b83c48334d10>\u001b[0m in \u001b[0;36mpreprocess_image\u001b[0;34m(base_path, save_path, image_id, HEIGHT, WIDTH, sigmaX)\u001b[0m\n\u001b[1;32m     59\u001b[0m     \u001b[0mimage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbase_path\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mimage_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     60\u001b[0m     \u001b[0mimage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcvtColor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLOR_BGR2RGB\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 61\u001b[0;31m     \u001b[0mimage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcircle_crop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     62\u001b[0m     \u001b[0mimage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mHEIGHT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mWIDTH\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     63\u001b[0m     \u001b[0mimage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maddWeighted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGaussianBlur\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msigmaX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m4\u001b[0m \u001b[0;34m,\u001b[0m \u001b[0;36m128\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m<ipython-input-6-b83c48334d10>\u001b[0m in \u001b[0;36mcircle_crop\u001b[0;34m(img)\u001b[0m\n\u001b[1;32m     52\u001b[0m     \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcircle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcircle_img\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthickness\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     53\u001b[0m     \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbitwise_and\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcircle_img\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 54\u001b[0;31m     \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcrop_image\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     56\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mimg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m<ipython-input-6-b83c48334d10>\u001b[0m in \u001b[0;36mcrop_image\u001b[0;34m(img, tol)\u001b[0m\n\u001b[1;32m     29\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mimg\u001b[0m \u001b[0;31m# return original image\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     30\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 31\u001b[0;31m             \u001b[0mimg1\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mix_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\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[0m\u001b[1;32m     32\u001b[0m             \u001b[0mimg2\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mix_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\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     33\u001b[0m             \u001b[0mimg3\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mix_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\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;31mKeyboardInterrupt\u001b[0m: "],"ename":"KeyboardInterrupt","evalue":"","output_type":"error"}]},{"cell_type":"code","source":"# X_train[\"id_code\"] = X_train[\"id_code\"].apply(lambda x: x + \".png\")\n# X_val[\"id_code\"] = X_val[\"id_code\"].apply(lambda x: x + \".png\")\n# X_train[\"diagnosis\"] = X_train[\"diagnosis\"].astype(\"str\")\n# X_val[\"diagnosis\"] = X_val[\"diagnosis\"].astype(\"str\")\n# X_train.head()\n# X_val.head()","metadata":{"execution":{"iopub.status.busy":"2024-06-03T17:09:33.542095Z","iopub.execute_input":"2024-06-03T17:09:33.542469Z","iopub.status.idle":"2024-06-03T17:09:35.733347Z","shell.execute_reply.started":"2024-06-03T17:09:33.542405Z","shell.execute_reply":"2024-06-03T17:09:35.732532Z"},"trusted":true},"execution_count":35,"outputs":[{"execution_count":35,"output_type":"execute_result","data":{"text/plain":"                                 id_code diagnosis  height   width  \\\n2   0024cdab0c1e.png.png.png.png.png.png         1  1736.0  2416.0   \n4   005b95c28852.png.png.png.png.png.png         0  1536.0  2048.0   \n6   0097f532ac9f.png.png.png.png.png.png         0  1958.0  2588.0   \n7   00a8624548a9.png.png.png.png.png.png         2  2136.0  3216.0   \n13  0104b032c141.png.png.png.png.png.png         3  1736.0  2416.0   \n\n        fold_0 fold_1 fold_2 fold_3 fold_4  \n2   validation  train  train  train  train  \n4   validation  train  train  train  train  \n6   validation  train  train  train  train  \n7   validation  train  train  train  train  \n13  validation  train  train  train  train  ","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>id_code</th>\n      <th>diagnosis</th>\n      <th>height</th>\n      <th>width</th>\n      <th>fold_0</th>\n      <th>fold_1</th>\n      <th>fold_2</th>\n      <th>fold_3</th>\n      <th>fold_4</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2</th>\n      <td>0024cdab0c1e.png.png.png.png.png.png</td>\n      <td>1</td>\n      <td>1736.0</td>\n      <td>2416.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>005b95c28852.png.png.png.png.png.png</td>\n      <td>0</td>\n      <td>1536.0</td>\n      <td>2048.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>0097f532ac9f.png.png.png.png.png.png</td>\n      <td>0</td>\n      <td>1958.0</td>\n      <td>2588.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>00a8624548a9.png.png.png.png.png.png</td>\n      <td>2</td>\n      <td>2136.0</td>\n      <td>3216.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>13</th>\n      <td>0104b032c141.png.png.png.png.png.png</td>\n      <td>3</td>\n      <td>1736.0</td>\n      <td>2416.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"datagen=ImageDataGenerator(rescale=1./255, \n                           rotation_range=360,\n                           horizontal_flip=True,\n                           vertical_flip=True)\n\ntrain_generator=datagen.flow_from_dataframe(\n                        dataframe=X_train,\n                        directory=\"/kaggle/input/data-main-1/fold0/fold0/train_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\nvalid_generator=datagen.flow_from_dataframe(\n                        dataframe=X_val,\n                        directory=\"/kaggle/input/data-main-1/fold0/fold0/validation_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\ntest_generator=datagen.flow_from_dataframe(  \n                       dataframe=test,\n                       directory=\"/kaggle/input/data-main-1/fold0/fold0/test_images\",\n                       x_col=\"id_code\",\n                       batch_size=1,\n                       class_mode=None,\n                       shuffle=False,\n                       target_size=(HEIGHT, WIDTH),\n                       seed=seed)","metadata":{"execution":{"iopub.status.busy":"2024-06-03T17:13:54.240635Z","iopub.execute_input":"2024-06-03T17:13:54.240959Z","iopub.status.idle":"2024-06-03T17:14:03.959896Z","shell.execute_reply.started":"2024-06-03T17:13:54.240903Z","shell.execute_reply":"2024-06-03T17:14:03.95906Z"},"trusted":true},"execution_count":39,"outputs":[{"name":"stdout","text":"Found 2929 validated image filenames belonging to 5 classes.\nFound 733 validated image filenames belonging to 5 classes.\nFound 1928 validated image filenames.\n","output_type":"stream"}]},{"cell_type":"code","source":"# def cosine_decay_with_warmup(global_step,\n#                              learning_rate_base,\n#                              total_steps,\n#                              warmup_learning_rate=0.0,\n#                              warmup_steps=0,\n#                              hold_base_rate_steps=0):\n#     \"\"\"\n#     Cosine decay schedule with warm up period.\n#     In this schedule, the learning rate grows linearly from warmup_learning_rate\n#     to learning_rate_base for warmup_steps, then transitions to a cosine decay\n#     schedule.\n#     :param global_step {int}: global step.\n#     :param learning_rate_base {float}: base learning rate.\n#     :param total_steps {int}: total number of training steps.\n#     :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#     :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#     :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#     :param global_step {int}: global step.\n#     :Returns : a float representing learning rate.\n#     :Raises ValueError: if warmup_learning_rate is larger than learning_rate_base, or if warmup_steps is larger than total_steps.\n#     \"\"\"\n\n#     if total_steps < warmup_steps:\n#         raise ValueError('total_steps must be larger or equal to warmup_steps.')\n#     learning_rate = 0.5 * learning_rate_base * (1 + np.cos(\n#         np.pi *\n#         (global_step - warmup_steps - hold_base_rate_steps\n#          ) / float(total_steps - warmup_steps - hold_base_rate_steps)))\n#     if hold_base_rate_steps > 0:\n#         learning_rate = np.where(global_step > warmup_steps + hold_base_rate_steps,\n#                                  learning_rate, learning_rate_base)\n#     if warmup_steps > 0:\n#         if learning_rate_base < warmup_learning_rate:\n#             raise ValueError('learning_rate_base must be larger or equal to warmup_learning_rate.')\n#         slope = (learning_rate_base - warmup_learning_rate) / warmup_steps\n#         warmup_rate = slope * global_step + warmup_learning_rate\n#         learning_rate = np.where(global_step < warmup_steps, warmup_rate,\n#                                  learning_rate)\n#     return np.where(global_step > total_steps, 0.0, learning_rate)\n\n\n# class WarmUpCosineDecayScheduler(Callback):\n#     \"\"\"Cosine decay with warmup learning rate scheduler\"\"\"\n\n#     def __init__(self,\n#                  learning_rate_base,\n#                  total_steps,\n#                  global_step_init=0,\n#                  warmup_learning_rate=0.0,\n#                  warmup_steps=0,\n#                  hold_base_rate_steps=0,\n#                  verbose=0):\n#         \"\"\"\n#         Constructor for cosine decay with warmup learning rate scheduler.\n#         :param learning_rate_base {float}: base learning rate.\n#         :param total_steps {int}: total number of training steps.\n#         :param global_step_init {int}: initial global step, e.g. from previous checkpoint.\n#         :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#         :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#         :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#         :param verbose {int}: quiet, 1: update messages. (default: {0}).\n#         \"\"\"\n\n#         super(WarmUpCosineDecayScheduler, self).__init__()\n#         self.learning_rate_base = learning_rate_base\n#         self.total_steps = total_steps\n#         self.global_step = global_step_init\n#         self.warmup_learning_rate = warmup_learning_rate\n#         self.warmup_steps = warmup_steps\n#         self.hold_base_rate_steps = hold_base_rate_steps\n#         self.verbose = verbose\n#         self.learning_rates = []\n\n#     def on_batch_end(self, batch, logs=None):\n#         self.global_step = self.global_step + 1\n#         lr = K.get_value(self.model.optimizer.lr)\n#         self.learning_rates.append(lr)\n\n#     def on_batch_begin(self, batch, logs=None):\n#         lr = cosine_decay_with_warmup(global_step=self.global_step,\n#                                       learning_rate_base=self.learning_rate_base,\n#                                       total_steps=self.total_steps,\n#                                       warmup_learning_rate=self.warmup_learning_rate,\n#                                       warmup_steps=self.warmup_steps,\n#                                       hold_base_rate_steps=self.hold_base_rate_steps)\n#         K.set_value(self.model.optimizer.lr, lr)\n#         if self.verbose > 0:\n#             print('\\nBatch %02d: setting learning rate to %s.' % (self.global_step + 1, lr))","metadata":{"execution":{"iopub.status.busy":"2024-04-30T12:44:50.458284Z","iopub.execute_input":"2024-04-30T12:44:50.45859Z","iopub.status.idle":"2024-04-30T12:44:50.477654Z","shell.execute_reply.started":"2024-04-30T12:44:50.458546Z","shell.execute_reply":"2024-04-30T12:44:50.476805Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df_path =  \"/kaggle/input/aptos2019-blindness-detection/train.csv\"\ntest_df_path = '/kaggle/input/aptos2019-blindness-detection/test.csv'\ntrain_img_path =  \"/kaggle/input/aptos2019-blindness-detection/train_images/\"\ntest_img_path =  '/kaggle/input/aptos2019-blindness-detection/test_images/'","metadata":{"execution":{"iopub.status.busy":"2024-06-03T16:48:48.972359Z","iopub.execute_input":"2024-06-03T16:48:48.972707Z","iopub.status.idle":"2024-06-03T16:48:48.976842Z","shell.execute_reply.started":"2024-06-03T16:48:48.972647Z","shell.execute_reply":"2024-06-03T16:48:48.97603Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"code","source":"train_df = pd.read_csv(train_df_path)\n\ntrain_df['id_code'] = train_df['id_code'] + \".png\"\nprint(f\"Training images: {train_df.shape[0]}\")\ndisplay(train_df.head())\n\ntest_df = pd.read_csv(test_df_path)\n\ntest_df['id_code'] = test_df['id_code'] + \".png\"\nprint(f\"Testing Images: {test_df.shape[0]}\")\ndisplay(test_df.head())","metadata":{"execution":{"iopub.status.busy":"2024-06-03T16:48:56.863981Z","iopub.execute_input":"2024-06-03T16:48:56.864316Z","iopub.status.idle":"2024-06-03T16:48:56.947555Z","shell.execute_reply.started":"2024-06-03T16:48:56.864249Z","shell.execute_reply":"2024-06-03T16:48:56.946727Z"},"trusted":true},"execution_count":12,"outputs":[{"name":"stdout","text":"Training images: 3662\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code  diagnosis\n0  000c1434d8d7.png          2\n1  001639a390f0.png          4\n2  0024cdab0c1e.png          1\n3  002c21358ce6.png          0\n4  005b95c28852.png          0","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>id_code</th>\n      <th>diagnosis</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000c1434d8d7.png</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>001639a390f0.png</td>\n      <td>4</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0024cdab0c1e.png</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>002c21358ce6.png</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>005b95c28852.png</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}},{"name":"stdout","text":"Testing Images: 1928\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code\n0  0005cfc8afb6.png\n1  003f0afdcd15.png\n2  006efc72b638.png\n3  00836aaacf06.png\n4  009245722fa4.png","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>id_code</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0005cfc8afb6.png</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>003f0afdcd15.png</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>006efc72b638.png</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>00836aaacf06.png</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>009245722fa4.png</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"n_classes = train_df['diagnosis'].nunique()\nprint(n_classes)","metadata":{"execution":{"iopub.status.busy":"2024-06-03T16:49:29.040659Z","iopub.execute_input":"2024-06-03T16:49:29.040946Z","iopub.status.idle":"2024-06-03T16:49:29.045794Z","shell.execute_reply.started":"2024-06-03T16:49:29.040904Z","shell.execute_reply":"2024-06-03T16:49:29.044742Z"},"trusted":true},"execution_count":15,"outputs":[{"name":"stdout","text":"5\n","output_type":"stream"}]},{"cell_type":"code","source":"def create_model(input_shape, n_out):\n    input_tensor = Input(shape=input_shape)\n    base_model = EfficientNetB5(weights=None, \n                                include_top=False,\n                                input_tensor=input_tensor)\n    base_model.load_weights('../input/efficientnet-keras-weights-b0b5/efficientnet-b5_imagenet_1000_notop.h5')\n\n    x = GlobalAveragePooling2D()(base_model.output)\n    x = Dropout(0.5)(x)\n    x = Dense(2048, activation='relu')(x)\n    x = Dropout(0.5)(x)\n    final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n    model = Model(input_tensor, final_output)\n    \n    return model","metadata":{"execution":{"iopub.status.busy":"2024-06-03T17:14:18.855658Z","iopub.execute_input":"2024-06-03T17:14:18.855987Z","iopub.status.idle":"2024-06-03T17:14:18.863613Z","shell.execute_reply.started":"2024-06-03T17:14:18.855927Z","shell.execute_reply":"2024-06-03T17:14:18.862806Z"},"trusted":true},"execution_count":40,"outputs":[]},{"cell_type":"code","source":"model = create_model(input_shape=(HEIGHT, WIDTH, CHANNELS), n_out=n_classes)\n\nfor layer in model.layers:\n    layer.trainable = False\n\nfor i in range(-2, 0):\n    model.layers[i].trainable = True\n\n# cosine_lr_1st = WarmUpCosineDecayScheduler(learning_rate_base=WARMUP_LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_1st,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_1st,\n#                                            hold_base_rate_steps=(2 * STEP_SIZE))\n\n# metric_list = [\"accuracy\"]\n# callback_list = [cosine_lr_1st]\n# optimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-06-03T17:14:21.902554Z","iopub.execute_input":"2024-06-03T17:14:21.902886Z","iopub.status.idle":"2024-06-03T17:14:55.377061Z","shell.execute_reply.started":"2024-06-03T17:14:21.902828Z","shell.execute_reply":"2024-06-03T17:14:55.3761Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":41,"outputs":[{"name":"stdout","text":"__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_4 (InputLayer)            (None, 224, 224, 3)  0                                            \n__________________________________________________________________________________________________\nconv2d_466 (Conv2D)             (None, 112, 112, 48) 1296        input_4[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_349 (BatchN (None, 112, 112, 48) 192         conv2d_466[0][0]                 \n__________________________________________________________________________________________________\nswish_349 (Swish)               (None, 112, 112, 48) 0           batch_normalization_349[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_118 (Depthwise (None, 112, 112, 48) 432         swish_349[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_350 (BatchN (None, 112, 112, 48) 192         depthwise_conv2d_118[0][0]       \n__________________________________________________________________________________________________\nswish_350 (Swish)               (None, 112, 112, 48) 0           batch_normalization_350[0][0]    \n__________________________________________________________________________________________________\nlambda_118 (Lambda)             (None, 1, 1, 48)     0           swish_350[0][0]                  \n__________________________________________________________________________________________________\nconv2d_467 (Conv2D)             (None, 1, 1, 12)     588         lambda_118[0][0]                 \n__________________________________________________________________________________________________\nswish_351 (Swish)               (None, 1, 1, 12)     0           conv2d_467[0][0]                 \n__________________________________________________________________________________________________\nconv2d_468 (Conv2D)             (None, 1, 1, 48)     624         swish_351[0][0]                  \n__________________________________________________________________________________________________\nactivation_118 (Activation)     (None, 1, 1, 48)     0           conv2d_468[0][0]                 \n__________________________________________________________________________________________________\nmultiply_118 (Multiply)         (None, 112, 112, 48) 0           activation_118[0][0]             \n                                                                 swish_350[0][0]                  \n__________________________________________________________________________________________________\nconv2d_469 (Conv2D)             (None, 112, 112, 24) 1152        multiply_118[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_351 (BatchN (None, 112, 112, 24) 96          conv2d_469[0][0]                 \n__________________________________________________________________________________________________\ndepthwise_conv2d_119 (Depthwise (None, 112, 112, 24) 216         batch_normalization_351[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_352 (BatchN (None, 112, 112, 24) 96          depthwise_conv2d_119[0][0]       \n__________________________________________________________________________________________________\nswish_352 (Swish)               (None, 112, 112, 24) 0           batch_normalization_352[0][0]    \n__________________________________________________________________________________________________\nlambda_119 (Lambda)             (None, 1, 1, 24)     0           swish_352[0][0]                  \n__________________________________________________________________________________________________\nconv2d_470 (Conv2D)             (None, 1, 1, 6)      150         lambda_119[0][0]                 \n__________________________________________________________________________________________________\nswish_353 (Swish)               (None, 1, 1, 6)      0           conv2d_470[0][0]                 \n__________________________________________________________________________________________________\nconv2d_471 (Conv2D)             (None, 1, 1, 24)     168         swish_353[0][0]                  \n__________________________________________________________________________________________________\nactivation_119 (Activation)     (None, 1, 1, 24)     0           conv2d_471[0][0]                 \n__________________________________________________________________________________________________\nmultiply_119 (Multiply)         (None, 112, 112, 24) 0           activation_119[0][0]             \n                                                                 swish_352[0][0]                  \n__________________________________________________________________________________________________\nconv2d_472 (Conv2D)             (None, 112, 112, 24) 576         multiply_119[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_353 (BatchN (None, 112, 112, 24) 96          conv2d_472[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_97 (DropConnect)   (None, 112, 112, 24) 0           batch_normalization_353[0][0]    \n__________________________________________________________________________________________________\nadd_97 (Add)                    (None, 112, 112, 24) 0           drop_connect_97[0][0]            \n                                                                 batch_normalization_351[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_120 (Depthwise (None, 112, 112, 24) 216         add_97[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_354 (BatchN (None, 112, 112, 24) 96          depthwise_conv2d_120[0][0]       \n__________________________________________________________________________________________________\nswish_354 (Swish)               (None, 112, 112, 24) 0           batch_normalization_354[0][0]    \n__________________________________________________________________________________________________\nlambda_120 (Lambda)             (None, 1, 1, 24)     0           swish_354[0][0]                  \n__________________________________________________________________________________________________\nconv2d_473 (Conv2D)             (None, 1, 1, 6)      150         lambda_120[0][0]                 \n__________________________________________________________________________________________________\nswish_355 (Swish)               (None, 1, 1, 6)      0           conv2d_473[0][0]                 \n__________________________________________________________________________________________________\nconv2d_474 (Conv2D)             (None, 1, 1, 24)     168         swish_355[0][0]                  \n__________________________________________________________________________________________________\nactivation_120 (Activation)     (None, 1, 1, 24)     0           conv2d_474[0][0]                 \n__________________________________________________________________________________________________\nmultiply_120 (Multiply)         (None, 112, 112, 24) 0           activation_120[0][0]             \n                                                                 swish_354[0][0]                  \n__________________________________________________________________________________________________\nconv2d_475 (Conv2D)             (None, 112, 112, 24) 576         multiply_120[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_355 (BatchN (None, 112, 112, 24) 96          conv2d_475[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_98 (DropConnect)   (None, 112, 112, 24) 0           batch_normalization_355[0][0]    \n__________________________________________________________________________________________________\nadd_98 (Add)                    (None, 112, 112, 24) 0           drop_connect_98[0][0]            \n                                                                 add_97[0][0]                     \n__________________________________________________________________________________________________\nconv2d_476 (Conv2D)             (None, 112, 112, 144 3456        add_98[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_356 (BatchN (None, 112, 112, 144 576         conv2d_476[0][0]                 \n__________________________________________________________________________________________________\nswish_356 (Swish)               (None, 112, 112, 144 0           batch_normalization_356[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_121 (Depthwise (None, 56, 56, 144)  1296        swish_356[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_357 (BatchN (None, 56, 56, 144)  576         depthwise_conv2d_121[0][0]       \n__________________________________________________________________________________________________\nswish_357 (Swish)               (None, 56, 56, 144)  0           batch_normalization_357[0][0]    \n__________________________________________________________________________________________________\nlambda_121 (Lambda)             (None, 1, 1, 144)    0           swish_357[0][0]                  \n__________________________________________________________________________________________________\nconv2d_477 (Conv2D)             (None, 1, 1, 6)      870         lambda_121[0][0]                 \n__________________________________________________________________________________________________\nswish_358 (Swish)               (None, 1, 1, 6)      0           conv2d_477[0][0]                 \n__________________________________________________________________________________________________\nconv2d_478 (Conv2D)             (None, 1, 1, 144)    1008        swish_358[0][0]                  \n__________________________________________________________________________________________________\nactivation_121 (Activation)     (None, 1, 1, 144)    0           conv2d_478[0][0]                 \n__________________________________________________________________________________________________\nmultiply_121 (Multiply)         (None, 56, 56, 144)  0           activation_121[0][0]             \n                                                                 swish_357[0][0]                  \n__________________________________________________________________________________________________\nconv2d_479 (Conv2D)             (None, 56, 56, 40)   5760        multiply_121[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_358 (BatchN (None, 56, 56, 40)   160         conv2d_479[0][0]                 \n__________________________________________________________________________________________________\nconv2d_480 (Conv2D)             (None, 56, 56, 240)  9600        batch_normalization_358[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_359 (BatchN (None, 56, 56, 240)  960         conv2d_480[0][0]                 \n__________________________________________________________________________________________________\nswish_359 (Swish)               (None, 56, 56, 240)  0           batch_normalization_359[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_122 (Depthwise (None, 56, 56, 240)  2160        swish_359[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_360 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_122[0][0]       \n__________________________________________________________________________________________________\nswish_360 (Swish)               (None, 56, 56, 240)  0           batch_normalization_360[0][0]    \n__________________________________________________________________________________________________\nlambda_122 (Lambda)             (None, 1, 1, 240)    0           swish_360[0][0]                  \n__________________________________________________________________________________________________\nconv2d_481 (Conv2D)             (None, 1, 1, 10)     2410        lambda_122[0][0]                 \n__________________________________________________________________________________________________\nswish_361 (Swish)               (None, 1, 1, 10)     0           conv2d_481[0][0]                 \n__________________________________________________________________________________________________\nconv2d_482 (Conv2D)             (None, 1, 1, 240)    2640        swish_361[0][0]                  \n__________________________________________________________________________________________________\nactivation_122 (Activation)     (None, 1, 1, 240)    0           conv2d_482[0][0]                 \n__________________________________________________________________________________________________\nmultiply_122 (Multiply)         (None, 56, 56, 240)  0           activation_122[0][0]             \n                                                                 swish_360[0][0]                  \n__________________________________________________________________________________________________\nconv2d_483 (Conv2D)             (None, 56, 56, 40)   9600        multiply_122[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_361 (BatchN (None, 56, 56, 40)   160         conv2d_483[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_99 (DropConnect)   (None, 56, 56, 40)   0           batch_normalization_361[0][0]    \n__________________________________________________________________________________________________\nadd_99 (Add)                    (None, 56, 56, 40)   0           drop_connect_99[0][0]            \n                                                                 batch_normalization_358[0][0]    \n__________________________________________________________________________________________________\nconv2d_484 (Conv2D)             (None, 56, 56, 240)  9600        add_99[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_362 (BatchN (None, 56, 56, 240)  960         conv2d_484[0][0]                 \n__________________________________________________________________________________________________\nswish_362 (Swish)               (None, 56, 56, 240)  0           batch_normalization_362[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_123 (Depthwise (None, 56, 56, 240)  2160        swish_362[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_363 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_123[0][0]       \n__________________________________________________________________________________________________\nswish_363 (Swish)               (None, 56, 56, 240)  0           batch_normalization_363[0][0]    \n__________________________________________________________________________________________________\nlambda_123 (Lambda)             (None, 1, 1, 240)    0           swish_363[0][0]                  \n__________________________________________________________________________________________________\nconv2d_485 (Conv2D)             (None, 1, 1, 10)     2410        lambda_123[0][0]                 \n__________________________________________________________________________________________________\nswish_364 (Swish)               (None, 1, 1, 10)     0           conv2d_485[0][0]                 \n__________________________________________________________________________________________________\nconv2d_486 (Conv2D)             (None, 1, 1, 240)    2640        swish_364[0][0]                  \n__________________________________________________________________________________________________\nactivation_123 (Activation)     (None, 1, 1, 240)    0           conv2d_486[0][0]                 \n__________________________________________________________________________________________________\nmultiply_123 (Multiply)         (None, 56, 56, 240)  0           activation_123[0][0]             \n                                                                 swish_363[0][0]                  \n__________________________________________________________________________________________________\nconv2d_487 (Conv2D)             (None, 56, 56, 40)   9600        multiply_123[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_364 (BatchN (None, 56, 56, 40)   160         conv2d_487[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_100 (DropConnect)  (None, 56, 56, 40)   0           batch_normalization_364[0][0]    \n__________________________________________________________________________________________________\nadd_100 (Add)                   (None, 56, 56, 40)   0           drop_connect_100[0][0]           \n                                                                 add_99[0][0]                     \n__________________________________________________________________________________________________\nconv2d_488 (Conv2D)             (None, 56, 56, 240)  9600        add_100[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_365 (BatchN (None, 56, 56, 240)  960         conv2d_488[0][0]                 \n__________________________________________________________________________________________________\nswish_365 (Swish)               (None, 56, 56, 240)  0           batch_normalization_365[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_124 (Depthwise (None, 56, 56, 240)  2160        swish_365[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_366 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_124[0][0]       \n__________________________________________________________________________________________________\nswish_366 (Swish)               (None, 56, 56, 240)  0           batch_normalization_366[0][0]    \n__________________________________________________________________________________________________\nlambda_124 (Lambda)             (None, 1, 1, 240)    0           swish_366[0][0]                  \n__________________________________________________________________________________________________\nconv2d_489 (Conv2D)             (None, 1, 1, 10)     2410        lambda_124[0][0]                 \n__________________________________________________________________________________________________\nswish_367 (Swish)               (None, 1, 1, 10)     0           conv2d_489[0][0]                 \n__________________________________________________________________________________________________\nconv2d_490 (Conv2D)             (None, 1, 1, 240)    2640        swish_367[0][0]                  \n__________________________________________________________________________________________________\nactivation_124 (Activation)     (None, 1, 1, 240)    0           conv2d_490[0][0]                 \n__________________________________________________________________________________________________\nmultiply_124 (Multiply)         (None, 56, 56, 240)  0           activation_124[0][0]             \n                                                                 swish_366[0][0]                  \n__________________________________________________________________________________________________\nconv2d_491 (Conv2D)             (None, 56, 56, 40)   9600        multiply_124[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_367 (BatchN (None, 56, 56, 40)   160         conv2d_491[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_101 (DropConnect)  (None, 56, 56, 40)   0           batch_normalization_367[0][0]    \n__________________________________________________________________________________________________\nadd_101 (Add)                   (None, 56, 56, 40)   0           drop_connect_101[0][0]           \n                                                                 add_100[0][0]                    \n__________________________________________________________________________________________________\nconv2d_492 (Conv2D)             (None, 56, 56, 240)  9600        add_101[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_368 (BatchN (None, 56, 56, 240)  960         conv2d_492[0][0]                 \n__________________________________________________________________________________________________\nswish_368 (Swish)               (None, 56, 56, 240)  0           batch_normalization_368[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_125 (Depthwise (None, 56, 56, 240)  2160        swish_368[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_369 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_125[0][0]       \n__________________________________________________________________________________________________\nswish_369 (Swish)               (None, 56, 56, 240)  0           batch_normalization_369[0][0]    \n__________________________________________________________________________________________________\nlambda_125 (Lambda)             (None, 1, 1, 240)    0           swish_369[0][0]                  \n__________________________________________________________________________________________________\nconv2d_493 (Conv2D)             (None, 1, 1, 10)     2410        lambda_125[0][0]                 \n__________________________________________________________________________________________________\nswish_370 (Swish)               (None, 1, 1, 10)     0           conv2d_493[0][0]                 \n__________________________________________________________________________________________________\nconv2d_494 (Conv2D)             (None, 1, 1, 240)    2640        swish_370[0][0]                  \n__________________________________________________________________________________________________\nactivation_125 (Activation)     (None, 1, 1, 240)    0           conv2d_494[0][0]                 \n__________________________________________________________________________________________________\nmultiply_125 (Multiply)         (None, 56, 56, 240)  0           activation_125[0][0]             \n                                                                 swish_369[0][0]                  \n__________________________________________________________________________________________________\nconv2d_495 (Conv2D)             (None, 56, 56, 40)   9600        multiply_125[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_370 (BatchN (None, 56, 56, 40)   160         conv2d_495[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_102 (DropConnect)  (None, 56, 56, 40)   0           batch_normalization_370[0][0]    \n__________________________________________________________________________________________________\nadd_102 (Add)                   (None, 56, 56, 40)   0           drop_connect_102[0][0]           \n                                                                 add_101[0][0]                    \n__________________________________________________________________________________________________\nconv2d_496 (Conv2D)             (None, 56, 56, 240)  9600        add_102[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_371 (BatchN (None, 56, 56, 240)  960         conv2d_496[0][0]                 \n__________________________________________________________________________________________________\nswish_371 (Swish)               (None, 56, 56, 240)  0           batch_normalization_371[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_126 (Depthwise (None, 28, 28, 240)  6000        swish_371[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_372 (BatchN (None, 28, 28, 240)  960         depthwise_conv2d_126[0][0]       \n__________________________________________________________________________________________________\nswish_372 (Swish)               (None, 28, 28, 240)  0           batch_normalization_372[0][0]    \n__________________________________________________________________________________________________\nlambda_126 (Lambda)             (None, 1, 1, 240)    0           swish_372[0][0]                  \n__________________________________________________________________________________________________\nconv2d_497 (Conv2D)             (None, 1, 1, 10)     2410        lambda_126[0][0]                 \n__________________________________________________________________________________________________\nswish_373 (Swish)               (None, 1, 1, 10)     0           conv2d_497[0][0]                 \n__________________________________________________________________________________________________\nconv2d_498 (Conv2D)             (None, 1, 1, 240)    2640        swish_373[0][0]                  \n__________________________________________________________________________________________________\nactivation_126 (Activation)     (None, 1, 1, 240)    0           conv2d_498[0][0]                 \n__________________________________________________________________________________________________\nmultiply_126 (Multiply)         (None, 28, 28, 240)  0           activation_126[0][0]             \n                                                                 swish_372[0][0]                  \n__________________________________________________________________________________________________\nconv2d_499 (Conv2D)             (None, 28, 28, 64)   15360       multiply_126[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_373 (BatchN (None, 28, 28, 64)   256         conv2d_499[0][0]                 \n__________________________________________________________________________________________________\nconv2d_500 (Conv2D)             (None, 28, 28, 384)  24576       batch_normalization_373[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_374 (BatchN (None, 28, 28, 384)  1536        conv2d_500[0][0]                 \n__________________________________________________________________________________________________\nswish_374 (Swish)               (None, 28, 28, 384)  0           batch_normalization_374[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_127 (Depthwise (None, 28, 28, 384)  9600        swish_374[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_375 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_127[0][0]       \n__________________________________________________________________________________________________\nswish_375 (Swish)               (None, 28, 28, 384)  0           batch_normalization_375[0][0]    \n__________________________________________________________________________________________________\nlambda_127 (Lambda)             (None, 1, 1, 384)    0           swish_375[0][0]                  \n__________________________________________________________________________________________________\nconv2d_501 (Conv2D)             (None, 1, 1, 16)     6160        lambda_127[0][0]                 \n__________________________________________________________________________________________________\nswish_376 (Swish)               (None, 1, 1, 16)     0           conv2d_501[0][0]                 \n__________________________________________________________________________________________________\nconv2d_502 (Conv2D)             (None, 1, 1, 384)    6528        swish_376[0][0]                  \n__________________________________________________________________________________________________\nactivation_127 (Activation)     (None, 1, 1, 384)    0           conv2d_502[0][0]                 \n__________________________________________________________________________________________________\nmultiply_127 (Multiply)         (None, 28, 28, 384)  0           activation_127[0][0]             \n                                                                 swish_375[0][0]                  \n__________________________________________________________________________________________________\nconv2d_503 (Conv2D)             (None, 28, 28, 64)   24576       multiply_127[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_376 (BatchN (None, 28, 28, 64)   256         conv2d_503[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_103 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_376[0][0]    \n__________________________________________________________________________________________________\nadd_103 (Add)                   (None, 28, 28, 64)   0           drop_connect_103[0][0]           \n                                                                 batch_normalization_373[0][0]    \n__________________________________________________________________________________________________\nconv2d_504 (Conv2D)             (None, 28, 28, 384)  24576       add_103[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_377 (BatchN (None, 28, 28, 384)  1536        conv2d_504[0][0]                 \n__________________________________________________________________________________________________\nswish_377 (Swish)               (None, 28, 28, 384)  0           batch_normalization_377[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_128 (Depthwise (None, 28, 28, 384)  9600        swish_377[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_378 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_128[0][0]       \n__________________________________________________________________________________________________\nswish_378 (Swish)               (None, 28, 28, 384)  0           batch_normalization_378[0][0]    \n__________________________________________________________________________________________________\nlambda_128 (Lambda)             (None, 1, 1, 384)    0           swish_378[0][0]                  \n__________________________________________________________________________________________________\nconv2d_505 (Conv2D)             (None, 1, 1, 16)     6160        lambda_128[0][0]                 \n__________________________________________________________________________________________________\nswish_379 (Swish)               (None, 1, 1, 16)     0           conv2d_505[0][0]                 \n__________________________________________________________________________________________________\nconv2d_506 (Conv2D)             (None, 1, 1, 384)    6528        swish_379[0][0]                  \n__________________________________________________________________________________________________\nactivation_128 (Activation)     (None, 1, 1, 384)    0           conv2d_506[0][0]                 \n__________________________________________________________________________________________________\nmultiply_128 (Multiply)         (None, 28, 28, 384)  0           activation_128[0][0]             \n                                                                 swish_378[0][0]                  \n__________________________________________________________________________________________________\nconv2d_507 (Conv2D)             (None, 28, 28, 64)   24576       multiply_128[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_379 (BatchN (None, 28, 28, 64)   256         conv2d_507[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_104 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_379[0][0]    \n__________________________________________________________________________________________________\nadd_104 (Add)                   (None, 28, 28, 64)   0           drop_connect_104[0][0]           \n                                                                 add_103[0][0]                    \n__________________________________________________________________________________________________\nconv2d_508 (Conv2D)             (None, 28, 28, 384)  24576       add_104[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_380 (BatchN (None, 28, 28, 384)  1536        conv2d_508[0][0]                 \n__________________________________________________________________________________________________\nswish_380 (Swish)               (None, 28, 28, 384)  0           batch_normalization_380[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_129 (Depthwise (None, 28, 28, 384)  9600        swish_380[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_381 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_129[0][0]       \n__________________________________________________________________________________________________\nswish_381 (Swish)               (None, 28, 28, 384)  0           batch_normalization_381[0][0]    \n__________________________________________________________________________________________________\nlambda_129 (Lambda)             (None, 1, 1, 384)    0           swish_381[0][0]                  \n__________________________________________________________________________________________________\nconv2d_509 (Conv2D)             (None, 1, 1, 16)     6160        lambda_129[0][0]                 \n__________________________________________________________________________________________________\nswish_382 (Swish)               (None, 1, 1, 16)     0           conv2d_509[0][0]                 \n__________________________________________________________________________________________________\nconv2d_510 (Conv2D)             (None, 1, 1, 384)    6528        swish_382[0][0]                  \n__________________________________________________________________________________________________\nactivation_129 (Activation)     (None, 1, 1, 384)    0           conv2d_510[0][0]                 \n__________________________________________________________________________________________________\nmultiply_129 (Multiply)         (None, 28, 28, 384)  0           activation_129[0][0]             \n                                                                 swish_381[0][0]                  \n__________________________________________________________________________________________________\nconv2d_511 (Conv2D)             (None, 28, 28, 64)   24576       multiply_129[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_382 (BatchN (None, 28, 28, 64)   256         conv2d_511[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_105 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_382[0][0]    \n__________________________________________________________________________________________________\nadd_105 (Add)                   (None, 28, 28, 64)   0           drop_connect_105[0][0]           \n                                                                 add_104[0][0]                    \n__________________________________________________________________________________________________\nconv2d_512 (Conv2D)             (None, 28, 28, 384)  24576       add_105[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_383 (BatchN (None, 28, 28, 384)  1536        conv2d_512[0][0]                 \n__________________________________________________________________________________________________\nswish_383 (Swish)               (None, 28, 28, 384)  0           batch_normalization_383[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_130 (Depthwise (None, 28, 28, 384)  9600        swish_383[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_384 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_130[0][0]       \n__________________________________________________________________________________________________\nswish_384 (Swish)               (None, 28, 28, 384)  0           batch_normalization_384[0][0]    \n__________________________________________________________________________________________________\nlambda_130 (Lambda)             (None, 1, 1, 384)    0           swish_384[0][0]                  \n__________________________________________________________________________________________________\nconv2d_513 (Conv2D)             (None, 1, 1, 16)     6160        lambda_130[0][0]                 \n__________________________________________________________________________________________________\nswish_385 (Swish)               (None, 1, 1, 16)     0           conv2d_513[0][0]                 \n__________________________________________________________________________________________________\nconv2d_514 (Conv2D)             (None, 1, 1, 384)    6528        swish_385[0][0]                  \n__________________________________________________________________________________________________\nactivation_130 (Activation)     (None, 1, 1, 384)    0           conv2d_514[0][0]                 \n__________________________________________________________________________________________________\nmultiply_130 (Multiply)         (None, 28, 28, 384)  0           activation_130[0][0]             \n                                                                 swish_384[0][0]                  \n__________________________________________________________________________________________________\nconv2d_515 (Conv2D)             (None, 28, 28, 64)   24576       multiply_130[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_385 (BatchN (None, 28, 28, 64)   256         conv2d_515[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_106 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_385[0][0]    \n__________________________________________________________________________________________________\nadd_106 (Add)                   (None, 28, 28, 64)   0           drop_connect_106[0][0]           \n                                                                 add_105[0][0]                    \n__________________________________________________________________________________________________\nconv2d_516 (Conv2D)             (None, 28, 28, 384)  24576       add_106[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_386 (BatchN (None, 28, 28, 384)  1536        conv2d_516[0][0]                 \n__________________________________________________________________________________________________\nswish_386 (Swish)               (None, 28, 28, 384)  0           batch_normalization_386[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_131 (Depthwise (None, 14, 14, 384)  3456        swish_386[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_387 (BatchN (None, 14, 14, 384)  1536        depthwise_conv2d_131[0][0]       \n__________________________________________________________________________________________________\nswish_387 (Swish)               (None, 14, 14, 384)  0           batch_normalization_387[0][0]    \n__________________________________________________________________________________________________\nlambda_131 (Lambda)             (None, 1, 1, 384)    0           swish_387[0][0]                  \n__________________________________________________________________________________________________\nconv2d_517 (Conv2D)             (None, 1, 1, 16)     6160        lambda_131[0][0]                 \n__________________________________________________________________________________________________\nswish_388 (Swish)               (None, 1, 1, 16)     0           conv2d_517[0][0]                 \n__________________________________________________________________________________________________\nconv2d_518 (Conv2D)             (None, 1, 1, 384)    6528        swish_388[0][0]                  \n__________________________________________________________________________________________________\nactivation_131 (Activation)     (None, 1, 1, 384)    0           conv2d_518[0][0]                 \n__________________________________________________________________________________________________\nmultiply_131 (Multiply)         (None, 14, 14, 384)  0           activation_131[0][0]             \n                                                                 swish_387[0][0]                  \n__________________________________________________________________________________________________\nconv2d_519 (Conv2D)             (None, 14, 14, 128)  49152       multiply_131[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_388 (BatchN (None, 14, 14, 128)  512         conv2d_519[0][0]                 \n__________________________________________________________________________________________________\nconv2d_520 (Conv2D)             (None, 14, 14, 768)  98304       batch_normalization_388[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_389 (BatchN (None, 14, 14, 768)  3072        conv2d_520[0][0]                 \n__________________________________________________________________________________________________\nswish_389 (Swish)               (None, 14, 14, 768)  0           batch_normalization_389[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_132 (Depthwise (None, 14, 14, 768)  6912        swish_389[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_390 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_132[0][0]       \n__________________________________________________________________________________________________\nswish_390 (Swish)               (None, 14, 14, 768)  0           batch_normalization_390[0][0]    \n__________________________________________________________________________________________________\nlambda_132 (Lambda)             (None, 1, 1, 768)    0           swish_390[0][0]                  \n__________________________________________________________________________________________________\nconv2d_521 (Conv2D)             (None, 1, 1, 32)     24608       lambda_132[0][0]                 \n__________________________________________________________________________________________________\nswish_391 (Swish)               (None, 1, 1, 32)     0           conv2d_521[0][0]                 \n__________________________________________________________________________________________________\nconv2d_522 (Conv2D)             (None, 1, 1, 768)    25344       swish_391[0][0]                  \n__________________________________________________________________________________________________\nactivation_132 (Activation)     (None, 1, 1, 768)    0           conv2d_522[0][0]                 \n__________________________________________________________________________________________________\nmultiply_132 (Multiply)         (None, 14, 14, 768)  0           activation_132[0][0]             \n                                                                 swish_390[0][0]                  \n__________________________________________________________________________________________________\nconv2d_523 (Conv2D)             (None, 14, 14, 128)  98304       multiply_132[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_391 (BatchN (None, 14, 14, 128)  512         conv2d_523[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_107 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_391[0][0]    \n__________________________________________________________________________________________________\nadd_107 (Add)                   (None, 14, 14, 128)  0           drop_connect_107[0][0]           \n                                                                 batch_normalization_388[0][0]    \n__________________________________________________________________________________________________\nconv2d_524 (Conv2D)             (None, 14, 14, 768)  98304       add_107[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_392 (BatchN (None, 14, 14, 768)  3072        conv2d_524[0][0]                 \n__________________________________________________________________________________________________\nswish_392 (Swish)               (None, 14, 14, 768)  0           batch_normalization_392[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_133 (Depthwise (None, 14, 14, 768)  6912        swish_392[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_393 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_133[0][0]       \n__________________________________________________________________________________________________\nswish_393 (Swish)               (None, 14, 14, 768)  0           batch_normalization_393[0][0]    \n__________________________________________________________________________________________________\nlambda_133 (Lambda)             (None, 1, 1, 768)    0           swish_393[0][0]                  \n__________________________________________________________________________________________________\nconv2d_525 (Conv2D)             (None, 1, 1, 32)     24608       lambda_133[0][0]                 \n__________________________________________________________________________________________________\nswish_394 (Swish)               (None, 1, 1, 32)     0           conv2d_525[0][0]                 \n__________________________________________________________________________________________________\nconv2d_526 (Conv2D)             (None, 1, 1, 768)    25344       swish_394[0][0]                  \n__________________________________________________________________________________________________\nactivation_133 (Activation)     (None, 1, 1, 768)    0           conv2d_526[0][0]                 \n__________________________________________________________________________________________________\nmultiply_133 (Multiply)         (None, 14, 14, 768)  0           activation_133[0][0]             \n                                                                 swish_393[0][0]                  \n__________________________________________________________________________________________________\nconv2d_527 (Conv2D)             (None, 14, 14, 128)  98304       multiply_133[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_394 (BatchN (None, 14, 14, 128)  512         conv2d_527[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_108 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_394[0][0]    \n__________________________________________________________________________________________________\nadd_108 (Add)                   (None, 14, 14, 128)  0           drop_connect_108[0][0]           \n                                                                 add_107[0][0]                    \n__________________________________________________________________________________________________\nconv2d_528 (Conv2D)             (None, 14, 14, 768)  98304       add_108[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_395 (BatchN (None, 14, 14, 768)  3072        conv2d_528[0][0]                 \n__________________________________________________________________________________________________\nswish_395 (Swish)               (None, 14, 14, 768)  0           batch_normalization_395[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_134 (Depthwise (None, 14, 14, 768)  6912        swish_395[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_396 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_134[0][0]       \n__________________________________________________________________________________________________\nswish_396 (Swish)               (None, 14, 14, 768)  0           batch_normalization_396[0][0]    \n__________________________________________________________________________________________________\nlambda_134 (Lambda)             (None, 1, 1, 768)    0           swish_396[0][0]                  \n__________________________________________________________________________________________________\nconv2d_529 (Conv2D)             (None, 1, 1, 32)     24608       lambda_134[0][0]                 \n__________________________________________________________________________________________________\nswish_397 (Swish)               (None, 1, 1, 32)     0           conv2d_529[0][0]                 \n__________________________________________________________________________________________________\nconv2d_530 (Conv2D)             (None, 1, 1, 768)    25344       swish_397[0][0]                  \n__________________________________________________________________________________________________\nactivation_134 (Activation)     (None, 1, 1, 768)    0           conv2d_530[0][0]                 \n__________________________________________________________________________________________________\nmultiply_134 (Multiply)         (None, 14, 14, 768)  0           activation_134[0][0]             \n                                                                 swish_396[0][0]                  \n__________________________________________________________________________________________________\nconv2d_531 (Conv2D)             (None, 14, 14, 128)  98304       multiply_134[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_397 (BatchN (None, 14, 14, 128)  512         conv2d_531[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_109 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_397[0][0]    \n__________________________________________________________________________________________________\nadd_109 (Add)                   (None, 14, 14, 128)  0           drop_connect_109[0][0]           \n                                                                 add_108[0][0]                    \n__________________________________________________________________________________________________\nconv2d_532 (Conv2D)             (None, 14, 14, 768)  98304       add_109[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_398 (BatchN (None, 14, 14, 768)  3072        conv2d_532[0][0]                 \n__________________________________________________________________________________________________\nswish_398 (Swish)               (None, 14, 14, 768)  0           batch_normalization_398[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_135 (Depthwise (None, 14, 14, 768)  6912        swish_398[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_399 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_135[0][0]       \n__________________________________________________________________________________________________\nswish_399 (Swish)               (None, 14, 14, 768)  0           batch_normalization_399[0][0]    \n__________________________________________________________________________________________________\nlambda_135 (Lambda)             (None, 1, 1, 768)    0           swish_399[0][0]                  \n__________________________________________________________________________________________________\nconv2d_533 (Conv2D)             (None, 1, 1, 32)     24608       lambda_135[0][0]                 \n__________________________________________________________________________________________________\nswish_400 (Swish)               (None, 1, 1, 32)     0           conv2d_533[0][0]                 \n__________________________________________________________________________________________________\nconv2d_534 (Conv2D)             (None, 1, 1, 768)    25344       swish_400[0][0]                  \n__________________________________________________________________________________________________\nactivation_135 (Activation)     (None, 1, 1, 768)    0           conv2d_534[0][0]                 \n__________________________________________________________________________________________________\nmultiply_135 (Multiply)         (None, 14, 14, 768)  0           activation_135[0][0]             \n                                                                 swish_399[0][0]                  \n__________________________________________________________________________________________________\nconv2d_535 (Conv2D)             (None, 14, 14, 128)  98304       multiply_135[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_400 (BatchN (None, 14, 14, 128)  512         conv2d_535[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_110 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_400[0][0]    \n__________________________________________________________________________________________________\nadd_110 (Add)                   (None, 14, 14, 128)  0           drop_connect_110[0][0]           \n                                                                 add_109[0][0]                    \n__________________________________________________________________________________________________\nconv2d_536 (Conv2D)             (None, 14, 14, 768)  98304       add_110[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_401 (BatchN (None, 14, 14, 768)  3072        conv2d_536[0][0]                 \n__________________________________________________________________________________________________\nswish_401 (Swish)               (None, 14, 14, 768)  0           batch_normalization_401[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_136 (Depthwise (None, 14, 14, 768)  6912        swish_401[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_402 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_136[0][0]       \n__________________________________________________________________________________________________\nswish_402 (Swish)               (None, 14, 14, 768)  0           batch_normalization_402[0][0]    \n__________________________________________________________________________________________________\nlambda_136 (Lambda)             (None, 1, 1, 768)    0           swish_402[0][0]                  \n__________________________________________________________________________________________________\nconv2d_537 (Conv2D)             (None, 1, 1, 32)     24608       lambda_136[0][0]                 \n__________________________________________________________________________________________________\nswish_403 (Swish)               (None, 1, 1, 32)     0           conv2d_537[0][0]                 \n__________________________________________________________________________________________________\nconv2d_538 (Conv2D)             (None, 1, 1, 768)    25344       swish_403[0][0]                  \n__________________________________________________________________________________________________\nactivation_136 (Activation)     (None, 1, 1, 768)    0           conv2d_538[0][0]                 \n__________________________________________________________________________________________________\nmultiply_136 (Multiply)         (None, 14, 14, 768)  0           activation_136[0][0]             \n                                                                 swish_402[0][0]                  \n__________________________________________________________________________________________________\nconv2d_539 (Conv2D)             (None, 14, 14, 128)  98304       multiply_136[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_403 (BatchN (None, 14, 14, 128)  512         conv2d_539[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_111 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_403[0][0]    \n__________________________________________________________________________________________________\nadd_111 (Add)                   (None, 14, 14, 128)  0           drop_connect_111[0][0]           \n                                                                 add_110[0][0]                    \n__________________________________________________________________________________________________\nconv2d_540 (Conv2D)             (None, 14, 14, 768)  98304       add_111[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_404 (BatchN (None, 14, 14, 768)  3072        conv2d_540[0][0]                 \n__________________________________________________________________________________________________\nswish_404 (Swish)               (None, 14, 14, 768)  0           batch_normalization_404[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_137 (Depthwise (None, 14, 14, 768)  6912        swish_404[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_405 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_137[0][0]       \n__________________________________________________________________________________________________\nswish_405 (Swish)               (None, 14, 14, 768)  0           batch_normalization_405[0][0]    \n__________________________________________________________________________________________________\nlambda_137 (Lambda)             (None, 1, 1, 768)    0           swish_405[0][0]                  \n__________________________________________________________________________________________________\nconv2d_541 (Conv2D)             (None, 1, 1, 32)     24608       lambda_137[0][0]                 \n__________________________________________________________________________________________________\nswish_406 (Swish)               (None, 1, 1, 32)     0           conv2d_541[0][0]                 \n__________________________________________________________________________________________________\nconv2d_542 (Conv2D)             (None, 1, 1, 768)    25344       swish_406[0][0]                  \n__________________________________________________________________________________________________\nactivation_137 (Activation)     (None, 1, 1, 768)    0           conv2d_542[0][0]                 \n__________________________________________________________________________________________________\nmultiply_137 (Multiply)         (None, 14, 14, 768)  0           activation_137[0][0]             \n                                                                 swish_405[0][0]                  \n__________________________________________________________________________________________________\nconv2d_543 (Conv2D)             (None, 14, 14, 128)  98304       multiply_137[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_406 (BatchN (None, 14, 14, 128)  512         conv2d_543[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_112 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_406[0][0]    \n__________________________________________________________________________________________________\nadd_112 (Add)                   (None, 14, 14, 128)  0           drop_connect_112[0][0]           \n                                                                 add_111[0][0]                    \n__________________________________________________________________________________________________\nconv2d_544 (Conv2D)             (None, 14, 14, 768)  98304       add_112[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_407 (BatchN (None, 14, 14, 768)  3072        conv2d_544[0][0]                 \n__________________________________________________________________________________________________\nswish_407 (Swish)               (None, 14, 14, 768)  0           batch_normalization_407[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_138 (Depthwise (None, 14, 14, 768)  19200       swish_407[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_408 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_138[0][0]       \n__________________________________________________________________________________________________\nswish_408 (Swish)               (None, 14, 14, 768)  0           batch_normalization_408[0][0]    \n__________________________________________________________________________________________________\nlambda_138 (Lambda)             (None, 1, 1, 768)    0           swish_408[0][0]                  \n__________________________________________________________________________________________________\nconv2d_545 (Conv2D)             (None, 1, 1, 32)     24608       lambda_138[0][0]                 \n__________________________________________________________________________________________________\nswish_409 (Swish)               (None, 1, 1, 32)     0           conv2d_545[0][0]                 \n__________________________________________________________________________________________________\nconv2d_546 (Conv2D)             (None, 1, 1, 768)    25344       swish_409[0][0]                  \n__________________________________________________________________________________________________\nactivation_138 (Activation)     (None, 1, 1, 768)    0           conv2d_546[0][0]                 \n__________________________________________________________________________________________________\nmultiply_138 (Multiply)         (None, 14, 14, 768)  0           activation_138[0][0]             \n                                                                 swish_408[0][0]                  \n__________________________________________________________________________________________________\nconv2d_547 (Conv2D)             (None, 14, 14, 176)  135168      multiply_138[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_409 (BatchN (None, 14, 14, 176)  704         conv2d_547[0][0]                 \n__________________________________________________________________________________________________\nconv2d_548 (Conv2D)             (None, 14, 14, 1056) 185856      batch_normalization_409[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_410 (BatchN (None, 14, 14, 1056) 4224        conv2d_548[0][0]                 \n__________________________________________________________________________________________________\nswish_410 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_410[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_139 (Depthwise (None, 14, 14, 1056) 26400       swish_410[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_411 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_139[0][0]       \n__________________________________________________________________________________________________\nswish_411 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_411[0][0]    \n__________________________________________________________________________________________________\nlambda_139 (Lambda)             (None, 1, 1, 1056)   0           swish_411[0][0]                  \n__________________________________________________________________________________________________\nconv2d_549 (Conv2D)             (None, 1, 1, 44)     46508       lambda_139[0][0]                 \n__________________________________________________________________________________________________\nswish_412 (Swish)               (None, 1, 1, 44)     0           conv2d_549[0][0]                 \n__________________________________________________________________________________________________\nconv2d_550 (Conv2D)             (None, 1, 1, 1056)   47520       swish_412[0][0]                  \n__________________________________________________________________________________________________\nactivation_139 (Activation)     (None, 1, 1, 1056)   0           conv2d_550[0][0]                 \n__________________________________________________________________________________________________\nmultiply_139 (Multiply)         (None, 14, 14, 1056) 0           activation_139[0][0]             \n                                                                 swish_411[0][0]                  \n__________________________________________________________________________________________________\nconv2d_551 (Conv2D)             (None, 14, 14, 176)  185856      multiply_139[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_412 (BatchN (None, 14, 14, 176)  704         conv2d_551[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_113 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_412[0][0]    \n__________________________________________________________________________________________________\nadd_113 (Add)                   (None, 14, 14, 176)  0           drop_connect_113[0][0]           \n                                                                 batch_normalization_409[0][0]    \n__________________________________________________________________________________________________\nconv2d_552 (Conv2D)             (None, 14, 14, 1056) 185856      add_113[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_413 (BatchN (None, 14, 14, 1056) 4224        conv2d_552[0][0]                 \n__________________________________________________________________________________________________\nswish_413 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_413[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_140 (Depthwise (None, 14, 14, 1056) 26400       swish_413[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_414 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_140[0][0]       \n__________________________________________________________________________________________________\nswish_414 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_414[0][0]    \n__________________________________________________________________________________________________\nlambda_140 (Lambda)             (None, 1, 1, 1056)   0           swish_414[0][0]                  \n__________________________________________________________________________________________________\nconv2d_553 (Conv2D)             (None, 1, 1, 44)     46508       lambda_140[0][0]                 \n__________________________________________________________________________________________________\nswish_415 (Swish)               (None, 1, 1, 44)     0           conv2d_553[0][0]                 \n__________________________________________________________________________________________________\nconv2d_554 (Conv2D)             (None, 1, 1, 1056)   47520       swish_415[0][0]                  \n__________________________________________________________________________________________________\nactivation_140 (Activation)     (None, 1, 1, 1056)   0           conv2d_554[0][0]                 \n__________________________________________________________________________________________________\nmultiply_140 (Multiply)         (None, 14, 14, 1056) 0           activation_140[0][0]             \n                                                                 swish_414[0][0]                  \n__________________________________________________________________________________________________\nconv2d_555 (Conv2D)             (None, 14, 14, 176)  185856      multiply_140[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_415 (BatchN (None, 14, 14, 176)  704         conv2d_555[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_114 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_415[0][0]    \n__________________________________________________________________________________________________\nadd_114 (Add)                   (None, 14, 14, 176)  0           drop_connect_114[0][0]           \n                                                                 add_113[0][0]                    \n__________________________________________________________________________________________________\nconv2d_556 (Conv2D)             (None, 14, 14, 1056) 185856      add_114[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_416 (BatchN (None, 14, 14, 1056) 4224        conv2d_556[0][0]                 \n__________________________________________________________________________________________________\nswish_416 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_416[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_141 (Depthwise (None, 14, 14, 1056) 26400       swish_416[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_417 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_141[0][0]       \n__________________________________________________________________________________________________\nswish_417 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_417[0][0]    \n__________________________________________________________________________________________________\nlambda_141 (Lambda)             (None, 1, 1, 1056)   0           swish_417[0][0]                  \n__________________________________________________________________________________________________\nconv2d_557 (Conv2D)             (None, 1, 1, 44)     46508       lambda_141[0][0]                 \n__________________________________________________________________________________________________\nswish_418 (Swish)               (None, 1, 1, 44)     0           conv2d_557[0][0]                 \n__________________________________________________________________________________________________\nconv2d_558 (Conv2D)             (None, 1, 1, 1056)   47520       swish_418[0][0]                  \n__________________________________________________________________________________________________\nactivation_141 (Activation)     (None, 1, 1, 1056)   0           conv2d_558[0][0]                 \n__________________________________________________________________________________________________\nmultiply_141 (Multiply)         (None, 14, 14, 1056) 0           activation_141[0][0]             \n                                                                 swish_417[0][0]                  \n__________________________________________________________________________________________________\nconv2d_559 (Conv2D)             (None, 14, 14, 176)  185856      multiply_141[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_418 (BatchN (None, 14, 14, 176)  704         conv2d_559[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_115 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_418[0][0]    \n__________________________________________________________________________________________________\nadd_115 (Add)                   (None, 14, 14, 176)  0           drop_connect_115[0][0]           \n                                                                 add_114[0][0]                    \n__________________________________________________________________________________________________\nconv2d_560 (Conv2D)             (None, 14, 14, 1056) 185856      add_115[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_419 (BatchN (None, 14, 14, 1056) 4224        conv2d_560[0][0]                 \n__________________________________________________________________________________________________\nswish_419 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_419[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_142 (Depthwise (None, 14, 14, 1056) 26400       swish_419[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_420 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_142[0][0]       \n__________________________________________________________________________________________________\nswish_420 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_420[0][0]    \n__________________________________________________________________________________________________\nlambda_142 (Lambda)             (None, 1, 1, 1056)   0           swish_420[0][0]                  \n__________________________________________________________________________________________________\nconv2d_561 (Conv2D)             (None, 1, 1, 44)     46508       lambda_142[0][0]                 \n__________________________________________________________________________________________________\nswish_421 (Swish)               (None, 1, 1, 44)     0           conv2d_561[0][0]                 \n__________________________________________________________________________________________________\nconv2d_562 (Conv2D)             (None, 1, 1, 1056)   47520       swish_421[0][0]                  \n__________________________________________________________________________________________________\nactivation_142 (Activation)     (None, 1, 1, 1056)   0           conv2d_562[0][0]                 \n__________________________________________________________________________________________________\nmultiply_142 (Multiply)         (None, 14, 14, 1056) 0           activation_142[0][0]             \n                                                                 swish_420[0][0]                  \n__________________________________________________________________________________________________\nconv2d_563 (Conv2D)             (None, 14, 14, 176)  185856      multiply_142[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_421 (BatchN (None, 14, 14, 176)  704         conv2d_563[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_116 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_421[0][0]    \n__________________________________________________________________________________________________\nadd_116 (Add)                   (None, 14, 14, 176)  0           drop_connect_116[0][0]           \n                                                                 add_115[0][0]                    \n__________________________________________________________________________________________________\nconv2d_564 (Conv2D)             (None, 14, 14, 1056) 185856      add_116[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_422 (BatchN (None, 14, 14, 1056) 4224        conv2d_564[0][0]                 \n__________________________________________________________________________________________________\nswish_422 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_422[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_143 (Depthwise (None, 14, 14, 1056) 26400       swish_422[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_423 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_143[0][0]       \n__________________________________________________________________________________________________\nswish_423 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_423[0][0]    \n__________________________________________________________________________________________________\nlambda_143 (Lambda)             (None, 1, 1, 1056)   0           swish_423[0][0]                  \n__________________________________________________________________________________________________\nconv2d_565 (Conv2D)             (None, 1, 1, 44)     46508       lambda_143[0][0]                 \n__________________________________________________________________________________________________\nswish_424 (Swish)               (None, 1, 1, 44)     0           conv2d_565[0][0]                 \n__________________________________________________________________________________________________\nconv2d_566 (Conv2D)             (None, 1, 1, 1056)   47520       swish_424[0][0]                  \n__________________________________________________________________________________________________\nactivation_143 (Activation)     (None, 1, 1, 1056)   0           conv2d_566[0][0]                 \n__________________________________________________________________________________________________\nmultiply_143 (Multiply)         (None, 14, 14, 1056) 0           activation_143[0][0]             \n                                                                 swish_423[0][0]                  \n__________________________________________________________________________________________________\nconv2d_567 (Conv2D)             (None, 14, 14, 176)  185856      multiply_143[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_424 (BatchN (None, 14, 14, 176)  704         conv2d_567[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_117 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_424[0][0]    \n__________________________________________________________________________________________________\nadd_117 (Add)                   (None, 14, 14, 176)  0           drop_connect_117[0][0]           \n                                                                 add_116[0][0]                    \n__________________________________________________________________________________________________\nconv2d_568 (Conv2D)             (None, 14, 14, 1056) 185856      add_117[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_425 (BatchN (None, 14, 14, 1056) 4224        conv2d_568[0][0]                 \n__________________________________________________________________________________________________\nswish_425 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_425[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_144 (Depthwise (None, 14, 14, 1056) 26400       swish_425[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_426 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_144[0][0]       \n__________________________________________________________________________________________________\nswish_426 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_426[0][0]    \n__________________________________________________________________________________________________\nlambda_144 (Lambda)             (None, 1, 1, 1056)   0           swish_426[0][0]                  \n__________________________________________________________________________________________________\nconv2d_569 (Conv2D)             (None, 1, 1, 44)     46508       lambda_144[0][0]                 \n__________________________________________________________________________________________________\nswish_427 (Swish)               (None, 1, 1, 44)     0           conv2d_569[0][0]                 \n__________________________________________________________________________________________________\nconv2d_570 (Conv2D)             (None, 1, 1, 1056)   47520       swish_427[0][0]                  \n__________________________________________________________________________________________________\nactivation_144 (Activation)     (None, 1, 1, 1056)   0           conv2d_570[0][0]                 \n__________________________________________________________________________________________________\nmultiply_144 (Multiply)         (None, 14, 14, 1056) 0           activation_144[0][0]             \n                                                                 swish_426[0][0]                  \n__________________________________________________________________________________________________\nconv2d_571 (Conv2D)             (None, 14, 14, 176)  185856      multiply_144[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_427 (BatchN (None, 14, 14, 176)  704         conv2d_571[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_118 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_427[0][0]    \n__________________________________________________________________________________________________\nadd_118 (Add)                   (None, 14, 14, 176)  0           drop_connect_118[0][0]           \n                                                                 add_117[0][0]                    \n__________________________________________________________________________________________________\nconv2d_572 (Conv2D)             (None, 14, 14, 1056) 185856      add_118[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_428 (BatchN (None, 14, 14, 1056) 4224        conv2d_572[0][0]                 \n__________________________________________________________________________________________________\nswish_428 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_428[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_145 (Depthwise (None, 7, 7, 1056)   26400       swish_428[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_429 (BatchN (None, 7, 7, 1056)   4224        depthwise_conv2d_145[0][0]       \n__________________________________________________________________________________________________\nswish_429 (Swish)               (None, 7, 7, 1056)   0           batch_normalization_429[0][0]    \n__________________________________________________________________________________________________\nlambda_145 (Lambda)             (None, 1, 1, 1056)   0           swish_429[0][0]                  \n__________________________________________________________________________________________________\nconv2d_573 (Conv2D)             (None, 1, 1, 44)     46508       lambda_145[0][0]                 \n__________________________________________________________________________________________________\nswish_430 (Swish)               (None, 1, 1, 44)     0           conv2d_573[0][0]                 \n__________________________________________________________________________________________________\nconv2d_574 (Conv2D)             (None, 1, 1, 1056)   47520       swish_430[0][0]                  \n__________________________________________________________________________________________________\nactivation_145 (Activation)     (None, 1, 1, 1056)   0           conv2d_574[0][0]                 \n__________________________________________________________________________________________________\nmultiply_145 (Multiply)         (None, 7, 7, 1056)   0           activation_145[0][0]             \n                                                                 swish_429[0][0]                  \n__________________________________________________________________________________________________\nconv2d_575 (Conv2D)             (None, 7, 7, 304)    321024      multiply_145[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_430 (BatchN (None, 7, 7, 304)    1216        conv2d_575[0][0]                 \n__________________________________________________________________________________________________\nconv2d_576 (Conv2D)             (None, 7, 7, 1824)   554496      batch_normalization_430[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_431 (BatchN (None, 7, 7, 1824)   7296        conv2d_576[0][0]                 \n__________________________________________________________________________________________________\nswish_431 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_431[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_146 (Depthwise (None, 7, 7, 1824)   45600       swish_431[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_432 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_146[0][0]       \n__________________________________________________________________________________________________\nswish_432 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_432[0][0]    \n__________________________________________________________________________________________________\nlambda_146 (Lambda)             (None, 1, 1, 1824)   0           swish_432[0][0]                  \n__________________________________________________________________________________________________\nconv2d_577 (Conv2D)             (None, 1, 1, 76)     138700      lambda_146[0][0]                 \n__________________________________________________________________________________________________\nswish_433 (Swish)               (None, 1, 1, 76)     0           conv2d_577[0][0]                 \n__________________________________________________________________________________________________\nconv2d_578 (Conv2D)             (None, 1, 1, 1824)   140448      swish_433[0][0]                  \n__________________________________________________________________________________________________\nactivation_146 (Activation)     (None, 1, 1, 1824)   0           conv2d_578[0][0]                 \n__________________________________________________________________________________________________\nmultiply_146 (Multiply)         (None, 7, 7, 1824)   0           activation_146[0][0]             \n                                                                 swish_432[0][0]                  \n__________________________________________________________________________________________________\nconv2d_579 (Conv2D)             (None, 7, 7, 304)    554496      multiply_146[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_433 (BatchN (None, 7, 7, 304)    1216        conv2d_579[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_119 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_433[0][0]    \n__________________________________________________________________________________________________\nadd_119 (Add)                   (None, 7, 7, 304)    0           drop_connect_119[0][0]           \n                                                                 batch_normalization_430[0][0]    \n__________________________________________________________________________________________________\nconv2d_580 (Conv2D)             (None, 7, 7, 1824)   554496      add_119[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_434 (BatchN (None, 7, 7, 1824)   7296        conv2d_580[0][0]                 \n__________________________________________________________________________________________________\nswish_434 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_434[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_147 (Depthwise (None, 7, 7, 1824)   45600       swish_434[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_435 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_147[0][0]       \n__________________________________________________________________________________________________\nswish_435 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_435[0][0]    \n__________________________________________________________________________________________________\nlambda_147 (Lambda)             (None, 1, 1, 1824)   0           swish_435[0][0]                  \n__________________________________________________________________________________________________\nconv2d_581 (Conv2D)             (None, 1, 1, 76)     138700      lambda_147[0][0]                 \n__________________________________________________________________________________________________\nswish_436 (Swish)               (None, 1, 1, 76)     0           conv2d_581[0][0]                 \n__________________________________________________________________________________________________\nconv2d_582 (Conv2D)             (None, 1, 1, 1824)   140448      swish_436[0][0]                  \n__________________________________________________________________________________________________\nactivation_147 (Activation)     (None, 1, 1, 1824)   0           conv2d_582[0][0]                 \n__________________________________________________________________________________________________\nmultiply_147 (Multiply)         (None, 7, 7, 1824)   0           activation_147[0][0]             \n                                                                 swish_435[0][0]                  \n__________________________________________________________________________________________________\nconv2d_583 (Conv2D)             (None, 7, 7, 304)    554496      multiply_147[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_436 (BatchN (None, 7, 7, 304)    1216        conv2d_583[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_120 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_436[0][0]    \n__________________________________________________________________________________________________\nadd_120 (Add)                   (None, 7, 7, 304)    0           drop_connect_120[0][0]           \n                                                                 add_119[0][0]                    \n__________________________________________________________________________________________________\nconv2d_584 (Conv2D)             (None, 7, 7, 1824)   554496      add_120[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_437 (BatchN (None, 7, 7, 1824)   7296        conv2d_584[0][0]                 \n__________________________________________________________________________________________________\nswish_437 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_437[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_148 (Depthwise (None, 7, 7, 1824)   45600       swish_437[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_438 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_148[0][0]       \n__________________________________________________________________________________________________\nswish_438 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_438[0][0]    \n__________________________________________________________________________________________________\nlambda_148 (Lambda)             (None, 1, 1, 1824)   0           swish_438[0][0]                  \n__________________________________________________________________________________________________\nconv2d_585 (Conv2D)             (None, 1, 1, 76)     138700      lambda_148[0][0]                 \n__________________________________________________________________________________________________\nswish_439 (Swish)               (None, 1, 1, 76)     0           conv2d_585[0][0]                 \n__________________________________________________________________________________________________\nconv2d_586 (Conv2D)             (None, 1, 1, 1824)   140448      swish_439[0][0]                  \n__________________________________________________________________________________________________\nactivation_148 (Activation)     (None, 1, 1, 1824)   0           conv2d_586[0][0]                 \n__________________________________________________________________________________________________\nmultiply_148 (Multiply)         (None, 7, 7, 1824)   0           activation_148[0][0]             \n                                                                 swish_438[0][0]                  \n__________________________________________________________________________________________________\nconv2d_587 (Conv2D)             (None, 7, 7, 304)    554496      multiply_148[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_439 (BatchN (None, 7, 7, 304)    1216        conv2d_587[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_121 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_439[0][0]    \n__________________________________________________________________________________________________\nadd_121 (Add)                   (None, 7, 7, 304)    0           drop_connect_121[0][0]           \n                                                                 add_120[0][0]                    \n__________________________________________________________________________________________________\nconv2d_588 (Conv2D)             (None, 7, 7, 1824)   554496      add_121[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_440 (BatchN (None, 7, 7, 1824)   7296        conv2d_588[0][0]                 \n__________________________________________________________________________________________________\nswish_440 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_440[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_149 (Depthwise (None, 7, 7, 1824)   45600       swish_440[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_441 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_149[0][0]       \n__________________________________________________________________________________________________\nswish_441 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_441[0][0]    \n__________________________________________________________________________________________________\nlambda_149 (Lambda)             (None, 1, 1, 1824)   0           swish_441[0][0]                  \n__________________________________________________________________________________________________\nconv2d_589 (Conv2D)             (None, 1, 1, 76)     138700      lambda_149[0][0]                 \n__________________________________________________________________________________________________\nswish_442 (Swish)               (None, 1, 1, 76)     0           conv2d_589[0][0]                 \n__________________________________________________________________________________________________\nconv2d_590 (Conv2D)             (None, 1, 1, 1824)   140448      swish_442[0][0]                  \n__________________________________________________________________________________________________\nactivation_149 (Activation)     (None, 1, 1, 1824)   0           conv2d_590[0][0]                 \n__________________________________________________________________________________________________\nmultiply_149 (Multiply)         (None, 7, 7, 1824)   0           activation_149[0][0]             \n                                                                 swish_441[0][0]                  \n__________________________________________________________________________________________________\nconv2d_591 (Conv2D)             (None, 7, 7, 304)    554496      multiply_149[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_442 (BatchN (None, 7, 7, 304)    1216        conv2d_591[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_122 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_442[0][0]    \n__________________________________________________________________________________________________\nadd_122 (Add)                   (None, 7, 7, 304)    0           drop_connect_122[0][0]           \n                                                                 add_121[0][0]                    \n__________________________________________________________________________________________________\nconv2d_592 (Conv2D)             (None, 7, 7, 1824)   554496      add_122[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_443 (BatchN (None, 7, 7, 1824)   7296        conv2d_592[0][0]                 \n__________________________________________________________________________________________________\nswish_443 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_443[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_150 (Depthwise (None, 7, 7, 1824)   45600       swish_443[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_444 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_150[0][0]       \n__________________________________________________________________________________________________\nswish_444 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_444[0][0]    \n__________________________________________________________________________________________________\nlambda_150 (Lambda)             (None, 1, 1, 1824)   0           swish_444[0][0]                  \n__________________________________________________________________________________________________\nconv2d_593 (Conv2D)             (None, 1, 1, 76)     138700      lambda_150[0][0]                 \n__________________________________________________________________________________________________\nswish_445 (Swish)               (None, 1, 1, 76)     0           conv2d_593[0][0]                 \n__________________________________________________________________________________________________\nconv2d_594 (Conv2D)             (None, 1, 1, 1824)   140448      swish_445[0][0]                  \n__________________________________________________________________________________________________\nactivation_150 (Activation)     (None, 1, 1, 1824)   0           conv2d_594[0][0]                 \n__________________________________________________________________________________________________\nmultiply_150 (Multiply)         (None, 7, 7, 1824)   0           activation_150[0][0]             \n                                                                 swish_444[0][0]                  \n__________________________________________________________________________________________________\nconv2d_595 (Conv2D)             (None, 7, 7, 304)    554496      multiply_150[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_445 (BatchN (None, 7, 7, 304)    1216        conv2d_595[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_123 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_445[0][0]    \n__________________________________________________________________________________________________\nadd_123 (Add)                   (None, 7, 7, 304)    0           drop_connect_123[0][0]           \n                                                                 add_122[0][0]                    \n__________________________________________________________________________________________________\nconv2d_596 (Conv2D)             (None, 7, 7, 1824)   554496      add_123[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_446 (BatchN (None, 7, 7, 1824)   7296        conv2d_596[0][0]                 \n__________________________________________________________________________________________________\nswish_446 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_446[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_151 (Depthwise (None, 7, 7, 1824)   45600       swish_446[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_447 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_151[0][0]       \n__________________________________________________________________________________________________\nswish_447 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_447[0][0]    \n__________________________________________________________________________________________________\nlambda_151 (Lambda)             (None, 1, 1, 1824)   0           swish_447[0][0]                  \n__________________________________________________________________________________________________\nconv2d_597 (Conv2D)             (None, 1, 1, 76)     138700      lambda_151[0][0]                 \n__________________________________________________________________________________________________\nswish_448 (Swish)               (None, 1, 1, 76)     0           conv2d_597[0][0]                 \n__________________________________________________________________________________________________\nconv2d_598 (Conv2D)             (None, 1, 1, 1824)   140448      swish_448[0][0]                  \n__________________________________________________________________________________________________\nactivation_151 (Activation)     (None, 1, 1, 1824)   0           conv2d_598[0][0]                 \n__________________________________________________________________________________________________\nmultiply_151 (Multiply)         (None, 7, 7, 1824)   0           activation_151[0][0]             \n                                                                 swish_447[0][0]                  \n__________________________________________________________________________________________________\nconv2d_599 (Conv2D)             (None, 7, 7, 304)    554496      multiply_151[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_448 (BatchN (None, 7, 7, 304)    1216        conv2d_599[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_124 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_448[0][0]    \n__________________________________________________________________________________________________\nadd_124 (Add)                   (None, 7, 7, 304)    0           drop_connect_124[0][0]           \n                                                                 add_123[0][0]                    \n__________________________________________________________________________________________________\nconv2d_600 (Conv2D)             (None, 7, 7, 1824)   554496      add_124[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_449 (BatchN (None, 7, 7, 1824)   7296        conv2d_600[0][0]                 \n__________________________________________________________________________________________________\nswish_449 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_449[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_152 (Depthwise (None, 7, 7, 1824)   45600       swish_449[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_450 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_152[0][0]       \n__________________________________________________________________________________________________\nswish_450 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_450[0][0]    \n__________________________________________________________________________________________________\nlambda_152 (Lambda)             (None, 1, 1, 1824)   0           swish_450[0][0]                  \n__________________________________________________________________________________________________\nconv2d_601 (Conv2D)             (None, 1, 1, 76)     138700      lambda_152[0][0]                 \n__________________________________________________________________________________________________\nswish_451 (Swish)               (None, 1, 1, 76)     0           conv2d_601[0][0]                 \n__________________________________________________________________________________________________\nconv2d_602 (Conv2D)             (None, 1, 1, 1824)   140448      swish_451[0][0]                  \n__________________________________________________________________________________________________\nactivation_152 (Activation)     (None, 1, 1, 1824)   0           conv2d_602[0][0]                 \n__________________________________________________________________________________________________\nmultiply_152 (Multiply)         (None, 7, 7, 1824)   0           activation_152[0][0]             \n                                                                 swish_450[0][0]                  \n__________________________________________________________________________________________________\nconv2d_603 (Conv2D)             (None, 7, 7, 304)    554496      multiply_152[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_451 (BatchN (None, 7, 7, 304)    1216        conv2d_603[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_125 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_451[0][0]    \n__________________________________________________________________________________________________\nadd_125 (Add)                   (None, 7, 7, 304)    0           drop_connect_125[0][0]           \n                                                                 add_124[0][0]                    \n__________________________________________________________________________________________________\nconv2d_604 (Conv2D)             (None, 7, 7, 1824)   554496      add_125[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_452 (BatchN (None, 7, 7, 1824)   7296        conv2d_604[0][0]                 \n__________________________________________________________________________________________________\nswish_452 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_452[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_153 (Depthwise (None, 7, 7, 1824)   45600       swish_452[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_453 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_153[0][0]       \n__________________________________________________________________________________________________\nswish_453 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_453[0][0]    \n__________________________________________________________________________________________________\nlambda_153 (Lambda)             (None, 1, 1, 1824)   0           swish_453[0][0]                  \n__________________________________________________________________________________________________\nconv2d_605 (Conv2D)             (None, 1, 1, 76)     138700      lambda_153[0][0]                 \n__________________________________________________________________________________________________\nswish_454 (Swish)               (None, 1, 1, 76)     0           conv2d_605[0][0]                 \n__________________________________________________________________________________________________\nconv2d_606 (Conv2D)             (None, 1, 1, 1824)   140448      swish_454[0][0]                  \n__________________________________________________________________________________________________\nactivation_153 (Activation)     (None, 1, 1, 1824)   0           conv2d_606[0][0]                 \n__________________________________________________________________________________________________\nmultiply_153 (Multiply)         (None, 7, 7, 1824)   0           activation_153[0][0]             \n                                                                 swish_453[0][0]                  \n__________________________________________________________________________________________________\nconv2d_607 (Conv2D)             (None, 7, 7, 304)    554496      multiply_153[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_454 (BatchN (None, 7, 7, 304)    1216        conv2d_607[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_126 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_454[0][0]    \n__________________________________________________________________________________________________\nadd_126 (Add)                   (None, 7, 7, 304)    0           drop_connect_126[0][0]           \n                                                                 add_125[0][0]                    \n__________________________________________________________________________________________________\nconv2d_608 (Conv2D)             (None, 7, 7, 1824)   554496      add_126[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_455 (BatchN (None, 7, 7, 1824)   7296        conv2d_608[0][0]                 \n__________________________________________________________________________________________________\nswish_455 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_455[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_154 (Depthwise (None, 7, 7, 1824)   16416       swish_455[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_456 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_154[0][0]       \n__________________________________________________________________________________________________\nswish_456 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_456[0][0]    \n__________________________________________________________________________________________________\nlambda_154 (Lambda)             (None, 1, 1, 1824)   0           swish_456[0][0]                  \n__________________________________________________________________________________________________\nconv2d_609 (Conv2D)             (None, 1, 1, 76)     138700      lambda_154[0][0]                 \n__________________________________________________________________________________________________\nswish_457 (Swish)               (None, 1, 1, 76)     0           conv2d_609[0][0]                 \n__________________________________________________________________________________________________\nconv2d_610 (Conv2D)             (None, 1, 1, 1824)   140448      swish_457[0][0]                  \n__________________________________________________________________________________________________\nactivation_154 (Activation)     (None, 1, 1, 1824)   0           conv2d_610[0][0]                 \n__________________________________________________________________________________________________\nmultiply_154 (Multiply)         (None, 7, 7, 1824)   0           activation_154[0][0]             \n                                                                 swish_456[0][0]                  \n__________________________________________________________________________________________________\nconv2d_611 (Conv2D)             (None, 7, 7, 512)    933888      multiply_154[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_457 (BatchN (None, 7, 7, 512)    2048        conv2d_611[0][0]                 \n__________________________________________________________________________________________________\nconv2d_612 (Conv2D)             (None, 7, 7, 3072)   1572864     batch_normalization_457[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_458 (BatchN (None, 7, 7, 3072)   12288       conv2d_612[0][0]                 \n__________________________________________________________________________________________________\nswish_458 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_458[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_155 (Depthwise (None, 7, 7, 3072)   27648       swish_458[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_459 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_155[0][0]       \n__________________________________________________________________________________________________\nswish_459 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_459[0][0]    \n__________________________________________________________________________________________________\nlambda_155 (Lambda)             (None, 1, 1, 3072)   0           swish_459[0][0]                  \n__________________________________________________________________________________________________\nconv2d_613 (Conv2D)             (None, 1, 1, 128)    393344      lambda_155[0][0]                 \n__________________________________________________________________________________________________\nswish_460 (Swish)               (None, 1, 1, 128)    0           conv2d_613[0][0]                 \n__________________________________________________________________________________________________\nconv2d_614 (Conv2D)             (None, 1, 1, 3072)   396288      swish_460[0][0]                  \n__________________________________________________________________________________________________\nactivation_155 (Activation)     (None, 1, 1, 3072)   0           conv2d_614[0][0]                 \n__________________________________________________________________________________________________\nmultiply_155 (Multiply)         (None, 7, 7, 3072)   0           activation_155[0][0]             \n                                                                 swish_459[0][0]                  \n__________________________________________________________________________________________________\nconv2d_615 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_155[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_460 (BatchN (None, 7, 7, 512)    2048        conv2d_615[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_127 (DropConnect)  (None, 7, 7, 512)    0           batch_normalization_460[0][0]    \n__________________________________________________________________________________________________\nadd_127 (Add)                   (None, 7, 7, 512)    0           drop_connect_127[0][0]           \n                                                                 batch_normalization_457[0][0]    \n__________________________________________________________________________________________________\nconv2d_616 (Conv2D)             (None, 7, 7, 3072)   1572864     add_127[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_461 (BatchN (None, 7, 7, 3072)   12288       conv2d_616[0][0]                 \n__________________________________________________________________________________________________\nswish_461 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_461[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_156 (Depthwise (None, 7, 7, 3072)   27648       swish_461[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_462 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_156[0][0]       \n__________________________________________________________________________________________________\nswish_462 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_462[0][0]    \n__________________________________________________________________________________________________\nlambda_156 (Lambda)             (None, 1, 1, 3072)   0           swish_462[0][0]                  \n__________________________________________________________________________________________________\nconv2d_617 (Conv2D)             (None, 1, 1, 128)    393344      lambda_156[0][0]                 \n__________________________________________________________________________________________________\nswish_463 (Swish)               (None, 1, 1, 128)    0           conv2d_617[0][0]                 \n__________________________________________________________________________________________________\nconv2d_618 (Conv2D)             (None, 1, 1, 3072)   396288      swish_463[0][0]                  \n__________________________________________________________________________________________________\nactivation_156 (Activation)     (None, 1, 1, 3072)   0           conv2d_618[0][0]                 \n__________________________________________________________________________________________________\nmultiply_156 (Multiply)         (None, 7, 7, 3072)   0           activation_156[0][0]             \n                                                                 swish_462[0][0]                  \n__________________________________________________________________________________________________\nconv2d_619 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_156[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_463 (BatchN (None, 7, 7, 512)    2048        conv2d_619[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_128 (DropConnect)  (None, 7, 7, 512)    0           batch_normalization_463[0][0]    \n__________________________________________________________________________________________________\nadd_128 (Add)                   (None, 7, 7, 512)    0           drop_connect_128[0][0]           \n                                                                 add_127[0][0]                    \n__________________________________________________________________________________________________\nconv2d_620 (Conv2D)             (None, 7, 7, 2048)   1048576     add_128[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_464 (BatchN (None, 7, 7, 2048)   8192        conv2d_620[0][0]                 \n__________________________________________________________________________________________________\nswish_464 (Swish)               (None, 7, 7, 2048)   0           batch_normalization_464[0][0]    \n__________________________________________________________________________________________________\nglobal_average_pooling2d_3 (Glo (None, 2048)         0           swish_464[0][0]                  \n__________________________________________________________________________________________________\ndropout_3 (Dropout)             (None, 2048)         0           global_average_pooling2d_3[0][0] \n__________________________________________________________________________________________________\ndense_2 (Dense)                 (None, 2048)         4196352     dropout_3[0][0]                  \n__________________________________________________________________________________________________\ndropout_4 (Dropout)             (None, 2048)         0           dense_2[0][0]                    \n__________________________________________________________________________________________________\nfinal_output (Dense)            (None, 5)            10245       dropout_4[0][0]                  \n==================================================================================================\nTotal params: 32,720,117\nTrainable params: 10,245\nNon-trainable params: 32,709,872\n__________________________________________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"STEP_SIZE_TRAIN = train_generator.n//train_generator.batch_size\nSTEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n\nmetric_list = [\"accuracy\"]\noptimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\nmodel.compile (optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])\n\nhistory_warmup = model.fit_generator(generator=train_generator,\n                                     steps_per_epoch=STEP_SIZE_TRAIN,\n                                     validation_data=valid_generator,\n                                     validation_steps=STEP_SIZE_VALID,\n                                     epochs=WARMUP_EPOCHS,\n#                                      callbacks=callback_list,\n                                     verbose=2).history","metadata":{"execution":{"iopub.status.busy":"2024-06-03T17:15:02.283543Z","iopub.execute_input":"2024-06-03T17:15:02.283827Z","iopub.status.idle":"2024-06-03T17:19:15.62823Z","shell.execute_reply.started":"2024-06-03T17:15:02.283784Z","shell.execute_reply":"2024-06-03T17:19:15.627035Z"},"trusted":true},"execution_count":42,"outputs":[{"name":"stdout","text":"Epoch 1/5\n - 75s - loss: 1.1989 - acc: 0.5481 - val_loss: 1.2374 - val_acc: 0.5327\nEpoch 2/5\n - 45s - loss: 1.0621 - acc: 0.6146 - val_loss: 1.3346 - val_acc: 0.4793\nEpoch 3/5\n - 45s - loss: 1.0539 - acc: 0.6131 - val_loss: 1.1746 - val_acc: 0.5777\nEpoch 4/5\n - 44s - loss: 1.0563 - acc: 0.6170 - val_loss: 1.3467 - val_acc: 0.4864\nEpoch 5/5\n - 44s - loss: 1.0548 - acc: 0.6252 - val_loss: 1.3254 - val_acc: 0.4864\n","output_type":"stream"}]},{"cell_type":"code","source":"for layer in model.layers:\n    layer.trainable = True\n\n# es = EarlyStopping(monitor='val_loss', mode='min', patience=ES_PATIENCE, restore_best_weights=True, verbose=1)\n# cosine_lr_2nd = WarmUpCosineDecayScheduler(learning_rate_base=LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_2nd,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_2nd,\n#                                            hold_base_rate_steps=(3 * STEP_SIZE))\n\n# callback_list = [es, cosine_lr_2nd]\n# optimizer = optimizers.Adam(lr=LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\n# model.summary()\nrlrop = ReduceLROnPlateau(monitor='val_loss', mode='min', patience=3, factor=0.5, min_lr=1e-6, verbose=1)\n\ncallback_list = [rlrop]\noptimizer = optimizers.Adam(lr=LEARNING_RATE)\nmodel.compile(optimizer=optimizer, loss=\"categorical_crossentropy\",  metrics=[\"accuracy\"])\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-06-03T17:23:54.334751Z","iopub.execute_input":"2024-06-03T17:23:54.335064Z","iopub.status.idle":"2024-06-03T17:23:54.597133Z","shell.execute_reply.started":"2024-06-03T17:23:54.335021Z","shell.execute_reply":"2024-06-03T17:23:54.596207Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":44,"outputs":[{"name":"stdout","text":"__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_4 (InputLayer)            (None, 224, 224, 3)  0                                            \n__________________________________________________________________________________________________\nconv2d_466 (Conv2D)             (None, 112, 112, 48) 1296        input_4[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_349 (BatchN (None, 112, 112, 48) 192         conv2d_466[0][0]                 \n__________________________________________________________________________________________________\nswish_349 (Swish)               (None, 112, 112, 48) 0           batch_normalization_349[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_118 (Depthwise (None, 112, 112, 48) 432         swish_349[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_350 (BatchN (None, 112, 112, 48) 192         depthwise_conv2d_118[0][0]       \n__________________________________________________________________________________________________\nswish_350 (Swish)               (None, 112, 112, 48) 0           batch_normalization_350[0][0]    \n__________________________________________________________________________________________________\nlambda_118 (Lambda)             (None, 1, 1, 48)     0           swish_350[0][0]                  \n__________________________________________________________________________________________________\nconv2d_467 (Conv2D)             (None, 1, 1, 12)     588         lambda_118[0][0]                 \n__________________________________________________________________________________________________\nswish_351 (Swish)               (None, 1, 1, 12)     0           conv2d_467[0][0]                 \n__________________________________________________________________________________________________\nconv2d_468 (Conv2D)             (None, 1, 1, 48)     624         swish_351[0][0]                  \n__________________________________________________________________________________________________\nactivation_118 (Activation)     (None, 1, 1, 48)     0           conv2d_468[0][0]                 \n__________________________________________________________________________________________________\nmultiply_118 (Multiply)         (None, 112, 112, 48) 0           activation_118[0][0]             \n                                                                 swish_350[0][0]                  \n__________________________________________________________________________________________________\nconv2d_469 (Conv2D)             (None, 112, 112, 24) 1152        multiply_118[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_351 (BatchN (None, 112, 112, 24) 96          conv2d_469[0][0]                 \n__________________________________________________________________________________________________\ndepthwise_conv2d_119 (Depthwise (None, 112, 112, 24) 216         batch_normalization_351[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_352 (BatchN (None, 112, 112, 24) 96          depthwise_conv2d_119[0][0]       \n__________________________________________________________________________________________________\nswish_352 (Swish)               (None, 112, 112, 24) 0           batch_normalization_352[0][0]    \n__________________________________________________________________________________________________\nlambda_119 (Lambda)             (None, 1, 1, 24)     0           swish_352[0][0]                  \n__________________________________________________________________________________________________\nconv2d_470 (Conv2D)             (None, 1, 1, 6)      150         lambda_119[0][0]                 \n__________________________________________________________________________________________________\nswish_353 (Swish)               (None, 1, 1, 6)      0           conv2d_470[0][0]                 \n__________________________________________________________________________________________________\nconv2d_471 (Conv2D)             (None, 1, 1, 24)     168         swish_353[0][0]                  \n__________________________________________________________________________________________________\nactivation_119 (Activation)     (None, 1, 1, 24)     0           conv2d_471[0][0]                 \n__________________________________________________________________________________________________\nmultiply_119 (Multiply)         (None, 112, 112, 24) 0           activation_119[0][0]             \n                                                                 swish_352[0][0]                  \n__________________________________________________________________________________________________\nconv2d_472 (Conv2D)             (None, 112, 112, 24) 576         multiply_119[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_353 (BatchN (None, 112, 112, 24) 96          conv2d_472[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_97 (DropConnect)   (None, 112, 112, 24) 0           batch_normalization_353[0][0]    \n__________________________________________________________________________________________________\nadd_97 (Add)                    (None, 112, 112, 24) 0           drop_connect_97[0][0]            \n                                                                 batch_normalization_351[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_120 (Depthwise (None, 112, 112, 24) 216         add_97[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_354 (BatchN (None, 112, 112, 24) 96          depthwise_conv2d_120[0][0]       \n__________________________________________________________________________________________________\nswish_354 (Swish)               (None, 112, 112, 24) 0           batch_normalization_354[0][0]    \n__________________________________________________________________________________________________\nlambda_120 (Lambda)             (None, 1, 1, 24)     0           swish_354[0][0]                  \n__________________________________________________________________________________________________\nconv2d_473 (Conv2D)             (None, 1, 1, 6)      150         lambda_120[0][0]                 \n__________________________________________________________________________________________________\nswish_355 (Swish)               (None, 1, 1, 6)      0           conv2d_473[0][0]                 \n__________________________________________________________________________________________________\nconv2d_474 (Conv2D)             (None, 1, 1, 24)     168         swish_355[0][0]                  \n__________________________________________________________________________________________________\nactivation_120 (Activation)     (None, 1, 1, 24)     0           conv2d_474[0][0]                 \n__________________________________________________________________________________________________\nmultiply_120 (Multiply)         (None, 112, 112, 24) 0           activation_120[0][0]             \n                                                                 swish_354[0][0]                  \n__________________________________________________________________________________________________\nconv2d_475 (Conv2D)             (None, 112, 112, 24) 576         multiply_120[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_355 (BatchN (None, 112, 112, 24) 96          conv2d_475[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_98 (DropConnect)   (None, 112, 112, 24) 0           batch_normalization_355[0][0]    \n__________________________________________________________________________________________________\nadd_98 (Add)                    (None, 112, 112, 24) 0           drop_connect_98[0][0]            \n                                                                 add_97[0][0]                     \n__________________________________________________________________________________________________\nconv2d_476 (Conv2D)             (None, 112, 112, 144 3456        add_98[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_356 (BatchN (None, 112, 112, 144 576         conv2d_476[0][0]                 \n__________________________________________________________________________________________________\nswish_356 (Swish)               (None, 112, 112, 144 0           batch_normalization_356[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_121 (Depthwise (None, 56, 56, 144)  1296        swish_356[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_357 (BatchN (None, 56, 56, 144)  576         depthwise_conv2d_121[0][0]       \n__________________________________________________________________________________________________\nswish_357 (Swish)               (None, 56, 56, 144)  0           batch_normalization_357[0][0]    \n__________________________________________________________________________________________________\nlambda_121 (Lambda)             (None, 1, 1, 144)    0           swish_357[0][0]                  \n__________________________________________________________________________________________________\nconv2d_477 (Conv2D)             (None, 1, 1, 6)      870         lambda_121[0][0]                 \n__________________________________________________________________________________________________\nswish_358 (Swish)               (None, 1, 1, 6)      0           conv2d_477[0][0]                 \n__________________________________________________________________________________________________\nconv2d_478 (Conv2D)             (None, 1, 1, 144)    1008        swish_358[0][0]                  \n__________________________________________________________________________________________________\nactivation_121 (Activation)     (None, 1, 1, 144)    0           conv2d_478[0][0]                 \n__________________________________________________________________________________________________\nmultiply_121 (Multiply)         (None, 56, 56, 144)  0           activation_121[0][0]             \n                                                                 swish_357[0][0]                  \n__________________________________________________________________________________________________\nconv2d_479 (Conv2D)             (None, 56, 56, 40)   5760        multiply_121[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_358 (BatchN (None, 56, 56, 40)   160         conv2d_479[0][0]                 \n__________________________________________________________________________________________________\nconv2d_480 (Conv2D)             (None, 56, 56, 240)  9600        batch_normalization_358[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_359 (BatchN (None, 56, 56, 240)  960         conv2d_480[0][0]                 \n__________________________________________________________________________________________________\nswish_359 (Swish)               (None, 56, 56, 240)  0           batch_normalization_359[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_122 (Depthwise (None, 56, 56, 240)  2160        swish_359[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_360 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_122[0][0]       \n__________________________________________________________________________________________________\nswish_360 (Swish)               (None, 56, 56, 240)  0           batch_normalization_360[0][0]    \n__________________________________________________________________________________________________\nlambda_122 (Lambda)             (None, 1, 1, 240)    0           swish_360[0][0]                  \n__________________________________________________________________________________________________\nconv2d_481 (Conv2D)             (None, 1, 1, 10)     2410        lambda_122[0][0]                 \n__________________________________________________________________________________________________\nswish_361 (Swish)               (None, 1, 1, 10)     0           conv2d_481[0][0]                 \n__________________________________________________________________________________________________\nconv2d_482 (Conv2D)             (None, 1, 1, 240)    2640        swish_361[0][0]                  \n__________________________________________________________________________________________________\nactivation_122 (Activation)     (None, 1, 1, 240)    0           conv2d_482[0][0]                 \n__________________________________________________________________________________________________\nmultiply_122 (Multiply)         (None, 56, 56, 240)  0           activation_122[0][0]             \n                                                                 swish_360[0][0]                  \n__________________________________________________________________________________________________\nconv2d_483 (Conv2D)             (None, 56, 56, 40)   9600        multiply_122[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_361 (BatchN (None, 56, 56, 40)   160         conv2d_483[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_99 (DropConnect)   (None, 56, 56, 40)   0           batch_normalization_361[0][0]    \n__________________________________________________________________________________________________\nadd_99 (Add)                    (None, 56, 56, 40)   0           drop_connect_99[0][0]            \n                                                                 batch_normalization_358[0][0]    \n__________________________________________________________________________________________________\nconv2d_484 (Conv2D)             (None, 56, 56, 240)  9600        add_99[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_362 (BatchN (None, 56, 56, 240)  960         conv2d_484[0][0]                 \n__________________________________________________________________________________________________\nswish_362 (Swish)               (None, 56, 56, 240)  0           batch_normalization_362[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_123 (Depthwise (None, 56, 56, 240)  2160        swish_362[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_363 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_123[0][0]       \n__________________________________________________________________________________________________\nswish_363 (Swish)               (None, 56, 56, 240)  0           batch_normalization_363[0][0]    \n__________________________________________________________________________________________________\nlambda_123 (Lambda)             (None, 1, 1, 240)    0           swish_363[0][0]                  \n__________________________________________________________________________________________________\nconv2d_485 (Conv2D)             (None, 1, 1, 10)     2410        lambda_123[0][0]                 \n__________________________________________________________________________________________________\nswish_364 (Swish)               (None, 1, 1, 10)     0           conv2d_485[0][0]                 \n__________________________________________________________________________________________________\nconv2d_486 (Conv2D)             (None, 1, 1, 240)    2640        swish_364[0][0]                  \n__________________________________________________________________________________________________\nactivation_123 (Activation)     (None, 1, 1, 240)    0           conv2d_486[0][0]                 \n__________________________________________________________________________________________________\nmultiply_123 (Multiply)         (None, 56, 56, 240)  0           activation_123[0][0]             \n                                                                 swish_363[0][0]                  \n__________________________________________________________________________________________________\nconv2d_487 (Conv2D)             (None, 56, 56, 40)   9600        multiply_123[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_364 (BatchN (None, 56, 56, 40)   160         conv2d_487[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_100 (DropConnect)  (None, 56, 56, 40)   0           batch_normalization_364[0][0]    \n__________________________________________________________________________________________________\nadd_100 (Add)                   (None, 56, 56, 40)   0           drop_connect_100[0][0]           \n                                                                 add_99[0][0]                     \n__________________________________________________________________________________________________\nconv2d_488 (Conv2D)             (None, 56, 56, 240)  9600        add_100[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_365 (BatchN (None, 56, 56, 240)  960         conv2d_488[0][0]                 \n__________________________________________________________________________________________________\nswish_365 (Swish)               (None, 56, 56, 240)  0           batch_normalization_365[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_124 (Depthwise (None, 56, 56, 240)  2160        swish_365[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_366 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_124[0][0]       \n__________________________________________________________________________________________________\nswish_366 (Swish)               (None, 56, 56, 240)  0           batch_normalization_366[0][0]    \n__________________________________________________________________________________________________\nlambda_124 (Lambda)             (None, 1, 1, 240)    0           swish_366[0][0]                  \n__________________________________________________________________________________________________\nconv2d_489 (Conv2D)             (None, 1, 1, 10)     2410        lambda_124[0][0]                 \n__________________________________________________________________________________________________\nswish_367 (Swish)               (None, 1, 1, 10)     0           conv2d_489[0][0]                 \n__________________________________________________________________________________________________\nconv2d_490 (Conv2D)             (None, 1, 1, 240)    2640        swish_367[0][0]                  \n__________________________________________________________________________________________________\nactivation_124 (Activation)     (None, 1, 1, 240)    0           conv2d_490[0][0]                 \n__________________________________________________________________________________________________\nmultiply_124 (Multiply)         (None, 56, 56, 240)  0           activation_124[0][0]             \n                                                                 swish_366[0][0]                  \n__________________________________________________________________________________________________\nconv2d_491 (Conv2D)             (None, 56, 56, 40)   9600        multiply_124[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_367 (BatchN (None, 56, 56, 40)   160         conv2d_491[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_101 (DropConnect)  (None, 56, 56, 40)   0           batch_normalization_367[0][0]    \n__________________________________________________________________________________________________\nadd_101 (Add)                   (None, 56, 56, 40)   0           drop_connect_101[0][0]           \n                                                                 add_100[0][0]                    \n__________________________________________________________________________________________________\nconv2d_492 (Conv2D)             (None, 56, 56, 240)  9600        add_101[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_368 (BatchN (None, 56, 56, 240)  960         conv2d_492[0][0]                 \n__________________________________________________________________________________________________\nswish_368 (Swish)               (None, 56, 56, 240)  0           batch_normalization_368[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_125 (Depthwise (None, 56, 56, 240)  2160        swish_368[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_369 (BatchN (None, 56, 56, 240)  960         depthwise_conv2d_125[0][0]       \n__________________________________________________________________________________________________\nswish_369 (Swish)               (None, 56, 56, 240)  0           batch_normalization_369[0][0]    \n__________________________________________________________________________________________________\nlambda_125 (Lambda)             (None, 1, 1, 240)    0           swish_369[0][0]                  \n__________________________________________________________________________________________________\nconv2d_493 (Conv2D)             (None, 1, 1, 10)     2410        lambda_125[0][0]                 \n__________________________________________________________________________________________________\nswish_370 (Swish)               (None, 1, 1, 10)     0           conv2d_493[0][0]                 \n__________________________________________________________________________________________________\nconv2d_494 (Conv2D)             (None, 1, 1, 240)    2640        swish_370[0][0]                  \n__________________________________________________________________________________________________\nactivation_125 (Activation)     (None, 1, 1, 240)    0           conv2d_494[0][0]                 \n__________________________________________________________________________________________________\nmultiply_125 (Multiply)         (None, 56, 56, 240)  0           activation_125[0][0]             \n                                                                 swish_369[0][0]                  \n__________________________________________________________________________________________________\nconv2d_495 (Conv2D)             (None, 56, 56, 40)   9600        multiply_125[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_370 (BatchN (None, 56, 56, 40)   160         conv2d_495[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_102 (DropConnect)  (None, 56, 56, 40)   0           batch_normalization_370[0][0]    \n__________________________________________________________________________________________________\nadd_102 (Add)                   (None, 56, 56, 40)   0           drop_connect_102[0][0]           \n                                                                 add_101[0][0]                    \n__________________________________________________________________________________________________\nconv2d_496 (Conv2D)             (None, 56, 56, 240)  9600        add_102[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_371 (BatchN (None, 56, 56, 240)  960         conv2d_496[0][0]                 \n__________________________________________________________________________________________________\nswish_371 (Swish)               (None, 56, 56, 240)  0           batch_normalization_371[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_126 (Depthwise (None, 28, 28, 240)  6000        swish_371[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_372 (BatchN (None, 28, 28, 240)  960         depthwise_conv2d_126[0][0]       \n__________________________________________________________________________________________________\nswish_372 (Swish)               (None, 28, 28, 240)  0           batch_normalization_372[0][0]    \n__________________________________________________________________________________________________\nlambda_126 (Lambda)             (None, 1, 1, 240)    0           swish_372[0][0]                  \n__________________________________________________________________________________________________\nconv2d_497 (Conv2D)             (None, 1, 1, 10)     2410        lambda_126[0][0]                 \n__________________________________________________________________________________________________\nswish_373 (Swish)               (None, 1, 1, 10)     0           conv2d_497[0][0]                 \n__________________________________________________________________________________________________\nconv2d_498 (Conv2D)             (None, 1, 1, 240)    2640        swish_373[0][0]                  \n__________________________________________________________________________________________________\nactivation_126 (Activation)     (None, 1, 1, 240)    0           conv2d_498[0][0]                 \n__________________________________________________________________________________________________\nmultiply_126 (Multiply)         (None, 28, 28, 240)  0           activation_126[0][0]             \n                                                                 swish_372[0][0]                  \n__________________________________________________________________________________________________\nconv2d_499 (Conv2D)             (None, 28, 28, 64)   15360       multiply_126[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_373 (BatchN (None, 28, 28, 64)   256         conv2d_499[0][0]                 \n__________________________________________________________________________________________________\nconv2d_500 (Conv2D)             (None, 28, 28, 384)  24576       batch_normalization_373[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_374 (BatchN (None, 28, 28, 384)  1536        conv2d_500[0][0]                 \n__________________________________________________________________________________________________\nswish_374 (Swish)               (None, 28, 28, 384)  0           batch_normalization_374[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_127 (Depthwise (None, 28, 28, 384)  9600        swish_374[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_375 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_127[0][0]       \n__________________________________________________________________________________________________\nswish_375 (Swish)               (None, 28, 28, 384)  0           batch_normalization_375[0][0]    \n__________________________________________________________________________________________________\nlambda_127 (Lambda)             (None, 1, 1, 384)    0           swish_375[0][0]                  \n__________________________________________________________________________________________________\nconv2d_501 (Conv2D)             (None, 1, 1, 16)     6160        lambda_127[0][0]                 \n__________________________________________________________________________________________________\nswish_376 (Swish)               (None, 1, 1, 16)     0           conv2d_501[0][0]                 \n__________________________________________________________________________________________________\nconv2d_502 (Conv2D)             (None, 1, 1, 384)    6528        swish_376[0][0]                  \n__________________________________________________________________________________________________\nactivation_127 (Activation)     (None, 1, 1, 384)    0           conv2d_502[0][0]                 \n__________________________________________________________________________________________________\nmultiply_127 (Multiply)         (None, 28, 28, 384)  0           activation_127[0][0]             \n                                                                 swish_375[0][0]                  \n__________________________________________________________________________________________________\nconv2d_503 (Conv2D)             (None, 28, 28, 64)   24576       multiply_127[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_376 (BatchN (None, 28, 28, 64)   256         conv2d_503[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_103 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_376[0][0]    \n__________________________________________________________________________________________________\nadd_103 (Add)                   (None, 28, 28, 64)   0           drop_connect_103[0][0]           \n                                                                 batch_normalization_373[0][0]    \n__________________________________________________________________________________________________\nconv2d_504 (Conv2D)             (None, 28, 28, 384)  24576       add_103[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_377 (BatchN (None, 28, 28, 384)  1536        conv2d_504[0][0]                 \n__________________________________________________________________________________________________\nswish_377 (Swish)               (None, 28, 28, 384)  0           batch_normalization_377[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_128 (Depthwise (None, 28, 28, 384)  9600        swish_377[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_378 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_128[0][0]       \n__________________________________________________________________________________________________\nswish_378 (Swish)               (None, 28, 28, 384)  0           batch_normalization_378[0][0]    \n__________________________________________________________________________________________________\nlambda_128 (Lambda)             (None, 1, 1, 384)    0           swish_378[0][0]                  \n__________________________________________________________________________________________________\nconv2d_505 (Conv2D)             (None, 1, 1, 16)     6160        lambda_128[0][0]                 \n__________________________________________________________________________________________________\nswish_379 (Swish)               (None, 1, 1, 16)     0           conv2d_505[0][0]                 \n__________________________________________________________________________________________________\nconv2d_506 (Conv2D)             (None, 1, 1, 384)    6528        swish_379[0][0]                  \n__________________________________________________________________________________________________\nactivation_128 (Activation)     (None, 1, 1, 384)    0           conv2d_506[0][0]                 \n__________________________________________________________________________________________________\nmultiply_128 (Multiply)         (None, 28, 28, 384)  0           activation_128[0][0]             \n                                                                 swish_378[0][0]                  \n__________________________________________________________________________________________________\nconv2d_507 (Conv2D)             (None, 28, 28, 64)   24576       multiply_128[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_379 (BatchN (None, 28, 28, 64)   256         conv2d_507[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_104 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_379[0][0]    \n__________________________________________________________________________________________________\nadd_104 (Add)                   (None, 28, 28, 64)   0           drop_connect_104[0][0]           \n                                                                 add_103[0][0]                    \n__________________________________________________________________________________________________\nconv2d_508 (Conv2D)             (None, 28, 28, 384)  24576       add_104[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_380 (BatchN (None, 28, 28, 384)  1536        conv2d_508[0][0]                 \n__________________________________________________________________________________________________\nswish_380 (Swish)               (None, 28, 28, 384)  0           batch_normalization_380[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_129 (Depthwise (None, 28, 28, 384)  9600        swish_380[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_381 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_129[0][0]       \n__________________________________________________________________________________________________\nswish_381 (Swish)               (None, 28, 28, 384)  0           batch_normalization_381[0][0]    \n__________________________________________________________________________________________________\nlambda_129 (Lambda)             (None, 1, 1, 384)    0           swish_381[0][0]                  \n__________________________________________________________________________________________________\nconv2d_509 (Conv2D)             (None, 1, 1, 16)     6160        lambda_129[0][0]                 \n__________________________________________________________________________________________________\nswish_382 (Swish)               (None, 1, 1, 16)     0           conv2d_509[0][0]                 \n__________________________________________________________________________________________________\nconv2d_510 (Conv2D)             (None, 1, 1, 384)    6528        swish_382[0][0]                  \n__________________________________________________________________________________________________\nactivation_129 (Activation)     (None, 1, 1, 384)    0           conv2d_510[0][0]                 \n__________________________________________________________________________________________________\nmultiply_129 (Multiply)         (None, 28, 28, 384)  0           activation_129[0][0]             \n                                                                 swish_381[0][0]                  \n__________________________________________________________________________________________________\nconv2d_511 (Conv2D)             (None, 28, 28, 64)   24576       multiply_129[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_382 (BatchN (None, 28, 28, 64)   256         conv2d_511[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_105 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_382[0][0]    \n__________________________________________________________________________________________________\nadd_105 (Add)                   (None, 28, 28, 64)   0           drop_connect_105[0][0]           \n                                                                 add_104[0][0]                    \n__________________________________________________________________________________________________\nconv2d_512 (Conv2D)             (None, 28, 28, 384)  24576       add_105[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_383 (BatchN (None, 28, 28, 384)  1536        conv2d_512[0][0]                 \n__________________________________________________________________________________________________\nswish_383 (Swish)               (None, 28, 28, 384)  0           batch_normalization_383[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_130 (Depthwise (None, 28, 28, 384)  9600        swish_383[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_384 (BatchN (None, 28, 28, 384)  1536        depthwise_conv2d_130[0][0]       \n__________________________________________________________________________________________________\nswish_384 (Swish)               (None, 28, 28, 384)  0           batch_normalization_384[0][0]    \n__________________________________________________________________________________________________\nlambda_130 (Lambda)             (None, 1, 1, 384)    0           swish_384[0][0]                  \n__________________________________________________________________________________________________\nconv2d_513 (Conv2D)             (None, 1, 1, 16)     6160        lambda_130[0][0]                 \n__________________________________________________________________________________________________\nswish_385 (Swish)               (None, 1, 1, 16)     0           conv2d_513[0][0]                 \n__________________________________________________________________________________________________\nconv2d_514 (Conv2D)             (None, 1, 1, 384)    6528        swish_385[0][0]                  \n__________________________________________________________________________________________________\nactivation_130 (Activation)     (None, 1, 1, 384)    0           conv2d_514[0][0]                 \n__________________________________________________________________________________________________\nmultiply_130 (Multiply)         (None, 28, 28, 384)  0           activation_130[0][0]             \n                                                                 swish_384[0][0]                  \n__________________________________________________________________________________________________\nconv2d_515 (Conv2D)             (None, 28, 28, 64)   24576       multiply_130[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_385 (BatchN (None, 28, 28, 64)   256         conv2d_515[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_106 (DropConnect)  (None, 28, 28, 64)   0           batch_normalization_385[0][0]    \n__________________________________________________________________________________________________\nadd_106 (Add)                   (None, 28, 28, 64)   0           drop_connect_106[0][0]           \n                                                                 add_105[0][0]                    \n__________________________________________________________________________________________________\nconv2d_516 (Conv2D)             (None, 28, 28, 384)  24576       add_106[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_386 (BatchN (None, 28, 28, 384)  1536        conv2d_516[0][0]                 \n__________________________________________________________________________________________________\nswish_386 (Swish)               (None, 28, 28, 384)  0           batch_normalization_386[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_131 (Depthwise (None, 14, 14, 384)  3456        swish_386[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_387 (BatchN (None, 14, 14, 384)  1536        depthwise_conv2d_131[0][0]       \n__________________________________________________________________________________________________\nswish_387 (Swish)               (None, 14, 14, 384)  0           batch_normalization_387[0][0]    \n__________________________________________________________________________________________________\nlambda_131 (Lambda)             (None, 1, 1, 384)    0           swish_387[0][0]                  \n__________________________________________________________________________________________________\nconv2d_517 (Conv2D)             (None, 1, 1, 16)     6160        lambda_131[0][0]                 \n__________________________________________________________________________________________________\nswish_388 (Swish)               (None, 1, 1, 16)     0           conv2d_517[0][0]                 \n__________________________________________________________________________________________________\nconv2d_518 (Conv2D)             (None, 1, 1, 384)    6528        swish_388[0][0]                  \n__________________________________________________________________________________________________\nactivation_131 (Activation)     (None, 1, 1, 384)    0           conv2d_518[0][0]                 \n__________________________________________________________________________________________________\nmultiply_131 (Multiply)         (None, 14, 14, 384)  0           activation_131[0][0]             \n                                                                 swish_387[0][0]                  \n__________________________________________________________________________________________________\nconv2d_519 (Conv2D)             (None, 14, 14, 128)  49152       multiply_131[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_388 (BatchN (None, 14, 14, 128)  512         conv2d_519[0][0]                 \n__________________________________________________________________________________________________\nconv2d_520 (Conv2D)             (None, 14, 14, 768)  98304       batch_normalization_388[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_389 (BatchN (None, 14, 14, 768)  3072        conv2d_520[0][0]                 \n__________________________________________________________________________________________________\nswish_389 (Swish)               (None, 14, 14, 768)  0           batch_normalization_389[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_132 (Depthwise (None, 14, 14, 768)  6912        swish_389[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_390 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_132[0][0]       \n__________________________________________________________________________________________________\nswish_390 (Swish)               (None, 14, 14, 768)  0           batch_normalization_390[0][0]    \n__________________________________________________________________________________________________\nlambda_132 (Lambda)             (None, 1, 1, 768)    0           swish_390[0][0]                  \n__________________________________________________________________________________________________\nconv2d_521 (Conv2D)             (None, 1, 1, 32)     24608       lambda_132[0][0]                 \n__________________________________________________________________________________________________\nswish_391 (Swish)               (None, 1, 1, 32)     0           conv2d_521[0][0]                 \n__________________________________________________________________________________________________\nconv2d_522 (Conv2D)             (None, 1, 1, 768)    25344       swish_391[0][0]                  \n__________________________________________________________________________________________________\nactivation_132 (Activation)     (None, 1, 1, 768)    0           conv2d_522[0][0]                 \n__________________________________________________________________________________________________\nmultiply_132 (Multiply)         (None, 14, 14, 768)  0           activation_132[0][0]             \n                                                                 swish_390[0][0]                  \n__________________________________________________________________________________________________\nconv2d_523 (Conv2D)             (None, 14, 14, 128)  98304       multiply_132[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_391 (BatchN (None, 14, 14, 128)  512         conv2d_523[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_107 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_391[0][0]    \n__________________________________________________________________________________________________\nadd_107 (Add)                   (None, 14, 14, 128)  0           drop_connect_107[0][0]           \n                                                                 batch_normalization_388[0][0]    \n__________________________________________________________________________________________________\nconv2d_524 (Conv2D)             (None, 14, 14, 768)  98304       add_107[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_392 (BatchN (None, 14, 14, 768)  3072        conv2d_524[0][0]                 \n__________________________________________________________________________________________________\nswish_392 (Swish)               (None, 14, 14, 768)  0           batch_normalization_392[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_133 (Depthwise (None, 14, 14, 768)  6912        swish_392[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_393 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_133[0][0]       \n__________________________________________________________________________________________________\nswish_393 (Swish)               (None, 14, 14, 768)  0           batch_normalization_393[0][0]    \n__________________________________________________________________________________________________\nlambda_133 (Lambda)             (None, 1, 1, 768)    0           swish_393[0][0]                  \n__________________________________________________________________________________________________\nconv2d_525 (Conv2D)             (None, 1, 1, 32)     24608       lambda_133[0][0]                 \n__________________________________________________________________________________________________\nswish_394 (Swish)               (None, 1, 1, 32)     0           conv2d_525[0][0]                 \n__________________________________________________________________________________________________\nconv2d_526 (Conv2D)             (None, 1, 1, 768)    25344       swish_394[0][0]                  \n__________________________________________________________________________________________________\nactivation_133 (Activation)     (None, 1, 1, 768)    0           conv2d_526[0][0]                 \n__________________________________________________________________________________________________\nmultiply_133 (Multiply)         (None, 14, 14, 768)  0           activation_133[0][0]             \n                                                                 swish_393[0][0]                  \n__________________________________________________________________________________________________\nconv2d_527 (Conv2D)             (None, 14, 14, 128)  98304       multiply_133[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_394 (BatchN (None, 14, 14, 128)  512         conv2d_527[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_108 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_394[0][0]    \n__________________________________________________________________________________________________\nadd_108 (Add)                   (None, 14, 14, 128)  0           drop_connect_108[0][0]           \n                                                                 add_107[0][0]                    \n__________________________________________________________________________________________________\nconv2d_528 (Conv2D)             (None, 14, 14, 768)  98304       add_108[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_395 (BatchN (None, 14, 14, 768)  3072        conv2d_528[0][0]                 \n__________________________________________________________________________________________________\nswish_395 (Swish)               (None, 14, 14, 768)  0           batch_normalization_395[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_134 (Depthwise (None, 14, 14, 768)  6912        swish_395[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_396 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_134[0][0]       \n__________________________________________________________________________________________________\nswish_396 (Swish)               (None, 14, 14, 768)  0           batch_normalization_396[0][0]    \n__________________________________________________________________________________________________\nlambda_134 (Lambda)             (None, 1, 1, 768)    0           swish_396[0][0]                  \n__________________________________________________________________________________________________\nconv2d_529 (Conv2D)             (None, 1, 1, 32)     24608       lambda_134[0][0]                 \n__________________________________________________________________________________________________\nswish_397 (Swish)               (None, 1, 1, 32)     0           conv2d_529[0][0]                 \n__________________________________________________________________________________________________\nconv2d_530 (Conv2D)             (None, 1, 1, 768)    25344       swish_397[0][0]                  \n__________________________________________________________________________________________________\nactivation_134 (Activation)     (None, 1, 1, 768)    0           conv2d_530[0][0]                 \n__________________________________________________________________________________________________\nmultiply_134 (Multiply)         (None, 14, 14, 768)  0           activation_134[0][0]             \n                                                                 swish_396[0][0]                  \n__________________________________________________________________________________________________\nconv2d_531 (Conv2D)             (None, 14, 14, 128)  98304       multiply_134[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_397 (BatchN (None, 14, 14, 128)  512         conv2d_531[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_109 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_397[0][0]    \n__________________________________________________________________________________________________\nadd_109 (Add)                   (None, 14, 14, 128)  0           drop_connect_109[0][0]           \n                                                                 add_108[0][0]                    \n__________________________________________________________________________________________________\nconv2d_532 (Conv2D)             (None, 14, 14, 768)  98304       add_109[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_398 (BatchN (None, 14, 14, 768)  3072        conv2d_532[0][0]                 \n__________________________________________________________________________________________________\nswish_398 (Swish)               (None, 14, 14, 768)  0           batch_normalization_398[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_135 (Depthwise (None, 14, 14, 768)  6912        swish_398[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_399 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_135[0][0]       \n__________________________________________________________________________________________________\nswish_399 (Swish)               (None, 14, 14, 768)  0           batch_normalization_399[0][0]    \n__________________________________________________________________________________________________\nlambda_135 (Lambda)             (None, 1, 1, 768)    0           swish_399[0][0]                  \n__________________________________________________________________________________________________\nconv2d_533 (Conv2D)             (None, 1, 1, 32)     24608       lambda_135[0][0]                 \n__________________________________________________________________________________________________\nswish_400 (Swish)               (None, 1, 1, 32)     0           conv2d_533[0][0]                 \n__________________________________________________________________________________________________\nconv2d_534 (Conv2D)             (None, 1, 1, 768)    25344       swish_400[0][0]                  \n__________________________________________________________________________________________________\nactivation_135 (Activation)     (None, 1, 1, 768)    0           conv2d_534[0][0]                 \n__________________________________________________________________________________________________\nmultiply_135 (Multiply)         (None, 14, 14, 768)  0           activation_135[0][0]             \n                                                                 swish_399[0][0]                  \n__________________________________________________________________________________________________\nconv2d_535 (Conv2D)             (None, 14, 14, 128)  98304       multiply_135[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_400 (BatchN (None, 14, 14, 128)  512         conv2d_535[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_110 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_400[0][0]    \n__________________________________________________________________________________________________\nadd_110 (Add)                   (None, 14, 14, 128)  0           drop_connect_110[0][0]           \n                                                                 add_109[0][0]                    \n__________________________________________________________________________________________________\nconv2d_536 (Conv2D)             (None, 14, 14, 768)  98304       add_110[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_401 (BatchN (None, 14, 14, 768)  3072        conv2d_536[0][0]                 \n__________________________________________________________________________________________________\nswish_401 (Swish)               (None, 14, 14, 768)  0           batch_normalization_401[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_136 (Depthwise (None, 14, 14, 768)  6912        swish_401[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_402 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_136[0][0]       \n__________________________________________________________________________________________________\nswish_402 (Swish)               (None, 14, 14, 768)  0           batch_normalization_402[0][0]    \n__________________________________________________________________________________________________\nlambda_136 (Lambda)             (None, 1, 1, 768)    0           swish_402[0][0]                  \n__________________________________________________________________________________________________\nconv2d_537 (Conv2D)             (None, 1, 1, 32)     24608       lambda_136[0][0]                 \n__________________________________________________________________________________________________\nswish_403 (Swish)               (None, 1, 1, 32)     0           conv2d_537[0][0]                 \n__________________________________________________________________________________________________\nconv2d_538 (Conv2D)             (None, 1, 1, 768)    25344       swish_403[0][0]                  \n__________________________________________________________________________________________________\nactivation_136 (Activation)     (None, 1, 1, 768)    0           conv2d_538[0][0]                 \n__________________________________________________________________________________________________\nmultiply_136 (Multiply)         (None, 14, 14, 768)  0           activation_136[0][0]             \n                                                                 swish_402[0][0]                  \n__________________________________________________________________________________________________\nconv2d_539 (Conv2D)             (None, 14, 14, 128)  98304       multiply_136[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_403 (BatchN (None, 14, 14, 128)  512         conv2d_539[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_111 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_403[0][0]    \n__________________________________________________________________________________________________\nadd_111 (Add)                   (None, 14, 14, 128)  0           drop_connect_111[0][0]           \n                                                                 add_110[0][0]                    \n__________________________________________________________________________________________________\nconv2d_540 (Conv2D)             (None, 14, 14, 768)  98304       add_111[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_404 (BatchN (None, 14, 14, 768)  3072        conv2d_540[0][0]                 \n__________________________________________________________________________________________________\nswish_404 (Swish)               (None, 14, 14, 768)  0           batch_normalization_404[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_137 (Depthwise (None, 14, 14, 768)  6912        swish_404[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_405 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_137[0][0]       \n__________________________________________________________________________________________________\nswish_405 (Swish)               (None, 14, 14, 768)  0           batch_normalization_405[0][0]    \n__________________________________________________________________________________________________\nlambda_137 (Lambda)             (None, 1, 1, 768)    0           swish_405[0][0]                  \n__________________________________________________________________________________________________\nconv2d_541 (Conv2D)             (None, 1, 1, 32)     24608       lambda_137[0][0]                 \n__________________________________________________________________________________________________\nswish_406 (Swish)               (None, 1, 1, 32)     0           conv2d_541[0][0]                 \n__________________________________________________________________________________________________\nconv2d_542 (Conv2D)             (None, 1, 1, 768)    25344       swish_406[0][0]                  \n__________________________________________________________________________________________________\nactivation_137 (Activation)     (None, 1, 1, 768)    0           conv2d_542[0][0]                 \n__________________________________________________________________________________________________\nmultiply_137 (Multiply)         (None, 14, 14, 768)  0           activation_137[0][0]             \n                                                                 swish_405[0][0]                  \n__________________________________________________________________________________________________\nconv2d_543 (Conv2D)             (None, 14, 14, 128)  98304       multiply_137[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_406 (BatchN (None, 14, 14, 128)  512         conv2d_543[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_112 (DropConnect)  (None, 14, 14, 128)  0           batch_normalization_406[0][0]    \n__________________________________________________________________________________________________\nadd_112 (Add)                   (None, 14, 14, 128)  0           drop_connect_112[0][0]           \n                                                                 add_111[0][0]                    \n__________________________________________________________________________________________________\nconv2d_544 (Conv2D)             (None, 14, 14, 768)  98304       add_112[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_407 (BatchN (None, 14, 14, 768)  3072        conv2d_544[0][0]                 \n__________________________________________________________________________________________________\nswish_407 (Swish)               (None, 14, 14, 768)  0           batch_normalization_407[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_138 (Depthwise (None, 14, 14, 768)  19200       swish_407[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_408 (BatchN (None, 14, 14, 768)  3072        depthwise_conv2d_138[0][0]       \n__________________________________________________________________________________________________\nswish_408 (Swish)               (None, 14, 14, 768)  0           batch_normalization_408[0][0]    \n__________________________________________________________________________________________________\nlambda_138 (Lambda)             (None, 1, 1, 768)    0           swish_408[0][0]                  \n__________________________________________________________________________________________________\nconv2d_545 (Conv2D)             (None, 1, 1, 32)     24608       lambda_138[0][0]                 \n__________________________________________________________________________________________________\nswish_409 (Swish)               (None, 1, 1, 32)     0           conv2d_545[0][0]                 \n__________________________________________________________________________________________________\nconv2d_546 (Conv2D)             (None, 1, 1, 768)    25344       swish_409[0][0]                  \n__________________________________________________________________________________________________\nactivation_138 (Activation)     (None, 1, 1, 768)    0           conv2d_546[0][0]                 \n__________________________________________________________________________________________________\nmultiply_138 (Multiply)         (None, 14, 14, 768)  0           activation_138[0][0]             \n                                                                 swish_408[0][0]                  \n__________________________________________________________________________________________________\nconv2d_547 (Conv2D)             (None, 14, 14, 176)  135168      multiply_138[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_409 (BatchN (None, 14, 14, 176)  704         conv2d_547[0][0]                 \n__________________________________________________________________________________________________\nconv2d_548 (Conv2D)             (None, 14, 14, 1056) 185856      batch_normalization_409[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_410 (BatchN (None, 14, 14, 1056) 4224        conv2d_548[0][0]                 \n__________________________________________________________________________________________________\nswish_410 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_410[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_139 (Depthwise (None, 14, 14, 1056) 26400       swish_410[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_411 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_139[0][0]       \n__________________________________________________________________________________________________\nswish_411 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_411[0][0]    \n__________________________________________________________________________________________________\nlambda_139 (Lambda)             (None, 1, 1, 1056)   0           swish_411[0][0]                  \n__________________________________________________________________________________________________\nconv2d_549 (Conv2D)             (None, 1, 1, 44)     46508       lambda_139[0][0]                 \n__________________________________________________________________________________________________\nswish_412 (Swish)               (None, 1, 1, 44)     0           conv2d_549[0][0]                 \n__________________________________________________________________________________________________\nconv2d_550 (Conv2D)             (None, 1, 1, 1056)   47520       swish_412[0][0]                  \n__________________________________________________________________________________________________\nactivation_139 (Activation)     (None, 1, 1, 1056)   0           conv2d_550[0][0]                 \n__________________________________________________________________________________________________\nmultiply_139 (Multiply)         (None, 14, 14, 1056) 0           activation_139[0][0]             \n                                                                 swish_411[0][0]                  \n__________________________________________________________________________________________________\nconv2d_551 (Conv2D)             (None, 14, 14, 176)  185856      multiply_139[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_412 (BatchN (None, 14, 14, 176)  704         conv2d_551[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_113 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_412[0][0]    \n__________________________________________________________________________________________________\nadd_113 (Add)                   (None, 14, 14, 176)  0           drop_connect_113[0][0]           \n                                                                 batch_normalization_409[0][0]    \n__________________________________________________________________________________________________\nconv2d_552 (Conv2D)             (None, 14, 14, 1056) 185856      add_113[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_413 (BatchN (None, 14, 14, 1056) 4224        conv2d_552[0][0]                 \n__________________________________________________________________________________________________\nswish_413 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_413[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_140 (Depthwise (None, 14, 14, 1056) 26400       swish_413[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_414 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_140[0][0]       \n__________________________________________________________________________________________________\nswish_414 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_414[0][0]    \n__________________________________________________________________________________________________\nlambda_140 (Lambda)             (None, 1, 1, 1056)   0           swish_414[0][0]                  \n__________________________________________________________________________________________________\nconv2d_553 (Conv2D)             (None, 1, 1, 44)     46508       lambda_140[0][0]                 \n__________________________________________________________________________________________________\nswish_415 (Swish)               (None, 1, 1, 44)     0           conv2d_553[0][0]                 \n__________________________________________________________________________________________________\nconv2d_554 (Conv2D)             (None, 1, 1, 1056)   47520       swish_415[0][0]                  \n__________________________________________________________________________________________________\nactivation_140 (Activation)     (None, 1, 1, 1056)   0           conv2d_554[0][0]                 \n__________________________________________________________________________________________________\nmultiply_140 (Multiply)         (None, 14, 14, 1056) 0           activation_140[0][0]             \n                                                                 swish_414[0][0]                  \n__________________________________________________________________________________________________\nconv2d_555 (Conv2D)             (None, 14, 14, 176)  185856      multiply_140[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_415 (BatchN (None, 14, 14, 176)  704         conv2d_555[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_114 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_415[0][0]    \n__________________________________________________________________________________________________\nadd_114 (Add)                   (None, 14, 14, 176)  0           drop_connect_114[0][0]           \n                                                                 add_113[0][0]                    \n__________________________________________________________________________________________________\nconv2d_556 (Conv2D)             (None, 14, 14, 1056) 185856      add_114[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_416 (BatchN (None, 14, 14, 1056) 4224        conv2d_556[0][0]                 \n__________________________________________________________________________________________________\nswish_416 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_416[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_141 (Depthwise (None, 14, 14, 1056) 26400       swish_416[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_417 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_141[0][0]       \n__________________________________________________________________________________________________\nswish_417 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_417[0][0]    \n__________________________________________________________________________________________________\nlambda_141 (Lambda)             (None, 1, 1, 1056)   0           swish_417[0][0]                  \n__________________________________________________________________________________________________\nconv2d_557 (Conv2D)             (None, 1, 1, 44)     46508       lambda_141[0][0]                 \n__________________________________________________________________________________________________\nswish_418 (Swish)               (None, 1, 1, 44)     0           conv2d_557[0][0]                 \n__________________________________________________________________________________________________\nconv2d_558 (Conv2D)             (None, 1, 1, 1056)   47520       swish_418[0][0]                  \n__________________________________________________________________________________________________\nactivation_141 (Activation)     (None, 1, 1, 1056)   0           conv2d_558[0][0]                 \n__________________________________________________________________________________________________\nmultiply_141 (Multiply)         (None, 14, 14, 1056) 0           activation_141[0][0]             \n                                                                 swish_417[0][0]                  \n__________________________________________________________________________________________________\nconv2d_559 (Conv2D)             (None, 14, 14, 176)  185856      multiply_141[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_418 (BatchN (None, 14, 14, 176)  704         conv2d_559[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_115 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_418[0][0]    \n__________________________________________________________________________________________________\nadd_115 (Add)                   (None, 14, 14, 176)  0           drop_connect_115[0][0]           \n                                                                 add_114[0][0]                    \n__________________________________________________________________________________________________\nconv2d_560 (Conv2D)             (None, 14, 14, 1056) 185856      add_115[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_419 (BatchN (None, 14, 14, 1056) 4224        conv2d_560[0][0]                 \n__________________________________________________________________________________________________\nswish_419 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_419[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_142 (Depthwise (None, 14, 14, 1056) 26400       swish_419[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_420 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_142[0][0]       \n__________________________________________________________________________________________________\nswish_420 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_420[0][0]    \n__________________________________________________________________________________________________\nlambda_142 (Lambda)             (None, 1, 1, 1056)   0           swish_420[0][0]                  \n__________________________________________________________________________________________________\nconv2d_561 (Conv2D)             (None, 1, 1, 44)     46508       lambda_142[0][0]                 \n__________________________________________________________________________________________________\nswish_421 (Swish)               (None, 1, 1, 44)     0           conv2d_561[0][0]                 \n__________________________________________________________________________________________________\nconv2d_562 (Conv2D)             (None, 1, 1, 1056)   47520       swish_421[0][0]                  \n__________________________________________________________________________________________________\nactivation_142 (Activation)     (None, 1, 1, 1056)   0           conv2d_562[0][0]                 \n__________________________________________________________________________________________________\nmultiply_142 (Multiply)         (None, 14, 14, 1056) 0           activation_142[0][0]             \n                                                                 swish_420[0][0]                  \n__________________________________________________________________________________________________\nconv2d_563 (Conv2D)             (None, 14, 14, 176)  185856      multiply_142[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_421 (BatchN (None, 14, 14, 176)  704         conv2d_563[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_116 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_421[0][0]    \n__________________________________________________________________________________________________\nadd_116 (Add)                   (None, 14, 14, 176)  0           drop_connect_116[0][0]           \n                                                                 add_115[0][0]                    \n__________________________________________________________________________________________________\nconv2d_564 (Conv2D)             (None, 14, 14, 1056) 185856      add_116[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_422 (BatchN (None, 14, 14, 1056) 4224        conv2d_564[0][0]                 \n__________________________________________________________________________________________________\nswish_422 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_422[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_143 (Depthwise (None, 14, 14, 1056) 26400       swish_422[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_423 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_143[0][0]       \n__________________________________________________________________________________________________\nswish_423 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_423[0][0]    \n__________________________________________________________________________________________________\nlambda_143 (Lambda)             (None, 1, 1, 1056)   0           swish_423[0][0]                  \n__________________________________________________________________________________________________\nconv2d_565 (Conv2D)             (None, 1, 1, 44)     46508       lambda_143[0][0]                 \n__________________________________________________________________________________________________\nswish_424 (Swish)               (None, 1, 1, 44)     0           conv2d_565[0][0]                 \n__________________________________________________________________________________________________\nconv2d_566 (Conv2D)             (None, 1, 1, 1056)   47520       swish_424[0][0]                  \n__________________________________________________________________________________________________\nactivation_143 (Activation)     (None, 1, 1, 1056)   0           conv2d_566[0][0]                 \n__________________________________________________________________________________________________\nmultiply_143 (Multiply)         (None, 14, 14, 1056) 0           activation_143[0][0]             \n                                                                 swish_423[0][0]                  \n__________________________________________________________________________________________________\nconv2d_567 (Conv2D)             (None, 14, 14, 176)  185856      multiply_143[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_424 (BatchN (None, 14, 14, 176)  704         conv2d_567[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_117 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_424[0][0]    \n__________________________________________________________________________________________________\nadd_117 (Add)                   (None, 14, 14, 176)  0           drop_connect_117[0][0]           \n                                                                 add_116[0][0]                    \n__________________________________________________________________________________________________\nconv2d_568 (Conv2D)             (None, 14, 14, 1056) 185856      add_117[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_425 (BatchN (None, 14, 14, 1056) 4224        conv2d_568[0][0]                 \n__________________________________________________________________________________________________\nswish_425 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_425[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_144 (Depthwise (None, 14, 14, 1056) 26400       swish_425[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_426 (BatchN (None, 14, 14, 1056) 4224        depthwise_conv2d_144[0][0]       \n__________________________________________________________________________________________________\nswish_426 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_426[0][0]    \n__________________________________________________________________________________________________\nlambda_144 (Lambda)             (None, 1, 1, 1056)   0           swish_426[0][0]                  \n__________________________________________________________________________________________________\nconv2d_569 (Conv2D)             (None, 1, 1, 44)     46508       lambda_144[0][0]                 \n__________________________________________________________________________________________________\nswish_427 (Swish)               (None, 1, 1, 44)     0           conv2d_569[0][0]                 \n__________________________________________________________________________________________________\nconv2d_570 (Conv2D)             (None, 1, 1, 1056)   47520       swish_427[0][0]                  \n__________________________________________________________________________________________________\nactivation_144 (Activation)     (None, 1, 1, 1056)   0           conv2d_570[0][0]                 \n__________________________________________________________________________________________________\nmultiply_144 (Multiply)         (None, 14, 14, 1056) 0           activation_144[0][0]             \n                                                                 swish_426[0][0]                  \n__________________________________________________________________________________________________\nconv2d_571 (Conv2D)             (None, 14, 14, 176)  185856      multiply_144[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_427 (BatchN (None, 14, 14, 176)  704         conv2d_571[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_118 (DropConnect)  (None, 14, 14, 176)  0           batch_normalization_427[0][0]    \n__________________________________________________________________________________________________\nadd_118 (Add)                   (None, 14, 14, 176)  0           drop_connect_118[0][0]           \n                                                                 add_117[0][0]                    \n__________________________________________________________________________________________________\nconv2d_572 (Conv2D)             (None, 14, 14, 1056) 185856      add_118[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_428 (BatchN (None, 14, 14, 1056) 4224        conv2d_572[0][0]                 \n__________________________________________________________________________________________________\nswish_428 (Swish)               (None, 14, 14, 1056) 0           batch_normalization_428[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_145 (Depthwise (None, 7, 7, 1056)   26400       swish_428[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_429 (BatchN (None, 7, 7, 1056)   4224        depthwise_conv2d_145[0][0]       \n__________________________________________________________________________________________________\nswish_429 (Swish)               (None, 7, 7, 1056)   0           batch_normalization_429[0][0]    \n__________________________________________________________________________________________________\nlambda_145 (Lambda)             (None, 1, 1, 1056)   0           swish_429[0][0]                  \n__________________________________________________________________________________________________\nconv2d_573 (Conv2D)             (None, 1, 1, 44)     46508       lambda_145[0][0]                 \n__________________________________________________________________________________________________\nswish_430 (Swish)               (None, 1, 1, 44)     0           conv2d_573[0][0]                 \n__________________________________________________________________________________________________\nconv2d_574 (Conv2D)             (None, 1, 1, 1056)   47520       swish_430[0][0]                  \n__________________________________________________________________________________________________\nactivation_145 (Activation)     (None, 1, 1, 1056)   0           conv2d_574[0][0]                 \n__________________________________________________________________________________________________\nmultiply_145 (Multiply)         (None, 7, 7, 1056)   0           activation_145[0][0]             \n                                                                 swish_429[0][0]                  \n__________________________________________________________________________________________________\nconv2d_575 (Conv2D)             (None, 7, 7, 304)    321024      multiply_145[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_430 (BatchN (None, 7, 7, 304)    1216        conv2d_575[0][0]                 \n__________________________________________________________________________________________________\nconv2d_576 (Conv2D)             (None, 7, 7, 1824)   554496      batch_normalization_430[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_431 (BatchN (None, 7, 7, 1824)   7296        conv2d_576[0][0]                 \n__________________________________________________________________________________________________\nswish_431 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_431[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_146 (Depthwise (None, 7, 7, 1824)   45600       swish_431[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_432 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_146[0][0]       \n__________________________________________________________________________________________________\nswish_432 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_432[0][0]    \n__________________________________________________________________________________________________\nlambda_146 (Lambda)             (None, 1, 1, 1824)   0           swish_432[0][0]                  \n__________________________________________________________________________________________________\nconv2d_577 (Conv2D)             (None, 1, 1, 76)     138700      lambda_146[0][0]                 \n__________________________________________________________________________________________________\nswish_433 (Swish)               (None, 1, 1, 76)     0           conv2d_577[0][0]                 \n__________________________________________________________________________________________________\nconv2d_578 (Conv2D)             (None, 1, 1, 1824)   140448      swish_433[0][0]                  \n__________________________________________________________________________________________________\nactivation_146 (Activation)     (None, 1, 1, 1824)   0           conv2d_578[0][0]                 \n__________________________________________________________________________________________________\nmultiply_146 (Multiply)         (None, 7, 7, 1824)   0           activation_146[0][0]             \n                                                                 swish_432[0][0]                  \n__________________________________________________________________________________________________\nconv2d_579 (Conv2D)             (None, 7, 7, 304)    554496      multiply_146[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_433 (BatchN (None, 7, 7, 304)    1216        conv2d_579[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_119 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_433[0][0]    \n__________________________________________________________________________________________________\nadd_119 (Add)                   (None, 7, 7, 304)    0           drop_connect_119[0][0]           \n                                                                 batch_normalization_430[0][0]    \n__________________________________________________________________________________________________\nconv2d_580 (Conv2D)             (None, 7, 7, 1824)   554496      add_119[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_434 (BatchN (None, 7, 7, 1824)   7296        conv2d_580[0][0]                 \n__________________________________________________________________________________________________\nswish_434 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_434[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_147 (Depthwise (None, 7, 7, 1824)   45600       swish_434[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_435 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_147[0][0]       \n__________________________________________________________________________________________________\nswish_435 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_435[0][0]    \n__________________________________________________________________________________________________\nlambda_147 (Lambda)             (None, 1, 1, 1824)   0           swish_435[0][0]                  \n__________________________________________________________________________________________________\nconv2d_581 (Conv2D)             (None, 1, 1, 76)     138700      lambda_147[0][0]                 \n__________________________________________________________________________________________________\nswish_436 (Swish)               (None, 1, 1, 76)     0           conv2d_581[0][0]                 \n__________________________________________________________________________________________________\nconv2d_582 (Conv2D)             (None, 1, 1, 1824)   140448      swish_436[0][0]                  \n__________________________________________________________________________________________________\nactivation_147 (Activation)     (None, 1, 1, 1824)   0           conv2d_582[0][0]                 \n__________________________________________________________________________________________________\nmultiply_147 (Multiply)         (None, 7, 7, 1824)   0           activation_147[0][0]             \n                                                                 swish_435[0][0]                  \n__________________________________________________________________________________________________\nconv2d_583 (Conv2D)             (None, 7, 7, 304)    554496      multiply_147[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_436 (BatchN (None, 7, 7, 304)    1216        conv2d_583[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_120 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_436[0][0]    \n__________________________________________________________________________________________________\nadd_120 (Add)                   (None, 7, 7, 304)    0           drop_connect_120[0][0]           \n                                                                 add_119[0][0]                    \n__________________________________________________________________________________________________\nconv2d_584 (Conv2D)             (None, 7, 7, 1824)   554496      add_120[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_437 (BatchN (None, 7, 7, 1824)   7296        conv2d_584[0][0]                 \n__________________________________________________________________________________________________\nswish_437 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_437[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_148 (Depthwise (None, 7, 7, 1824)   45600       swish_437[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_438 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_148[0][0]       \n__________________________________________________________________________________________________\nswish_438 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_438[0][0]    \n__________________________________________________________________________________________________\nlambda_148 (Lambda)             (None, 1, 1, 1824)   0           swish_438[0][0]                  \n__________________________________________________________________________________________________\nconv2d_585 (Conv2D)             (None, 1, 1, 76)     138700      lambda_148[0][0]                 \n__________________________________________________________________________________________________\nswish_439 (Swish)               (None, 1, 1, 76)     0           conv2d_585[0][0]                 \n__________________________________________________________________________________________________\nconv2d_586 (Conv2D)             (None, 1, 1, 1824)   140448      swish_439[0][0]                  \n__________________________________________________________________________________________________\nactivation_148 (Activation)     (None, 1, 1, 1824)   0           conv2d_586[0][0]                 \n__________________________________________________________________________________________________\nmultiply_148 (Multiply)         (None, 7, 7, 1824)   0           activation_148[0][0]             \n                                                                 swish_438[0][0]                  \n__________________________________________________________________________________________________\nconv2d_587 (Conv2D)             (None, 7, 7, 304)    554496      multiply_148[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_439 (BatchN (None, 7, 7, 304)    1216        conv2d_587[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_121 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_439[0][0]    \n__________________________________________________________________________________________________\nadd_121 (Add)                   (None, 7, 7, 304)    0           drop_connect_121[0][0]           \n                                                                 add_120[0][0]                    \n__________________________________________________________________________________________________\nconv2d_588 (Conv2D)             (None, 7, 7, 1824)   554496      add_121[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_440 (BatchN (None, 7, 7, 1824)   7296        conv2d_588[0][0]                 \n__________________________________________________________________________________________________\nswish_440 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_440[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_149 (Depthwise (None, 7, 7, 1824)   45600       swish_440[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_441 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_149[0][0]       \n__________________________________________________________________________________________________\nswish_441 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_441[0][0]    \n__________________________________________________________________________________________________\nlambda_149 (Lambda)             (None, 1, 1, 1824)   0           swish_441[0][0]                  \n__________________________________________________________________________________________________\nconv2d_589 (Conv2D)             (None, 1, 1, 76)     138700      lambda_149[0][0]                 \n__________________________________________________________________________________________________\nswish_442 (Swish)               (None, 1, 1, 76)     0           conv2d_589[0][0]                 \n__________________________________________________________________________________________________\nconv2d_590 (Conv2D)             (None, 1, 1, 1824)   140448      swish_442[0][0]                  \n__________________________________________________________________________________________________\nactivation_149 (Activation)     (None, 1, 1, 1824)   0           conv2d_590[0][0]                 \n__________________________________________________________________________________________________\nmultiply_149 (Multiply)         (None, 7, 7, 1824)   0           activation_149[0][0]             \n                                                                 swish_441[0][0]                  \n__________________________________________________________________________________________________\nconv2d_591 (Conv2D)             (None, 7, 7, 304)    554496      multiply_149[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_442 (BatchN (None, 7, 7, 304)    1216        conv2d_591[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_122 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_442[0][0]    \n__________________________________________________________________________________________________\nadd_122 (Add)                   (None, 7, 7, 304)    0           drop_connect_122[0][0]           \n                                                                 add_121[0][0]                    \n__________________________________________________________________________________________________\nconv2d_592 (Conv2D)             (None, 7, 7, 1824)   554496      add_122[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_443 (BatchN (None, 7, 7, 1824)   7296        conv2d_592[0][0]                 \n__________________________________________________________________________________________________\nswish_443 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_443[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_150 (Depthwise (None, 7, 7, 1824)   45600       swish_443[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_444 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_150[0][0]       \n__________________________________________________________________________________________________\nswish_444 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_444[0][0]    \n__________________________________________________________________________________________________\nlambda_150 (Lambda)             (None, 1, 1, 1824)   0           swish_444[0][0]                  \n__________________________________________________________________________________________________\nconv2d_593 (Conv2D)             (None, 1, 1, 76)     138700      lambda_150[0][0]                 \n__________________________________________________________________________________________________\nswish_445 (Swish)               (None, 1, 1, 76)     0           conv2d_593[0][0]                 \n__________________________________________________________________________________________________\nconv2d_594 (Conv2D)             (None, 1, 1, 1824)   140448      swish_445[0][0]                  \n__________________________________________________________________________________________________\nactivation_150 (Activation)     (None, 1, 1, 1824)   0           conv2d_594[0][0]                 \n__________________________________________________________________________________________________\nmultiply_150 (Multiply)         (None, 7, 7, 1824)   0           activation_150[0][0]             \n                                                                 swish_444[0][0]                  \n__________________________________________________________________________________________________\nconv2d_595 (Conv2D)             (None, 7, 7, 304)    554496      multiply_150[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_445 (BatchN (None, 7, 7, 304)    1216        conv2d_595[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_123 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_445[0][0]    \n__________________________________________________________________________________________________\nadd_123 (Add)                   (None, 7, 7, 304)    0           drop_connect_123[0][0]           \n                                                                 add_122[0][0]                    \n__________________________________________________________________________________________________\nconv2d_596 (Conv2D)             (None, 7, 7, 1824)   554496      add_123[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_446 (BatchN (None, 7, 7, 1824)   7296        conv2d_596[0][0]                 \n__________________________________________________________________________________________________\nswish_446 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_446[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_151 (Depthwise (None, 7, 7, 1824)   45600       swish_446[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_447 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_151[0][0]       \n__________________________________________________________________________________________________\nswish_447 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_447[0][0]    \n__________________________________________________________________________________________________\nlambda_151 (Lambda)             (None, 1, 1, 1824)   0           swish_447[0][0]                  \n__________________________________________________________________________________________________\nconv2d_597 (Conv2D)             (None, 1, 1, 76)     138700      lambda_151[0][0]                 \n__________________________________________________________________________________________________\nswish_448 (Swish)               (None, 1, 1, 76)     0           conv2d_597[0][0]                 \n__________________________________________________________________________________________________\nconv2d_598 (Conv2D)             (None, 1, 1, 1824)   140448      swish_448[0][0]                  \n__________________________________________________________________________________________________\nactivation_151 (Activation)     (None, 1, 1, 1824)   0           conv2d_598[0][0]                 \n__________________________________________________________________________________________________\nmultiply_151 (Multiply)         (None, 7, 7, 1824)   0           activation_151[0][0]             \n                                                                 swish_447[0][0]                  \n__________________________________________________________________________________________________\nconv2d_599 (Conv2D)             (None, 7, 7, 304)    554496      multiply_151[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_448 (BatchN (None, 7, 7, 304)    1216        conv2d_599[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_124 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_448[0][0]    \n__________________________________________________________________________________________________\nadd_124 (Add)                   (None, 7, 7, 304)    0           drop_connect_124[0][0]           \n                                                                 add_123[0][0]                    \n__________________________________________________________________________________________________\nconv2d_600 (Conv2D)             (None, 7, 7, 1824)   554496      add_124[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_449 (BatchN (None, 7, 7, 1824)   7296        conv2d_600[0][0]                 \n__________________________________________________________________________________________________\nswish_449 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_449[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_152 (Depthwise (None, 7, 7, 1824)   45600       swish_449[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_450 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_152[0][0]       \n__________________________________________________________________________________________________\nswish_450 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_450[0][0]    \n__________________________________________________________________________________________________\nlambda_152 (Lambda)             (None, 1, 1, 1824)   0           swish_450[0][0]                  \n__________________________________________________________________________________________________\nconv2d_601 (Conv2D)             (None, 1, 1, 76)     138700      lambda_152[0][0]                 \n__________________________________________________________________________________________________\nswish_451 (Swish)               (None, 1, 1, 76)     0           conv2d_601[0][0]                 \n__________________________________________________________________________________________________\nconv2d_602 (Conv2D)             (None, 1, 1, 1824)   140448      swish_451[0][0]                  \n__________________________________________________________________________________________________\nactivation_152 (Activation)     (None, 1, 1, 1824)   0           conv2d_602[0][0]                 \n__________________________________________________________________________________________________\nmultiply_152 (Multiply)         (None, 7, 7, 1824)   0           activation_152[0][0]             \n                                                                 swish_450[0][0]                  \n__________________________________________________________________________________________________\nconv2d_603 (Conv2D)             (None, 7, 7, 304)    554496      multiply_152[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_451 (BatchN (None, 7, 7, 304)    1216        conv2d_603[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_125 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_451[0][0]    \n__________________________________________________________________________________________________\nadd_125 (Add)                   (None, 7, 7, 304)    0           drop_connect_125[0][0]           \n                                                                 add_124[0][0]                    \n__________________________________________________________________________________________________\nconv2d_604 (Conv2D)             (None, 7, 7, 1824)   554496      add_125[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_452 (BatchN (None, 7, 7, 1824)   7296        conv2d_604[0][0]                 \n__________________________________________________________________________________________________\nswish_452 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_452[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_153 (Depthwise (None, 7, 7, 1824)   45600       swish_452[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_453 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_153[0][0]       \n__________________________________________________________________________________________________\nswish_453 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_453[0][0]    \n__________________________________________________________________________________________________\nlambda_153 (Lambda)             (None, 1, 1, 1824)   0           swish_453[0][0]                  \n__________________________________________________________________________________________________\nconv2d_605 (Conv2D)             (None, 1, 1, 76)     138700      lambda_153[0][0]                 \n__________________________________________________________________________________________________\nswish_454 (Swish)               (None, 1, 1, 76)     0           conv2d_605[0][0]                 \n__________________________________________________________________________________________________\nconv2d_606 (Conv2D)             (None, 1, 1, 1824)   140448      swish_454[0][0]                  \n__________________________________________________________________________________________________\nactivation_153 (Activation)     (None, 1, 1, 1824)   0           conv2d_606[0][0]                 \n__________________________________________________________________________________________________\nmultiply_153 (Multiply)         (None, 7, 7, 1824)   0           activation_153[0][0]             \n                                                                 swish_453[0][0]                  \n__________________________________________________________________________________________________\nconv2d_607 (Conv2D)             (None, 7, 7, 304)    554496      multiply_153[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_454 (BatchN (None, 7, 7, 304)    1216        conv2d_607[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_126 (DropConnect)  (None, 7, 7, 304)    0           batch_normalization_454[0][0]    \n__________________________________________________________________________________________________\nadd_126 (Add)                   (None, 7, 7, 304)    0           drop_connect_126[0][0]           \n                                                                 add_125[0][0]                    \n__________________________________________________________________________________________________\nconv2d_608 (Conv2D)             (None, 7, 7, 1824)   554496      add_126[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_455 (BatchN (None, 7, 7, 1824)   7296        conv2d_608[0][0]                 \n__________________________________________________________________________________________________\nswish_455 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_455[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_154 (Depthwise (None, 7, 7, 1824)   16416       swish_455[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_456 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_154[0][0]       \n__________________________________________________________________________________________________\nswish_456 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_456[0][0]    \n__________________________________________________________________________________________________\nlambda_154 (Lambda)             (None, 1, 1, 1824)   0           swish_456[0][0]                  \n__________________________________________________________________________________________________\nconv2d_609 (Conv2D)             (None, 1, 1, 76)     138700      lambda_154[0][0]                 \n__________________________________________________________________________________________________\nswish_457 (Swish)               (None, 1, 1, 76)     0           conv2d_609[0][0]                 \n__________________________________________________________________________________________________\nconv2d_610 (Conv2D)             (None, 1, 1, 1824)   140448      swish_457[0][0]                  \n__________________________________________________________________________________________________\nactivation_154 (Activation)     (None, 1, 1, 1824)   0           conv2d_610[0][0]                 \n__________________________________________________________________________________________________\nmultiply_154 (Multiply)         (None, 7, 7, 1824)   0           activation_154[0][0]             \n                                                                 swish_456[0][0]                  \n__________________________________________________________________________________________________\nconv2d_611 (Conv2D)             (None, 7, 7, 512)    933888      multiply_154[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_457 (BatchN (None, 7, 7, 512)    2048        conv2d_611[0][0]                 \n__________________________________________________________________________________________________\nconv2d_612 (Conv2D)             (None, 7, 7, 3072)   1572864     batch_normalization_457[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_458 (BatchN (None, 7, 7, 3072)   12288       conv2d_612[0][0]                 \n__________________________________________________________________________________________________\nswish_458 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_458[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_155 (Depthwise (None, 7, 7, 3072)   27648       swish_458[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_459 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_155[0][0]       \n__________________________________________________________________________________________________\nswish_459 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_459[0][0]    \n__________________________________________________________________________________________________\nlambda_155 (Lambda)             (None, 1, 1, 3072)   0           swish_459[0][0]                  \n__________________________________________________________________________________________________\nconv2d_613 (Conv2D)             (None, 1, 1, 128)    393344      lambda_155[0][0]                 \n__________________________________________________________________________________________________\nswish_460 (Swish)               (None, 1, 1, 128)    0           conv2d_613[0][0]                 \n__________________________________________________________________________________________________\nconv2d_614 (Conv2D)             (None, 1, 1, 3072)   396288      swish_460[0][0]                  \n__________________________________________________________________________________________________\nactivation_155 (Activation)     (None, 1, 1, 3072)   0           conv2d_614[0][0]                 \n__________________________________________________________________________________________________\nmultiply_155 (Multiply)         (None, 7, 7, 3072)   0           activation_155[0][0]             \n                                                                 swish_459[0][0]                  \n__________________________________________________________________________________________________\nconv2d_615 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_155[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_460 (BatchN (None, 7, 7, 512)    2048        conv2d_615[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_127 (DropConnect)  (None, 7, 7, 512)    0           batch_normalization_460[0][0]    \n__________________________________________________________________________________________________\nadd_127 (Add)                   (None, 7, 7, 512)    0           drop_connect_127[0][0]           \n                                                                 batch_normalization_457[0][0]    \n__________________________________________________________________________________________________\nconv2d_616 (Conv2D)             (None, 7, 7, 3072)   1572864     add_127[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_461 (BatchN (None, 7, 7, 3072)   12288       conv2d_616[0][0]                 \n__________________________________________________________________________________________________\nswish_461 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_461[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_156 (Depthwise (None, 7, 7, 3072)   27648       swish_461[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_462 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_156[0][0]       \n__________________________________________________________________________________________________\nswish_462 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_462[0][0]    \n__________________________________________________________________________________________________\nlambda_156 (Lambda)             (None, 1, 1, 3072)   0           swish_462[0][0]                  \n__________________________________________________________________________________________________\nconv2d_617 (Conv2D)             (None, 1, 1, 128)    393344      lambda_156[0][0]                 \n__________________________________________________________________________________________________\nswish_463 (Swish)               (None, 1, 1, 128)    0           conv2d_617[0][0]                 \n__________________________________________________________________________________________________\nconv2d_618 (Conv2D)             (None, 1, 1, 3072)   396288      swish_463[0][0]                  \n__________________________________________________________________________________________________\nactivation_156 (Activation)     (None, 1, 1, 3072)   0           conv2d_618[0][0]                 \n__________________________________________________________________________________________________\nmultiply_156 (Multiply)         (None, 7, 7, 3072)   0           activation_156[0][0]             \n                                                                 swish_462[0][0]                  \n__________________________________________________________________________________________________\nconv2d_619 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_156[0][0]               \n__________________________________________________________________________________________________\nbatch_normalization_463 (BatchN (None, 7, 7, 512)    2048        conv2d_619[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_128 (DropConnect)  (None, 7, 7, 512)    0           batch_normalization_463[0][0]    \n__________________________________________________________________________________________________\nadd_128 (Add)                   (None, 7, 7, 512)    0           drop_connect_128[0][0]           \n                                                                 add_127[0][0]                    \n__________________________________________________________________________________________________\nconv2d_620 (Conv2D)             (None, 7, 7, 2048)   1048576     add_128[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_464 (BatchN (None, 7, 7, 2048)   8192        conv2d_620[0][0]                 \n__________________________________________________________________________________________________\nswish_464 (Swish)               (None, 7, 7, 2048)   0           batch_normalization_464[0][0]    \n__________________________________________________________________________________________________\nglobal_average_pooling2d_3 (Glo (None, 2048)         0           swish_464[0][0]                  \n__________________________________________________________________________________________________\ndropout_3 (Dropout)             (None, 2048)         0           global_average_pooling2d_3[0][0] \n__________________________________________________________________________________________________\ndense_2 (Dense)                 (None, 2048)         4196352     dropout_3[0][0]                  \n__________________________________________________________________________________________________\ndropout_4 (Dropout)             (None, 2048)         0           dense_2[0][0]                    \n__________________________________________________________________________________________________\nfinal_output (Dense)            (None, 5)            10245       dropout_4[0][0]                  \n==================================================================================================\nTotal params: 32,720,117\nTrainable params: 32,547,381\nNon-trainable params: 172,736\n__________________________________________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"history = model.fit_generator(generator=train_generator,\n                              steps_per_epoch=STEP_SIZE_TRAIN,\n                              validation_data=valid_generator,\n                              validation_steps=STEP_SIZE_VALID,\n                              epochs=EPOCHS,\n                              callbacks=callback_list,\n                              verbose=1).history","metadata":{"execution":{"iopub.status.busy":"2024-06-03T17:24:34.932909Z","iopub.execute_input":"2024-06-03T17:24:34.933247Z","iopub.status.idle":"2024-06-03T18:04:40.182319Z","shell.execute_reply.started":"2024-06-03T17:24:34.933186Z","shell.execute_reply":"2024-06-03T18:04:40.181221Z"},"trusted":true},"execution_count":45,"outputs":[{"name":"stdout","text":"Epoch 1/20\n91/91 [==============================] - 165s 2s/step - loss: 0.8346 - acc: 0.6936 - val_loss: 0.6156 - val_acc: 0.7989\nEpoch 2/20\n91/91 [==============================] - 116s 1s/step - loss: 0.7112 - acc: 0.7441 - val_loss: 0.5662 - val_acc: 0.7974\nEpoch 3/20\n91/91 [==============================] - 116s 1s/step - loss: 0.6165 - acc: 0.7776 - val_loss: 0.4903 - val_acc: 0.8345\nEpoch 4/20\n91/91 [==============================] - 116s 1s/step - loss: 0.5461 - acc: 0.7993 - val_loss: 0.4919 - val_acc: 0.8160\nEpoch 5/20\n91/91 [==============================] - 116s 1s/step - loss: 0.5465 - acc: 0.7915 - val_loss: 0.4896 - val_acc: 0.8160\nEpoch 6/20\n91/91 [==============================] - 116s 1s/step - loss: 0.4742 - acc: 0.8185 - val_loss: 0.4979 - val_acc: 0.8188\nEpoch 7/20\n91/91 [==============================] - 117s 1s/step - loss: 0.4541 - acc: 0.8283 - val_loss: 0.5340 - val_acc: 0.8217\nEpoch 8/20\n91/91 [==============================] - 116s 1s/step - loss: 0.4252 - acc: 0.8448 - val_loss: 0.5624 - val_acc: 0.8359\n\nEpoch 00008: ReduceLROnPlateau reducing learning rate to 0.00019999999494757503.\nEpoch 9/20\n91/91 [==============================] - 116s 1s/step - loss: 0.3671 - acc: 0.8628 - val_loss: 0.5055 - val_acc: 0.8417\nEpoch 10/20\n91/91 [==============================] - 116s 1s/step - loss: 0.3560 - acc: 0.8669 - val_loss: 0.4908 - val_acc: 0.8302\nEpoch 11/20\n91/91 [==============================] - 116s 1s/step - loss: 0.3297 - acc: 0.8745 - val_loss: 0.4510 - val_acc: 0.8388\nEpoch 12/20\n91/91 [==============================] - 116s 1s/step - loss: 0.2968 - acc: 0.8885 - val_loss: 0.5838 - val_acc: 0.8146\nEpoch 13/20\n91/91 [==============================] - 116s 1s/step - loss: 0.2667 - acc: 0.9022 - val_loss: 0.6121 - val_acc: 0.8103\nEpoch 14/20\n91/91 [==============================] - 116s 1s/step - loss: 0.2794 - acc: 0.8988 - val_loss: 0.5697 - val_acc: 0.8188\n\nEpoch 00014: ReduceLROnPlateau reducing learning rate to 9.999999747378752e-05.\nEpoch 15/20\n91/91 [==============================] - 116s 1s/step - loss: 0.2284 - acc: 0.9126 - val_loss: 0.4858 - val_acc: 0.8573\nEpoch 16/20\n91/91 [==============================] - 116s 1s/step - loss: 0.2120 - acc: 0.9173 - val_loss: 0.5708 - val_acc: 0.8374\nEpoch 17/20\n91/91 [==============================] - 116s 1s/step - loss: 0.1904 - acc: 0.9283 - val_loss: 0.5623 - val_acc: 0.8431\n\nEpoch 00017: ReduceLROnPlateau reducing learning rate to 4.999999873689376e-05.\nEpoch 18/20\n91/91 [==============================] - 116s 1s/step - loss: 0.1681 - acc: 0.9355 - val_loss: 0.5928 - val_acc: 0.8331\nEpoch 19/20\n91/91 [==============================] - 116s 1s/step - loss: 0.1727 - acc: 0.9379 - val_loss: 0.5719 - val_acc: 0.8431\nEpoch 20/20\n91/91 [==============================] - 116s 1s/step - loss: 0.1448 - acc: 0.9483 - val_loss: 0.6180 - val_acc: 0.8295\n\nEpoch 00020: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\n","output_type":"stream"}]},{"cell_type":"code","source":"# fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 6))\n\n# ax1.plot(cosine_lr_1st.learning_rates)\n# ax1.set_title('Warm up learning rates')\n\n# ax2.plot(cosine_lr_2nd.learning_rates)\n# ax2.set_title('Fine-tune learning rates')\n\n# plt.xlabel('Steps')\n# plt.ylabel('Learning rate')\n# sns.despine()\n# plt.show()","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:05:26.689718Z","iopub.execute_input":"2024-06-03T18:05:26.690021Z","iopub.status.idle":"2024-06-03T18:05:27.228301Z","shell.execute_reply.started":"2024-06-03T18:05:26.689978Z","shell.execute_reply":"2024-06-03T18:05:27.226569Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":46,"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)","\u001b[0;32m<ipython-input-46-7a56e409879d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0max1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msharex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'col'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m6\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0max1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcosine_lr_1st\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlearning_rates\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      4\u001b[0m \u001b[0max1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_title\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Warm up learning rates'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mNameError\u001b[0m: name 'cosine_lr_1st' is not defined"],"ename":"NameError","evalue":"name 'cosine_lr_1st' is not defined","output_type":"error"},{"output_type":"display_data","data":{"text/plain":"<Figure size 1440x432 with 2 Axes>","image/png":"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s2dPtmzZkkqlki1btuT9999f3EHhAlPP7k1OTubee+/Nli1bsnnz5mzfvj3/+7//u/jDwgVkcHAwmzZtyrp163Lo0KFPPDOX3rKo0ai/vz89PT3Zt29fenp60tfXVzize/fuHDlyJPv378+LL76YHTt25N13313MMeGCU8/ubdiwIf/+7/+e//iP/8gTTzyR+++/Px999FEDpoULSz37l/zpH/H+/v50dHQs8oRwYapn98bGxvLTn/40zzzzTEZGRvJv//ZvWbVqVQOmhQtHPbv3s5/9LGvXrs3u3buze/fu/OY3v8n+/fsbMC1cOG4S3YCSAAAEIElEQVS55Zbs2rUrV1555Z89M5fesmjRaHJyMuPj46lUKkmSSqWS8fHxnDhxYsa5PXv25I477khTU1Oam5vT0dGRvXv3LtaYcMGpd/duuummXHLJJUmSdevWZXp6OidPnlz0eeFCUu/+JcnTTz+dm2++OWvWrFnkKeHCU+/uPffcc7nnnntyxRVXJElWrVqVlStXLvq8cKGod/eWLVuWU6dO5ezZszlz5kympqbS2traiJHhgnHDDTekXC7/xTNz6S2LFo2q1WpaW1tTKpWSJKVSKatXr061Wi2ca2trO/d9uVzO0aNHF2tMuODUu3v/1y9+8YtcffXV+fznP79YY8IFqd79e+utt3LgwIHcfffdDZgSLjz17t4777yT3/3ud7nrrrvyzW9+M0899VSmp6cbMTJcEOrdvfvuuy8TExO58cYbz/3ZuHFjI0aGJWUuvcWDsIEZfv3rX+fHP/5x/uVf/qXRo8CSMDU1lUceeSQDAwPn/iMbWBy1Wi1vv/12nn322fzrv/5rXnnllbz00kuNHgsueHv37s26dety4MCBvPLKK/nv//5vd5fAX6lFi0blcjnHjh1LrVZL8qd/pI8fP164fKpcLue999479321WnW1A3wK9e5ekrzxxht54IEH8uSTT+aaa65Z7FHhglPP/v3+97/PkSNHcu+992bTpk15/vnn8//+3//LI4880qix4TOv3n/72trasnnz5qxYsSKf+9zncsstt+TNN99sxMhwQah394aGhvKNb3wjTU1NWbVqVTZt2pTXX3+9ESPDkjKX3rJo0ailpSXt7e0ZGRlJkoyMjKS9vT3Nzc0zzm3evDnDw8M5e/ZsTpw4kZdffjmdnZ2LNSZccOrdvTfffDP3339/fvKTn+TLX/5yI0aFC049+9fW1pbXX389v/zlL/PLX/4y//AP/5A777wzjz32WKPGhs+8ev/tq1QqOXDgQKanpzM1NZVf/epXue666xoxMlwQ6t29q666Kq+88kqS5MyZM3nttdfypS99adHnhaVmLr1l2fQi3rj9zjvvZNu2bfnggw9y2WWXZXBwMNdcc016e3vzgx/8IF/5yldSq9Xy6KOP5tVXX02S9Pb2pru7e7FGhAtSPbv393//9/mf//mfGQ8h/Od//uesW7eugZPDZ189+/d/7dixIx9++GEefPDBBk0MF4Z6du/s2bMZHBzMK6+8kqamptx444158MEH09TkCQ4wV/Xs3pEjR9Lf35/3338/tVotf/u3f5t/+qd/yvLlyxs9PnxmPf7449m/f3/ef//9/M3f/E0uv/zy/Od//uen7i2LGo0AAAAA+Gzwv1EAAAAAKBCNAAAAACgQjQAAAAAoEI0AAAAAKBCNAAAAACgQjQAAAAAoEI0AAAAAKBCNAAAAACj4/0+7PP04adTOAAAAAElFTkSuQmCC\n"},"metadata":{}}]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 14))\n\nax1.plot(history['loss'], label='Train loss')\nax1.plot(history['val_loss'], label='Validation loss')\nax1.legend(loc='best')\nax1.set_title('Loss')\n\nax2.plot(history['acc'], label='Train accuracy')\nax2.plot(history['val_acc'], label='Validation accuracy')\nax2.legend(loc='best')\nax2.set_title('Accuracy')\n\nplt.xlabel('Epochs')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:05:41.372321Z","iopub.execute_input":"2024-06-03T18:05:41.37263Z","iopub.status.idle":"2024-06-03T18:05:42.016717Z","shell.execute_reply.started":"2024-06-03T18:05:41.372585Z","shell.execute_reply":"2024-06-03T18:05:42.015796Z"},"trusted":true},"execution_count":47,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1440x1008 with 2 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAABJIAAAM7CAYAAAARWbq3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xd4VGXi9vHv9JlMekgghCRgKAmEZuhVQKQIwoJlRd11FVexrWV/Fmwgru9iWduuqKxiXwsgKIgKFpAuSAsJKlIjkEBCQtpkJjPz/hE2LggKBDgp9+e6coWZOXPmnuQhydzznOeYgsFgEBERERERERERkd9gNjqAiIiIiIiIiIjUDSqSRERERERERETkhKhIEhERERERERGRE6IiSUREREREREREToiKJBEREREREREROSEqkkRERERERERE5ISoSBIRERERERERkROiIklERETkVwwcOJDly5cbHUNERESkVlCRJCIiIiIiIiIiJ0RFkoiIiMgpeO+99xg8eDDdunXjhhtuIDc3F4BgMMijjz5Kz549ycjIYOTIkXz//fcALF68mOHDh9O5c2f69u3Lyy+/bORTEBERETlpVqMDiIiIiNQ1K1as4Mknn+SVV16hVatWTJ06lTvuuIO33nqLpUuXsmbNGj799FPCwsLYtm0bYWFhANx33308/fTTdOnShaKiInJycgx+JiIiIiInRzOSRERERE7SRx99xNixY2nXrh12u5077riD9evXk5OTg9VqpbS0lG3bthEMBklJSSEuLg4Aq9XK1q1bKSkpISIignbt2hn8TEREREROjookERERkZOUl5dHQkJC9WW3201kZCS5ubn07NmTK664gocffphevXrxwAMPUFJSAsCzzz7L4sWLGTBgAFdeeSXr1q0z6imIiIiInBIVSSIiIiInKS4ujp9++qn6cllZGYWFhTRu3BiAP/zhD8yePZv58+ezY8cO/v3vfwPQoUMHpk2bxvLlyzn//PO57bbbDMkvIiIicqpUJImIiIj8Bp/PR0VFRfXHsGHDmD17NtnZ2Xi9Xv7xj3/QoUMHmjVrxsaNG9mwYQM+nw+Xy4XdbsdiseD1evnwww8pLi7GZrPhdruxWCxGPzURERGRk6LFtkVERER+w5///OcjLt9www385S9/4ZZbbuHQoUN07tyZp556CoDS0lIeffRRcnJysNvt9OnTh2uuuQaAuXPnMmXKFPx+Py1atOCxxx47689FREREpCZMwWAwaHQIERERERERERGp/XRom4iIiIiIiIiInBAVSSIiIiIiIiIickJUJImIiIiIiIiIyAmp9UVSMBikoqICLeUkIiIiIiIiImKsWl8keb1eMjMz8Xq9Rkc5LTZv3mx0BKllNCbkWDQu5GgaE3IsGhdyNI0JORaNCzmaxoTURK0vkuobj8djdASpZTQm5Fg0LuRoGhNyLBoXcjSNCTkWjQs5msaE1ISKJBEREREREREROSEqkkRERERERERE5ISoSBIRERERERERkROiIklERERERERERE6I1egAIiIiIiIiImI8n89HTk6OFuOuZywWC5GRkTRq1AizuebziVQkiYiIiIiIiAg5OTmEhYXRvHlzTCaT0XHkNAgGg/h8PnJzc8nJySEpKanG+9ShbSIiIiIiIiKCx+MhJiZGJVI9YjKZsNvtJCQkUFpaelr2qSJJRERERERERABUItVTp+OQtup9nbY9iYiIiIiIiIhIvaYiSURERERERERqlUsuuYRRo0YxfPhw2rZty6hRoxg1ahT33nvvSe/r2muvJScn56Tus3z5ci699NKTfqyGQItti4iIiIiIiEit8v777wNVC4CPHTuWuXPnHndbv9+PxWI57u0vv/zyac/XkKlIEhEREREREZEjfLFmFwtX7zoj+x7cLYmBXU797GHLly/niSeeoGPHjmzevJmbbrqJgwcP8tZbb+Hz+TCZTNxzzz10794dgH79+jFjxgxSUlK4/PLL6dy5M+vWrSM3N5eRI0dy++23/+Zjzpo1i1dffRWA5s2bM3nyZKKjo1mzZg2PPPIIwWAQv9/PjTfeyPDhw3n77bd54403sNlsADz77LM0b978lJ9zbaIiSURERERERETqlOzsbCZNmsRDDz0EwMGDBxk9ejQAW7duZfz48Xz11VfHvG9ubi5vvfUWJSUlnH/++Vx88cUkJiYe97G2bNnCM888w6xZs4iNjeXJJ5/kb3/7G08++SQvvfQS48ePZ8SIEQSDQYqLiwF47LHH+Oyzz4iLi6OiooJgMHh6vwAGUpF0Fr3+cRZBTxkZGUYnERERERERETm+gV1qNmvoTEtJSaFDhw7Vl3fu3Mmdd95JXl4eFouF3NxcCgoKiI6O/sV9hw0bhtlsJjw8nBYtWrB79+5fLZJWrlzJeeedR2xsLACXXXZZ9fpJ3bt3Z9q0aezevZvevXtXZ+rRowf33HMPAwcO5LzzzqNZs2an8+kbSottn0X78suYtbyAr9f/ZHQUERERERERkTorJCTkiMu33347V111FfPmzWP27NlYLBa8Xu8x72u326v/bTabqays/NXHCgaDmEymI6777+Vrr72W559/nsjISCZNmsRzzz0HwLRp07j11lspLS3lyiuvZNmyZSf9HGsrFUln0a2XdiKxkZ0n31rLmuxco+OIiIiIiIiI1AvFxcXVs37effddfD7fadt3z549+fLLL8nPzweqFgLv2bMnANu2bSM5OZnLL7+cq666io0bN+Lz+cjJyaFTp05cf/319OzZk6ysrNOWx2g6tO0scjqsjOvfiPdXlvL/Xl3NpOt60r5lI6NjiYiIiIiIiNRpEydO5Prrr6dJkyZ0796dsLCw07bv1NRU/vKXv3D11VcDkJyczMMPPwzAa6+9xpo1a7DZbNjtdh588EEqKyu56667KCkpASAhIYFLLrnktOUxmilYy1d8qqioIDMzk/T0dBwOh9Fxamzt2rW0bJPOvc8v40BhGY/c0JvWSVFGxxIDrV27lgwtnCVH0biQo2lMyLFoXMjRNCbkWDQu5GjHGxPZ2dmkpaUZkEjOhtP1/dWhbQaICHUw5fqeRIQ6eOilFezYe8joSCIiIiIiIiIiv0lFkkFiIlxMub4XdpuFB15czp79JUZHEhERERERERH5VSqSDNQkxs0jN/QiEAhy/4vL2X+w3OhIIiIiIiIiIiLHpSLJYImNw3j4zz0pK/fxwIvLOFjsMTqSiIiIiIiIiMgxqUiqBVKaRfLg+B4cKPLw4IsrKCnzGh1JREREREREROQXVCTVEm1bxHDf1d3IySth0vSVlHl8RkcSERERERERETmCiqRapHObOO66KoMfcgr524zVeH1+oyOJiIiIiIiIiFRTkVTL9GzflNt+35mNWw/w99e/odIfMDqSiIiIiIiIyFl17bXX8s477xxxXTAYZODAgXzzzTe/et+rrrqKL7/8EoBnnnmGjz/++JjbPffcc0ydOvU3s8yePZvt27dXX/78889P6H4no02bNpSWlp7WfZ4pKpJqoQEZiUwY24FvsnJ56u1v8QeCRkcSEREREREROWvG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2+878+fR7fkmO5e/PruEn/aXGB1LREREREREpEFRkSR1hslkYmTfc3jk+l4UlXi58+nFrMnONTqWiIiIiIiISIOhIknqnPYtG/HUbf1pHOPm4ZdX8t6i7wkGtW6SiIiIiIiIyJmmIknqpLjoEKbe3Ie+nRJ4Y0E2U19fQ3lFpdGxREREREREROo1q9EBRE6V027lr1dk0LJZJK/O20xOXjH3/ak78Y3cRkcTERERERERqZc0I0nqNJPJxO/Oa8lD1/Ukv8jDHU8vZt13eUbHEhEREREREamXVCRJvXBumzj+cVt/GkW6mDR9BbO/3Kp1k0REREREREROMxVJUm/EN3Lz2C196dm+KTPmbebJt77F49W6SSIiIiIiIiKni4okqVdcDit3/6ELfxiexpL1Odz9z6XkFZQZHUtERERERESkXlCRJPWOyWTikkGtefDaHuTml3L704vZuHW/0bFERERERERE6jwVSVJvdUlrzJO39Sci1M4DL67gw69/1LpJIiIiIiIiIjWgIknqtYTYUJ64tR9d0xozfU4mT7+zDq/Pb3QsERERERERkTpJRZLUeyFOGxOv7sblF7ThizW7uedfSzlQWG50LBEREREREZE6R0WSNAhms4lxQ1KZeHU3cvKKuf2pxWzelm90LBEREREREZE6RUWSNCg928fzxK39CHFauW/aMhYs3250JBEREREREZE6Q0WSNDhJTcJ58rb+dGody/OzNvLP99fjq9S6SSIiIiIiIiK/RUWSNEihLhsPXNuDSwa14tOVO5n4/DIKDnmMjiUiIiIiIiJSq6lIkgbLYjbxh+FtufsPXdi+9xC3P/UVW3YWGB1LREREREREpNZSkSQNXp+OCTx+S19sVgv3/msZC1ftNDqSiIiIiIiISK2kIkkEaNE0gn/c1p/0c2J49r31vDB7o9ZNEhERERERkWoVe39k/4IX2fvO3wgGGu7rRavRARqSgi/fwrUnB1+Lptii442OI0cJd9uZdF0PXvs4mw++2sr67/czYUwHOraONTqaiIiIiIiIGMDvKaUk82uK1y/Cm7sdk9VOWKfzwWQyOpphVCSdRcFgAMfONeyethpXSmciugzDldIZk0kTw2oLi8XMNSPb0bFVI16cvYn7X1xOv04JXHNRO2IiXEbHExERkTomGAzgLz6IJSwaUwN+0SEiUpcEg0EqcrZw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GX78NYKjoWXIBElR479y1q6hi23p0qW655579P3vf1/vvfeeJk+erOTkZEndocajjz6q8vJyWSwWNTc3q7y8XFdcccVpx9u6dasef/xxSZLD4dA111wTeO3YeAcPHpTJZApqPKm7k+mGG25QZGSkJOnmm2/W008/HXh91qxZio6OliSNHz9ehw4d6nOcd955Rxs2bFBXV5c6OjqUlZUlSfrwww9VVFSkxMRESZLdbpckbd68WVdddVXgPKvVKqvVetYgyWazBcKzM133yJEjtWPHDr300kuBc48FXXfccYd++tOf6sYbb9Trr7+uJUuWyGq1nvFzAQAAAOBS6nR51NruDoQ7bZ3Hl4cdD4NO7Rhqd3ap0+U949gmo6E75OkJd2wWg9KSo3sdCwQ/fTy2mE2X6FvAYDBkgqSBYMyYMUpMTNRHH32kt956S9/4xjcCrz3xxBOaO3euVq5cqcjISF133XVyuVxnHM/vP31/4LHxfvWrX8lgMAQ13rExDYbTp8HHln9Jkslk6nPMbdu26fXXX9cbb7whh8OhDRs26A9/+MN5XYvZbO712smfFx4e3qve87nuSZMmyev1avv27Vq3bp3WrFlzxvMBAAAA4GJp7+zSoepWHapp0aGa1u7H1a1qaHGe9j0GgxQRdkLHT7hFaYmRsh87FmE55fGJAZHNaur196rt27dr8uTJl+JyMQQRJPWzJUuW6LnnnlNlZaXmzp0bON7a2qr09HQZDAZ9/PHHOnjw4FnHuvLKK7V27VpNnjxZjY2Nev/993X99defdTy73a7W1tY+x5wxY4ZWrVqlO+64Q3a7XW+++aZmzJhxTtfY0tKiyMhIxcbGyu1266233gq8NmfOHD322GO69dZblZCQoPb2dlksFs2aNUsvvPCCDhw40GtpW0JCgrq6unTw4EENHz5cGzduPONnn+667Xa7Jk6cqJdffln33HOPpONL26TurqTvf//7uuKKK5SamnpO1wsAAAAA56q9s0uHa1p1sLpVh2tadai6Oziqbz4eGNmsJg1LitQVoxKVkRSp2EjbScvFrLKHWxRuM7MhNQYMgqR+tnDhQv3sZz/TLbfc0mv51EMPPaQVK1YoOjpaY8eO1ejRo8861re//W09+uijuuGGG5Senq6ZM2eeMt7q1as1evToXuPdcsstWrlypX73u9/phz/8Ya8xZ8+e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e/kUPG57rMsSERERERERGZAUJEm/VVbVxK/+sp3y6iZuX1jIF+flYzarlU1ERERERESkpyhIkn5p03vlPPjM+zjsFv717mIm5qfHuiQRERERERGRAU9BkvQrwVCYP77yAa9tPsqY3GS+/5WppHhdsS5LREREREREZFBQkCT9RnVdK79+dDuHynwsu2okd1w/FqvFHOuyRERERERERAYNBUnSL+zYX8W/PV5CxDD44VenUVw0JNYliYiIiIiIiAw6CpKkTwuHIzy+tpRn1x8ib4iX798xlSGp8bEuS0RERERERGRQUpAkfVZ9Uzu/e6yE3R/WsGDGcO7+QhEOmyXWZYmIiIiIiIgMWgqSpE/ae7iG3z62g+a2EP/9S5OYNy0n1iWJiIiIiIiIDHoKkqRPMQyDF978kEdf309mchw/u/tycrM8sS5LRERERERERFCQJH1Ic1uQ//nkTrZ9UMkVlw3hW7dMJM5pi3VZIiIiIiIiItJBQZL0CR+W+/j1X7ZT42vjrmXjWTIrD5PJFOuyREREREREROQcCpIkpgzDYO07x3n4pT143XZ+/c1ZFOYmx7osEREREREREfkICpIkZtr9IR56fhdvlpQzKT+Nb6+YgjfeEeuyRERERERERORjKEiSmCirauLXj26nrKqJ5dcWcsv8fCxmtbKJiIiIiIiI9GUKkqTXvf3eSR589j1sVgs/u6uYSQXpsS5JRERERERERC7CRQVJR48e5b777sPn85GYmMgDDzxAbm5ul2O+973vceDAgc73Dxw4wO9//3vmzZvHgw8+yBNPPEF6ejQwmDx5MitXruy+WyH9QjAU5v+98gGrNh9lTG4y3/vyVFITXbEuS0REREREREQu0kUFSStXrmT58uUsXbqUl19+mZ/85Cc8+uijXY75zW9+0/l2aWkpd9xxB7Nnz+782LJly/j+97/fTWVLf1Nd18oDf93OwRM+ll01kjuuH4vVYo51WSIiIiIiIiLyGXzqM/na2lr27dvH4sWLAVi8eDH79u2jrq7uY7/mueeeY8mSJdjt9u6rVPqtHfur+O//8Rbl1c384I5pfO2G8QqRRERERERERPqhT12RVFFRQUZGBhaLBQCLxUJ6ejoVFRUkJ1+4TXsgEODVV1/lz3/+c5ePv/baa/z9738nLS2Ne++9l0mTJn2mQvfu3fuZju/LSkpKYl1C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\n"},"metadata":{}}]},{"cell_type":"code","source":"# # Create empty arays to keep the predictions and labels\n# df_preds = pd.DataFrame(columns=['label', 'pred', 'set'])\n# train_generator.reset()\n# valid_generator.reset()\n\n# # Add train predictions and labels\n# for i in range(STEP_SIZE_TRAIN + 1):\n#     im, lbl = next(train_generator)\n#     preds = model.predict(im, batch_size=train_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'train']\n\n# # Add validation predictions and labels\n# for i in range(STEP_SIZE_VALID + 1):\n#     im, lbl = next(valid_generator)\n#     preds = model.predict(im, batch_size=valid_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'validation']\n\n# df_preds['label'] = df_preds['label'].astype('int')\n\n# Create empty arays to keep the predictions and labels\nlastFullTrainPred = np.empty((0, n_classes))\nlastFullTrainLabels = np.empty((0, n_classes))\nlastFullValPred = np.empty((0, n_classes))\nlastFullValLabels = np.empty((0, n_classes))\n\n# Add train predictions and labels\nfor i in range(STEP_SIZE_TRAIN+1):\n    im, lbl = next(train_generator)\n    scores = model.predict(im, batch_size=train_generator.batch_size)\n    lastFullTrainPred = np.append(lastFullTrainPred, scores, axis=0)\n    lastFullTrainLabels = np.append(lastFullTrainLabels, lbl, axis=0)\n\n# Add validation predictions and labels\nfor i in range(STEP_SIZE_VALID+1):\n    im, lbl = next(valid_generator)\n    scores = model.predict(im, batch_size=valid_generator.batch_size)\n    lastFullValPred = np.append(lastFullValPred, scores, axis=0)\n    lastFullValLabels = np.append(lastFullValLabels, lbl, axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:05:50.024073Z","iopub.execute_input":"2024-06-03T18:05:50.024392Z","iopub.status.idle":"2024-06-03T18:07:15.58518Z","shell.execute_reply.started":"2024-06-03T18:05:50.024341Z","shell.execute_reply":"2024-06-03T18:07:15.584412Z"},"trusted":true},"execution_count":48,"outputs":[]},{"cell_type":"code","source":"# def classify(x):\n#     if x < 0.5:\n#         return 0\n#     elif x < 1.5:\n#         return 1\n#     elif x < 2.5:\n#         return 2\n#     elif x < 3.5:\n#         return 3\n#     return 4\n\n# # Classify predictions\n# df_preds['predictions'] = df_preds['pred'].apply(lambda x: classify(x))\n\n# train_preds = df_preds[df_preds['set'] == 'train']\n# validation_preds = df_preds[df_preds['set'] == 'validation']\n\ntrain_preds = [np.argmax(pred) for pred in lastFullTrainPred]\ntrain_labels = [np.argmax(label) for label in lastFullTrainLabels]\nvalidation_preds = [np.argmax(pred) for pred in lastFullValPred]\nvalidation_labels = [np.argmax(label) for label in lastFullValLabels]","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:07:43.478059Z","iopub.execute_input":"2024-06-03T18:07:43.478365Z","iopub.status.idle":"2024-06-03T18:07:43.511697Z","shell.execute_reply.started":"2024-06-03T18:07:43.478321Z","shell.execute_reply":"2024-06-03T18:07:43.511065Z"},"trusted":true},"execution_count":49,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(1, 2, sharex='col', figsize=(24, 7))\nlabels = ['0 - No DR', '1 - Mild', '2 - Moderate', '3 - Severe', '4 - Proliferative DR']\ntrain_cnf_matrix = confusion_matrix(train_labels, train_preds)\nvalidation_cnf_matrix = confusion_matrix(validation_labels, validation_preds)\n\ntrain_cnf_matrix_norm = train_cnf_matrix.astype('float') / train_cnf_matrix.sum(axis=1)[:, np.newaxis]\nvalidation_cnf_matrix_norm = validation_cnf_matrix.astype('float') / validation_cnf_matrix.sum(axis=1)[:, np.newaxis]\n\ntrain_df_cm = pd.DataFrame(train_cnf_matrix_norm, index=labels, columns=labels)\nvalidation_df_cm = pd.DataFrame(validation_cnf_matrix_norm, index=labels, columns=labels)\n\nsns.heatmap(train_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax1).set_title('Train')\nsns.heatmap(validation_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax2).set_title('Validation')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:08:22.823906Z","iopub.execute_input":"2024-06-03T18:08:22.824208Z","iopub.status.idle":"2024-06-03T18:08:23.806137Z","shell.execute_reply.started":"2024-06-03T18:08:22.824164Z","shell.execute_reply":"2024-06-03T18:08:23.804794Z"},"trusted":true},"execution_count":51,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1728x504 with 4 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAABS8AAAHZCAYAAABnzM5eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XlcVPX+x/H3sAnDornhvqGg3rRQi0pzQc0VxSw1l8g2zb2s22aulZmmle32u6bZpqmApN5ybblquVSWK7ilKZYKCoOs8/sDI8dhVAxmhsPr+XjweMA5X47fw9dzzns+c75nTFar1SoAAAAAAAAAcDMeru4AAAAAAAAAABSG4iUAAAAAAAAAt0TxEgAAAAAAAIBbongJAAAAAAAAwC1RvAQAAAAAAADgliheAgAAAAAAAHBLFC8BFIvc3FyFh4fr999/d3VXAAAAAJc5evSowsLClJOTI0l68MEHtXz58qtqW1TvvPOOnn322WvuKwCUBl6u7gAA1wgPDy/4PiMjQz4+PvL09JQkTZkyRb169SrS9jw9PbVjx45i7SMAAADgCg888ICaN2+usWPH2ixfs2aNJk2apI0bN8rL6+peTr///vvF0qctW7boiSee0Ndff12wbPjw4cWybQBwZxQvgTLq4kJjZGSknn/+ed12220O2+fk5Fx1QAMAAABKsz59+mj27NkaM2aMTCZTwfL4+HhFRUWRiwHAiZg2DqBQc+bM0bhx4/TYY48pPDxc8fHx2rFjh/r166dWrVqpTZs2ev7555WdnS0pv7gZFhamo0ePSpIef/xxPf/883rwwQcVHh6u/v3767fffnPlLgEAAABXpVOnTkpNTdXWrVsLlqWmpmr9+vWKjo7Whg0bFB0drRYtWqhdu3aaO3euw20NGTJES5YskZT/qKUZM2YoIiJCHTt21MaNG23aLl26VN26dVN4eLg6duyoTz/9VJJksVj00EMP6eTJkwoPD1d4eLiSk5M1d+5cPf744wW/v3btWvXo0UOtWrXSkCFDlJSUVLAuMjJS//d//6eoqCi1bNlS48aNU2ZmZrH8vQCgJFG8BODQmjVr1LNnT23btk3du3eXp6ennn32WW3evFmffPKJvvnmG3322WcOf3/FihUaO3asvv/+e1WvXl2vvfaaE3sPAAAAXBtfX19169ZN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\n"},"metadata":{}}]},{"cell_type":"code","source":"print(\"Train Cohen Kappa score: %.3f\"% cohen_kappa_score(train_preds, train_labels, weights='quadratic'))\n\nprint(\"Validation   Cohen Kappa score: %.3f\" % cohen_kappa_score(validation_preds, validation_labels, weights='quadratic'))\n\nprint(\"Complete set Cohen Kappa score: %.3f\" % cohen_kappa_score(np.append(train_preds, validation_preds), np.append(train_labels, validation_labels), weights='quadratic'))","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:10:23.261208Z","iopub.execute_input":"2024-06-03T18:10:23.261557Z","iopub.status.idle":"2024-06-03T18:10:23.287533Z","shell.execute_reply.started":"2024-06-03T18:10:23.261499Z","shell.execute_reply":"2024-06-03T18:10:23.28684Z"},"trusted":true},"execution_count":56,"outputs":[{"name":"stdout","text":"Train Cohen Kappa score: 0.988\nValidation   Cohen Kappa score: 0.919\nComplete set Cohen Kappa score: 0.975\n","output_type":"stream"}]},{"cell_type":"code","source":"# def apply_tta(model, generator, steps=10):\n#     step_size = generator.n//generator.batch_size\n#     preds_tta = []\n#     for i in range(steps):\n#         generator.reset()\n#         preds = model.predict_generator(generator, steps=step_size)\n#         preds_tta.append(preds)\n\n#     return np.mean(preds_tta, axis=0)\n\n# preds = apply_tta(model, test_generator)\n# predictions = [classify(x) for x in preds]\n\n# results = pd.DataFrame({'id_code':test['id_code'], 'diagnosis':predictions})\n# results['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])\n\ntest_generator.reset()\nstep_test = test_generator.n//test_generator.batch_size\npreds = model.predict_generator(test_generator, steps=step_test)\npredictions = [np.argmax(pred) for pred in preds]\n\nfilenames = test_generator.filenames\nresults = pd.DataFrame({'id_code':filenames, 'diagnosis':predictions})\nresults['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:13:51.637159Z","iopub.execute_input":"2024-06-03T18:13:51.637513Z","iopub.status.idle":"2024-06-03T18:14:50.449181Z","shell.execute_reply.started":"2024-06-03T18:13:51.637461Z","shell.execute_reply":"2024-06-03T18:14:50.448547Z"},"trusted":true},"execution_count":58,"outputs":[]},{"cell_type":"code","source":"# # Cleaning created directories\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)","metadata":{"execution":{"iopub.status.busy":"2024-04-30T13:32:12.174835Z","iopub.execute_input":"2024-04-30T13:32:12.175157Z","iopub.status.idle":"2024-04-30T13:32:12.448606Z","shell.execute_reply.started":"2024-04-30T13:32:12.17511Z","shell.execute_reply":"2024-04-30T13:32:12.447914Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = plt.subplots(sharex='col', figsize=(24, 8.7))\nsns.countplot(x=\"diagnosis\", data=results).set_title('Test')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:15:15.47668Z","iopub.execute_input":"2024-06-03T18:15:15.476978Z","iopub.status.idle":"2024-06-03T18:15:15.709897Z","shell.execute_reply.started":"2024-06-03T18:15:15.476934Z","shell.execute_reply":"2024-06-03T18:15:15.709056Z"},"trusted":true},"execution_count":59,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1728x626.4 with 1 Axes>","image/png":"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LTnwwAPT2NiY+++/v9pjAePQT3/60yxYsCCHHXZYpkyZkiQ55JBDsmrVqipPBownW7ZsyQUXXJA33ngjtbW1OeCAA3L55Zfn6KOPrvZowDg3f/783HbbbfnoRz9a7VHYiwnDAAAAAACFsZUEAAAAAEBhhGEAAAAAgMIIwwAAAAAAhRGGAQAAAAAKIwwDAAAAABRGGAYAoGhLly7NjTfemMceeyxtbW3VHmeXbrvttlx55ZXVHgMAgAmivtoDAADAeNDa2pru7u5qj7FL559/frVHAABgAnHHMAAAAABAYYRhAACKsm7duvzBH/xB5syZk6985Svp7+9Pkjz66KM54YQThh73l3/5l/nkJz+ZOXPm5NRTT833vve9obWBgYFcf/31mTdvXubPn5+/+Zu/yVFHHZW33norSXLmmWfmpptuyuLFizNnzpycffbZ6evrGzr/Bz/4QX7/938/ra2tOfPMM7N+/fq3Xfd3fud3MmfOnLS1teWRRx5Jktxyyy255JJLkiT9/f255JJLMm/evLS2tuaP/uiPsmXLlrH7ogEAMOEIwwAAFGPHjh350pe+lNNOOy3//u//npNPPjkPPvjguz720EMPzV133ZW1a9fmwgsvzKWXXprNmzcnSf7u7/4uP/rRj3Lfffflnnvuyfe///13nN/V1ZXrrrsujzzySHbu3Jm//uu/TpJs2LAhF198ca644oo88sgjOeGEE3L++ednx44dee6553LXXXflH/7hH/L444/n9ttvz8yZM9/xse+55568+uqr+eEPf5hHH300X/va1zJlypRR/EoBADDRCcMAABTjJz/5SXbu3JnPf/7zmTRpUk4++eT8+q//+rs+9pRTTklzc3Nqa2tz6qmn5iMf+UiefPLJJMk//uM/5nOf+1ymT5+eAw44IOedd947zv/DP/zDHH744ZkyZUpOPvnkPPPMM0mSBx54ICeeeGJ++7d/O5MmTco555yTN998M48//njq6uqyY8eOrF+/Pjt37swhhxySX/mVX3nHx66vr8/LL7+cF154IXV1dZk9e3Y+9KEPjeJXCgCAic4fnwMAoBibN29Oc3Nzampqho7NmDHjXR9777335o477sjPf/7zJMnrr7+ebdu2DX2clpaWocdOnz79HecffPDBQ2/vs88+ef3114fO/eVr1tbWpqWlJZs2bcq8efNyxRVX5JZbbsnPfvazHH/88Vm6dGmam5vf9rFPO+20vPTSS/mzP/uzbN++PYsWLcpFF12USZMmvd8vCQAAhXLHMAAAxTj44IOzadOmVCqVoWMbN258x+N+/vOf56qrrspXv/rVPPro/2vnjl2SieM4jn+OzkvSyaE/QHJw6/wHasjBIHGSBnFo7j+IMHI0QYhAcHPRRWhqaNGb9Am3pgilrQ6cXIxD8dkk8Xl4lGdwuPdruuP35Xtfbvxw9/2lfr+vWCy21Ofr62tx//P6X/b395eeOZ/P9fn5uQh/z87O1Gg01G63ZRiG7u7uVnoEAgFdXl7q6elJzWZTnU5Hj4+Pa88AAAAAEAwDAADANw4PD2Wapur1uqbTqZ6fn/X6+rpSN5lMZBiGIpGIJKnVaun9/X1xnkqlVK/X5bquxuOxarXa2jOkUik5jrO0e9iyLNm2reFwqG63K8/zZFmWdnd3tbOzs9Kj1+vp7e1Ns9lM4XBYpmn+sQ4AAAD4G1ZJAAAAwDcsy9L9/b2ur69VqVR0dHSkZDK5UndwcKCLiwudn5/LMAxlMhklEonFeTab1cfHh9LptEKhkPL5vF5eXtYKZ6PRqEqlkorFolzXVTweV7ValWVZ8jxP5XJZg8FAgUBAtm3r9vZ2pcdoNFKhUJDrutrb29Pp6anS6fT/vRwAAAD4ijH/+R8dAAAAgI05jqObmxu12+1tjwIAAACshVUSAAAAwIa+v7/lOI6m06lc19XDw4NOTk62PRYAAACwNr4YBgAAADY0mUyUy+U0HA4VDAZ1fHysq6srhcPhbY8GAAAArIVgGAAAAAAAAAB8hlUSAAAAAAAAAOAzBMMAAAAAAAAA4DMEwwAAAAAAAADgMwTDAAAAAAAAAOAzBMMAAAAAAAAA4DO/AYiO7Lb+NFSwAAAAAElFTkSuQmCC\n"},"metadata":{}}]},{"cell_type":"code","source":"results.to_csv('submission.csv', index=False)\ndisplay(results.head())","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:15:21.19719Z","iopub.execute_input":"2024-06-03T18:15:21.197511Z","iopub.status.idle":"2024-06-03T18:15:21.544216Z","shell.execute_reply.started":"2024-06-03T18:15:21.197466Z","shell.execute_reply":"2024-06-03T18:15:21.543522Z"},"trusted":true},"execution_count":60,"outputs":[{"output_type":"display_data","data":{"text/plain":"        id_code  diagnosis\n0  0005cfc8afb6          2\n1  003f0afdcd15          3\n2  006efc72b638          2\n3  00836aaacf06          2\n4  009245722fa4          2","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>id_code</th>\n      <th>diagnosis</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0005cfc8afb6</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>003f0afdcd15</td>\n      <td>3</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>006efc72b638</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>00836aaacf06</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>009245722fa4</td>\n      <td>2</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"model.save_weights('../working/effNetB5cls_bs32_img224_fold1.h5')","metadata":{"execution":{"iopub.status.busy":"2024-06-03T18:15:39.814707Z","iopub.execute_input":"2024-06-03T18:15:39.815Z","iopub.status.idle":"2024-06-03T18:21:45.245114Z","shell.execute_reply.started":"2024-06-03T18:15:39.814958Z","shell.execute_reply":"2024-06-03T18:21:45.244364Z"},"trusted":true},"execution_count":61,"outputs":[]},{"cell_type":"markdown","source":"# FOLD_2","metadata":{}},{"cell_type":"code","source":"import os\nimport sys\nimport cv2\nimport shutil\nimport random\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom tensorflow import set_random_seed\nfrom sklearn.utils import class_weight\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import confusion_matrix, cohen_kappa_score\nfrom keras import backend as K\nfrom keras.models import Model\nfrom keras.utils import to_categorical\nfrom keras import optimizers, applications\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.layers import Dense, Dropout, GlobalAveragePooling2D, Input\nfrom keras.callbacks import EarlyStopping, ReduceLROnPlateau, Callback, LearningRateScheduler\n\ndef seed_everything(seed=0):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    set_random_seed(0)\n\nseed = 0\nseed_everything(seed)\n%matplotlib inline\nsns.set(style=\"whitegrid\")\nwarnings.filterwarnings(\"ignore\")\nsys.path.append(os.path.abspath('../input/efficientnet/efficientnet-master/efficientnet-master/'))\nfrom efficientnet import *","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:15:53.068889Z","iopub.execute_input":"2024-06-04T00:15:53.069191Z","iopub.status.idle":"2024-06-04T00:15:59.640256Z","shell.execute_reply.started":"2024-06-04T00:15:53.069133Z","shell.execute_reply":"2024-06-04T00:15:59.639496Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stderr","text":"/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n/opt/conda/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n  np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\nUsing TensorFlow backend.\n","output_type":"stream"}]},{"cell_type":"code","source":"fold_set = pd.read_csv('/kaggle/input/5-fold/5-fold.csv')\nX_train = fold_set[fold_set['fold_1'] == 'train']\nX_val = fold_set[fold_set['fold_1'] == 'validation']\ntest = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\nprint('Number of train samples: ', X_train.shape[0])\nprint('Number of validation samples: ', X_val.shape[0])\nprint('Number of test samples: ', test.shape[0])\n\n# Preprocecss data\nX_train[\"id_code\"] = X_train[\"id_code\"].apply(lambda x: x + \".png\")\nX_val[\"id_code\"] = X_val[\"id_code\"].apply(lambda x: x + \".png\")\ntest[\"id_code\"] = test[\"id_code\"].apply(lambda x: x + \".png\")\nX_train[\"diagnosis\"] = X_train[\"diagnosis\"].astype(\"str\")\nX_val[\"diagnosis\"] = X_val[\"diagnosis\"].astype(\"str\")\ndisplay(X_train.head())","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:16:07.897892Z","iopub.execute_input":"2024-06-04T00:16:07.898223Z","iopub.status.idle":"2024-06-04T00:16:08.308188Z","shell.execute_reply.started":"2024-06-04T00:16:07.898182Z","shell.execute_reply":"2024-06-04T00:16:08.307274Z"},"trusted":true},"execution_count":2,"outputs":[{"name":"stdout","text":"Number of train samples:  2929\nNumber of validation samples:  733\nNumber of test samples:  1928\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code diagnosis  height   width      fold_0 fold_1 fold_2  \\\n0  000c1434d8d7.png         2  2136.0  3216.0       train  train  train   \n1  001639a390f0.png         4  2136.0  3216.0       train  train  train   \n2  0024cdab0c1e.png         1  1736.0  2416.0  validation  train  train   \n3  002c21358ce6.png         0  1050.0  1050.0       train  train  train   \n4  005b95c28852.png         0  1536.0  2048.0  validation  train  train   \n\n       fold_3      fold_4  \n0  validation       train  \n1       train  validation  \n2       train       train  \n3  validation       train  \n4       train       train  ","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>id_code</th>\n      <th>diagnosis</th>\n      <th>height</th>\n      <th>width</th>\n      <th>fold_0</th>\n      <th>fold_1</th>\n      <th>fold_2</th>\n      <th>fold_3</th>\n      <th>fold_4</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000c1434d8d7.png</td>\n      <td>2</td>\n      <td>2136.0</td>\n      <td>3216.0</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>validation</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>001639a390f0.png</td>\n      <td>4</td>\n      <td>2136.0</td>\n      <td>3216.0</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>validation</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0024cdab0c1e.png</td>\n      <td>1</td>\n      <td>1736.0</td>\n      <td>2416.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>002c21358ce6.png</td>\n      <td>0</td>\n      <td>1050.0</td>\n      <td>1050.0</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>validation</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>005b95c28852.png</td>\n      <td>0</td>\n      <td>1536.0</td>\n      <td>2048.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"# Model parameters\nFACTOR = 4\nBATCH_SIZE = 8 * FACTOR\nEPOCHS = 20\nWARMUP_EPOCHS = 5\nLEARNING_RATE = 1e-4 * FACTOR\nWARMUP_LEARNING_RATE = 1e-3 * FACTOR\nHEIGHT = 224\nWIDTH = 224\nCHANNELS = 3\nES_PATIENCE = 5\nRLROP_PATIENCE = 3\nDECAY_DROP = 0.5\nLR_WARMUP_EPOCHS_1st = 2\nLR_WARMUP_EPOCHS_2nd = 5\nSTEP_SIZE = len(X_train) // BATCH_SIZE\nTOTAL_STEPS_1st = WARMUP_EPOCHS * STEP_SIZE\nTOTAL_STEPS_2nd = EPOCHS * STEP_SIZE\nWARMUP_STEPS_1st = LR_WARMUP_EPOCHS_1st * STEP_SIZE\nWARMUP_STEPS_2nd = LR_WARMUP_EPOCHS_2nd * STEP_SIZE","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:16:11.658147Z","iopub.execute_input":"2024-06-04T00:16:11.658455Z","iopub.status.idle":"2024-06-04T00:16:11.666164Z","shell.execute_reply.started":"2024-06-04T00:16:11.658409Z","shell.execute_reply":"2024-06-04T00:16:11.66511Z"},"trusted":true},"execution_count":3,"outputs":[]},{"cell_type":"code","source":"# train_base_path = '/kaggle/input/aptos2019-blindness-detection/train_images/'\n# test_base_path = '/kaggle/input/aptos2019-blindness-detection/test_images/'\n# train_dest_path = 'base_dir/train_images/'\n# validation_dest_path = 'base_dir/validation_images/'\n# test_dest_path =  'base_dir/test_images/'\n\n# # Making sure directories don't exist\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)\n    \n# # Creating train, validation and test directories\n# os.makedirs(train_dest_path)\n# os.makedirs(validation_dest_path)\n# os.makedirs(test_dest_path)\n\n# def crop_image(img, tol=7):\n#     if img.ndim ==2:\n#         mask = img>tol\n#         return img[np.ix_(mask.any(1),mask.any(0))]\n#     elif img.ndim==3:\n#         gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)\n#         mask = gray_img>tol\n#         check_shape = img[:,:,0][np.ix_(mask.any(1),mask.any(0))].shape[0]\n#         if (check_shape == 0): # image is too dark so that we crop out everything,\n#             return img # return original image\n#         else:\n#             img1=img[:,:,0][np.ix_(mask.any(1),mask.any(0))]\n#             img2=img[:,:,1][np.ix_(mask.any(1),mask.any(0))]\n#             img3=img[:,:,2][np.ix_(mask.any(1),mask.any(0))]\n#             img = np.stack([img1,img2,img3],axis=-1)\n            \n#         return img\n\n# def circle_crop(img):\n#     img = crop_image(img)\n\n#     height, width, depth = img.shape\n#     largest_side = np.max((height, width))\n#     img = cv2.resize(img, (largest_side, largest_side))\n\n#     height, width, depth = img.shape\n\n#     x = width//2\n#     y = height//2\n#     r = np.amin((x, y))\n\n#     circle_img = np.zeros((height, width), np.uint8)\n#     cv2.circle(circle_img, (x, y), int(r), 1, thickness=-1)\n#     img = cv2.bitwise_and(img, img, mask=circle_img)\n#     img = crop_image(img)\n\n#     return img\n    \n# def preprocess_image(base_path, save_path, image_id, HEIGHT, WIDTH, sigmaX=10):\n#     image = cv2.imread(base_path + image_id)\n#     image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n#     image = circle_crop(image)\n#     image = cv2.resize(image, (HEIGHT, WIDTH))\n#     image = cv2.addWeighted(image, 4, cv2.GaussianBlur(image, (0,0), sigmaX), -4 , 128)\n#     cv2.imwrite(save_path + image_id, image)\n    \n# # Pre-procecss train set\n# for i, image_id in enumerate(X_train['id_code']):\n#     preprocess_image(train_base_path, train_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss validation set\n# for i, image_id in enumerate(X_val['id_code']):\n#     preprocess_image(train_base_path, validation_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss test set\n# for i, image_id in enumerate(test['id_code']):\n#     preprocess_image(test_base_path, test_dest_path, image_id, HEIGHT, WIDTH)","metadata":{"execution":{"iopub.status.busy":"2024-04-30T13:40:05.811903Z","iopub.execute_input":"2024-04-30T13:40:05.812239Z","iopub.status.idle":"2024-04-30T13:59:05.009787Z","shell.execute_reply.started":"2024-04-30T13:40:05.81219Z","shell.execute_reply":"2024-04-30T13:59:05.009016Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datagen=ImageDataGenerator(rescale=1./255, \n                           rotation_range=360,\n                           horizontal_flip=True,\n                           vertical_flip=True)\n\ntrain_generator=datagen.flow_from_dataframe(\n                        dataframe=X_train,\n                        directory=\"/kaggle/input/data-main-1/fold1/base_dir_1/train_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\nvalid_generator=datagen.flow_from_dataframe(\n                        dataframe=X_val,\n                        directory=\"/kaggle/input/data-main-1/fold1/base_dir_1/validation_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\ntest_generator=datagen.flow_from_dataframe(  \n                       dataframe=test,\n                       directory=\"/kaggle/input/data-main-1/fold1/base_dir_1/test_images\",\n                       x_col=\"id_code\",\n                       batch_size=1,\n                       class_mode=None,\n                       shuffle=False,\n                       target_size=(HEIGHT, WIDTH),\n                       seed=seed)","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:16:18.752689Z","iopub.execute_input":"2024-06-04T00:16:18.753016Z","iopub.status.idle":"2024-06-04T00:16:35.920084Z","shell.execute_reply.started":"2024-06-04T00:16:18.752958Z","shell.execute_reply":"2024-06-04T00:16:35.919126Z"},"trusted":true},"execution_count":4,"outputs":[{"name":"stdout","text":"Found 2929 validated image filenames belonging to 5 classes.\nFound 733 validated image filenames belonging to 5 classes.\nFound 1928 validated image filenames.\n","output_type":"stream"}]},{"cell_type":"code","source":"# def cosine_decay_with_warmup(global_step,\n#                              learning_rate_base,\n#                              total_steps,\n#                              warmup_learning_rate=0.0,\n#                              warmup_steps=0,\n#                              hold_base_rate_steps=0):\n#     \"\"\"\n#     Cosine decay schedule with warm up period.\n#     In this schedule, the learning rate grows linearly from warmup_learning_rate\n#     to learning_rate_base for warmup_steps, then transitions to a cosine decay\n#     schedule.\n#     :param global_step {int}: global step.\n#     :param learning_rate_base {float}: base learning rate.\n#     :param total_steps {int}: total number of training steps.\n#     :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#     :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#     :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#     :param global_step {int}: global step.\n#     :Returns : a float representing learning rate.\n#     :Raises ValueError: if warmup_learning_rate is larger than learning_rate_base, or if warmup_steps is larger than total_steps.\n#     \"\"\"\n\n#     if total_steps < warmup_steps:\n#         raise ValueError('total_steps must be larger or equal to warmup_steps.')\n#     learning_rate = 0.5 * learning_rate_base * (1 + np.cos(\n#         np.pi *\n#         (global_step - warmup_steps - hold_base_rate_steps\n#          ) / float(total_steps - warmup_steps - hold_base_rate_steps)))\n#     if hold_base_rate_steps > 0:\n#         learning_rate = np.where(global_step > warmup_steps + hold_base_rate_steps,\n#                                  learning_rate, learning_rate_base)\n#     if warmup_steps > 0:\n#         if learning_rate_base < warmup_learning_rate:\n#             raise ValueError('learning_rate_base must be larger or equal to warmup_learning_rate.')\n#         slope = (learning_rate_base - warmup_learning_rate) / warmup_steps\n#         warmup_rate = slope * global_step + warmup_learning_rate\n#         learning_rate = np.where(global_step < warmup_steps, warmup_rate,\n#                                  learning_rate)\n#     return np.where(global_step > total_steps, 0.0, learning_rate)\n\n\n# class WarmUpCosineDecayScheduler(Callback):\n#     \"\"\"Cosine decay with warmup learning rate scheduler\"\"\"\n\n#     def __init__(self,\n#                  learning_rate_base,\n#                  total_steps,\n#                  global_step_init=0,\n#                  warmup_learning_rate=0.0,\n#                  warmup_steps=0,\n#                  hold_base_rate_steps=0,\n#                  verbose=0):\n#         \"\"\"\n#         Constructor for cosine decay with warmup learning rate scheduler.\n#         :param learning_rate_base {float}: base learning rate.\n#         :param total_steps {int}: total number of training steps.\n#         :param global_step_init {int}: initial global step, e.g. from previous checkpoint.\n#         :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#         :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#         :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#         :param verbose {int}: quiet, 1: update messages. (default: {0}).\n#         \"\"\"\n\n#         super(WarmUpCosineDecayScheduler, self).__init__()\n#         self.learning_rate_base = learning_rate_base\n#         self.total_steps = total_steps\n#         self.global_step = global_step_init\n#         self.warmup_learning_rate = warmup_learning_rate\n#         self.warmup_steps = warmup_steps\n#         self.hold_base_rate_steps = hold_base_rate_steps\n#         self.verbose = verbose\n#         self.learning_rates = []\n\n#     def on_batch_end(self, batch, logs=None):\n#         self.global_step = self.global_step + 1\n#         lr = K.get_value(self.model.optimizer.lr)\n#         self.learning_rates.append(lr)\n\n#     def on_batch_begin(self, batch, logs=None):\n#         lr = cosine_decay_with_warmup(global_step=self.global_step,\n#                                       learning_rate_base=self.learning_rate_base,\n#                                       total_steps=self.total_steps,\n#                                       warmup_learning_rate=self.warmup_learning_rate,\n#                                       warmup_steps=self.warmup_steps,\n#                                       hold_base_rate_steps=self.hold_base_rate_steps)\n#         K.set_value(self.model.optimizer.lr, lr)\n#         if self.verbose > 0:\n#             print('\\nBatch %02d: setting learning rate to %s.' % (self.global_step + 1, lr))","metadata":{"execution":{"iopub.status.busy":"2024-04-30T13:59:58.356106Z","iopub.execute_input":"2024-04-30T13:59:58.356396Z","iopub.status.idle":"2024-04-30T13:59:58.376216Z","shell.execute_reply.started":"2024-04-30T13:59:58.356355Z","shell.execute_reply":"2024-04-30T13:59:58.375189Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df_path =  \"/kaggle/input/aptos2019-blindness-detection/train.csv\"\ntest_df_path = '/kaggle/input/aptos2019-blindness-detection/test.csv'\ntrain_img_path =  \"/kaggle/input/aptos2019-blindness-detection/train_images/\"\ntest_img_path =  '/kaggle/input/aptos2019-blindness-detection/test_images/'","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:16:45.440373Z","iopub.execute_input":"2024-06-04T00:16:45.440738Z","iopub.status.idle":"2024-06-04T00:16:45.445267Z","shell.execute_reply.started":"2024-06-04T00:16:45.440669Z","shell.execute_reply":"2024-06-04T00:16:45.44428Z"},"trusted":true},"execution_count":5,"outputs":[]},{"cell_type":"code","source":"train_df = pd.read_csv(train_df_path)\n\ntrain_df['id_code'] = train_df['id_code'] + \".png\"\nprint(f\"Training images: {train_df.shape[0]}\")\ndisplay(train_df.head())\n\ntest_df = pd.read_csv(test_df_path)\n\ntest_df['id_code'] = test_df['id_code'] + \".png\"\nprint(f\"Testing Images: {test_df.shape[0]}\")\ndisplay(test_df.head())","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:16:58.483979Z","iopub.execute_input":"2024-06-04T00:16:58.484302Z","iopub.status.idle":"2024-06-04T00:16:58.553371Z","shell.execute_reply.started":"2024-06-04T00:16:58.484255Z","shell.execute_reply":"2024-06-04T00:16:58.552579Z"},"trusted":true},"execution_count":6,"outputs":[{"name":"stdout","text":"Training images: 3662\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code  diagnosis\n0  000c1434d8d7.png          2\n1  001639a390f0.png          4\n2  0024cdab0c1e.png          1\n3  002c21358ce6.png          0\n4  005b95c28852.png          0","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>id_code</th>\n      <th>diagnosis</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000c1434d8d7.png</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>001639a390f0.png</td>\n      <td>4</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0024cdab0c1e.png</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>002c21358ce6.png</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>005b95c28852.png</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}},{"name":"stdout","text":"Testing Images: 1928\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code\n0  0005cfc8afb6.png\n1  003f0afdcd15.png\n2  006efc72b638.png\n3  00836aaacf06.png\n4  009245722fa4.png","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>id_code</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0005cfc8afb6.png</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>003f0afdcd15.png</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>006efc72b638.png</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>00836aaacf06.png</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>009245722fa4.png</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"n_classes = train_df['diagnosis'].nunique()\nprint(n_classes)","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:17:02.234455Z","iopub.execute_input":"2024-06-04T00:17:02.234816Z","iopub.status.idle":"2024-06-04T00:17:02.241863Z","shell.execute_reply.started":"2024-06-04T00:17:02.234766Z","shell.execute_reply":"2024-06-04T00:17:02.241122Z"},"trusted":true},"execution_count":7,"outputs":[{"name":"stdout","text":"5\n","output_type":"stream"}]},{"cell_type":"code","source":"def create_model(input_shape, n_out):\n    input_tensor = Input(shape=input_shape)\n    base_model = EfficientNetB5(weights=None, \n                                include_top=False,\n                                input_tensor=input_tensor)\n    base_model.load_weights('../input/efficientnet-keras-weights-b0b5/efficientnet-b5_imagenet_1000_notop.h5')\n\n    x = GlobalAveragePooling2D()(base_model.output)\n    x = Dropout(0.5)(x)\n    x = Dense(2048, activation='relu')(x)\n    x = Dropout(0.5)(x)\n    final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n    model = Model(input_tensor, final_output)\n    \n    return model","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:17:04.714785Z","iopub.execute_input":"2024-06-04T00:17:04.715083Z","iopub.status.idle":"2024-06-04T00:17:04.72206Z","shell.execute_reply.started":"2024-06-04T00:17:04.715042Z","shell.execute_reply":"2024-06-04T00:17:04.721286Z"},"trusted":true},"execution_count":8,"outputs":[]},{"cell_type":"code","source":"model = create_model(input_shape=(HEIGHT, WIDTH, CHANNELS), n_out=n_classes)\n\nfor layer in model.layers:\n    layer.trainable = False\n\nfor i in range(-2, 0):\n    model.layers[i].trainable = True\n\n# cosine_lr_1st = WarmUpCosineDecayScheduler(learning_rate_base=WARMUP_LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_1st,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_1st,\n#                                            hold_base_rate_steps=(2 * STEP_SIZE))\n\n# metric_list = [\"accuracy\"]\n# callback_list = [cosine_lr_1st]\n# optimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:17:09.291665Z","iopub.execute_input":"2024-06-04T00:17:09.291959Z","iopub.status.idle":"2024-06-04T00:17:41.192209Z","shell.execute_reply.started":"2024-06-04T00:17:09.291918Z","shell.execute_reply":"2024-06-04T00:17:41.188522Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":9,"outputs":[{"name":"stdout","text":"__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_1 (InputLayer)            (None, 224, 224, 3)  0                                            \n__________________________________________________________________________________________________\nconv2d_1 (Conv2D)               (None, 112, 112, 48) 1296        input_1[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_1 (BatchNor (None, 112, 112, 48) 192         conv2d_1[0][0]                   \n__________________________________________________________________________________________________\nswish_1 (Swish)                 (None, 112, 112, 48) 0           batch_normalization_1[0][0]      \n__________________________________________________________________________________________________\ndepthwise_conv2d_1 (DepthwiseCo (None, 112, 112, 48) 432         swish_1[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_2 (BatchNor (None, 112, 112, 48) 192         depthwise_conv2d_1[0][0]         \n__________________________________________________________________________________________________\nswish_2 (Swish)                 (None, 112, 112, 48) 0           batch_normalization_2[0][0]      \n__________________________________________________________________________________________________\nlambda_1 (Lambda)               (None, 1, 1, 48)     0           swish_2[0][0]                    \n__________________________________________________________________________________________________\nconv2d_2 (Conv2D)               (None, 1, 1, 12)     588         lambda_1[0][0]                   \n__________________________________________________________________________________________________\nswish_3 (Swish)                 (None, 1, 1, 12)     0           conv2d_2[0][0]                   \n__________________________________________________________________________________________________\nconv2d_3 (Conv2D)               (None, 1, 1, 48)     624         swish_3[0][0]                    \n__________________________________________________________________________________________________\nactivation_1 (Activation)       (None, 1, 1, 48)     0           conv2d_3[0][0]                   \n__________________________________________________________________________________________________\nmultiply_1 (Multiply)           (None, 112, 112, 48) 0           activation_1[0][0]               \n                                                                 swish_2[0][0]                    \n__________________________________________________________________________________________________\nconv2d_4 (Conv2D)               (None, 112, 112, 24) 1152        multiply_1[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_3 (BatchNor (None, 112, 112, 24) 96          conv2d_4[0][0]                   \n__________________________________________________________________________________________________\ndepthwise_conv2d_2 (DepthwiseCo (None, 112, 112, 24) 216         batch_normalization_3[0][0]      \n__________________________________________________________________________________________________\nbatch_normalization_4 (BatchNor (None, 112, 112, 24) 96          depthwise_conv2d_2[0][0]         \n__________________________________________________________________________________________________\nswish_4 (Swish)                 (None, 112, 112, 24) 0           batch_normalization_4[0][0]      \n__________________________________________________________________________________________________\nlambda_2 (Lambda)               (None, 1, 1, 24)     0           swish_4[0][0]                    \n__________________________________________________________________________________________________\nconv2d_5 (Conv2D)               (None, 1, 1, 6)      150         lambda_2[0][0]                   \n__________________________________________________________________________________________________\nswish_5 (Swish)                 (None, 1, 1, 6)      0           conv2d_5[0][0]                   \n__________________________________________________________________________________________________\nconv2d_6 (Conv2D)               (None, 1, 1, 24)     168         swish_5[0][0]                    \n__________________________________________________________________________________________________\nactivation_2 (Activation)       (None, 1, 1, 24)     0           conv2d_6[0][0]                   \n__________________________________________________________________________________________________\nmultiply_2 (Multiply)           (None, 112, 112, 24) 0           activation_2[0][0]               \n                                                                 swish_4[0][0]                    \n__________________________________________________________________________________________________\nconv2d_7 (Conv2D)               (None, 112, 112, 24) 576         multiply_2[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_5 (BatchNor (None, 112, 112, 24) 96          conv2d_7[0][0]                   \n__________________________________________________________________________________________________\ndrop_connect_1 (DropConnect)    (None, 112, 112, 24) 0           batch_normalization_5[0][0]      \n__________________________________________________________________________________________________\nadd_1 (Add)                     (None, 112, 112, 24) 0           drop_connect_1[0][0]             \n                                                                 batch_normalization_3[0][0]      \n__________________________________________________________________________________________________\ndepthwise_conv2d_3 (DepthwiseCo (None, 112, 112, 24) 216         add_1[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_6 (BatchNor (None, 112, 112, 24) 96          depthwise_conv2d_3[0][0]         \n__________________________________________________________________________________________________\nswish_6 (Swish)                 (None, 112, 112, 24) 0           batch_normalization_6[0][0]      \n__________________________________________________________________________________________________\nlambda_3 (Lambda)               (None, 1, 1, 24)     0           swish_6[0][0]                    \n__________________________________________________________________________________________________\nconv2d_8 (Conv2D)               (None, 1, 1, 6)      150         lambda_3[0][0]                   \n__________________________________________________________________________________________________\nswish_7 (Swish)                 (None, 1, 1, 6)      0           conv2d_8[0][0]                   \n__________________________________________________________________________________________________\nconv2d_9 (Conv2D)               (None, 1, 1, 24)     168         swish_7[0][0]                    \n__________________________________________________________________________________________________\nactivation_3 (Activation)       (None, 1, 1, 24)     0           conv2d_9[0][0]                   \n__________________________________________________________________________________________________\nmultiply_3 (Multiply)           (None, 112, 112, 24) 0           activation_3[0][0]               \n                                                                 swish_6[0][0]                    \n__________________________________________________________________________________________________\nconv2d_10 (Conv2D)              (None, 112, 112, 24) 576         multiply_3[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_7 (BatchNor (None, 112, 112, 24) 96          conv2d_10[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_2 (DropConnect)    (None, 112, 112, 24) 0           batch_normalization_7[0][0]      \n__________________________________________________________________________________________________\nadd_2 (Add)                     (None, 112, 112, 24) 0           drop_connect_2[0][0]             \n                                                                 add_1[0][0]                      \n__________________________________________________________________________________________________\nconv2d_11 (Conv2D)              (None, 112, 112, 144 3456        add_2[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_8 (BatchNor (None, 112, 112, 144 576         conv2d_11[0][0]                  \n__________________________________________________________________________________________________\nswish_8 (Swish)                 (None, 112, 112, 144 0           batch_normalization_8[0][0]      \n__________________________________________________________________________________________________\ndepthwise_conv2d_4 (DepthwiseCo (None, 56, 56, 144)  1296        swish_8[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_9 (BatchNor (None, 56, 56, 144)  576         depthwise_conv2d_4[0][0]         \n__________________________________________________________________________________________________\nswish_9 (Swish)                 (None, 56, 56, 144)  0           batch_normalization_9[0][0]      \n__________________________________________________________________________________________________\nlambda_4 (Lambda)               (None, 1, 1, 144)    0           swish_9[0][0]                    \n__________________________________________________________________________________________________\nconv2d_12 (Conv2D)              (None, 1, 1, 6)      870         lambda_4[0][0]                   \n__________________________________________________________________________________________________\nswish_10 (Swish)                (None, 1, 1, 6)      0           conv2d_12[0][0]                  \n__________________________________________________________________________________________________\nconv2d_13 (Conv2D)              (None, 1, 1, 144)    1008        swish_10[0][0]                   \n__________________________________________________________________________________________________\nactivation_4 (Activation)       (None, 1, 1, 144)    0           conv2d_13[0][0]                  \n__________________________________________________________________________________________________\nmultiply_4 (Multiply)           (None, 56, 56, 144)  0           activation_4[0][0]               \n                                                                 swish_9[0][0]                    \n__________________________________________________________________________________________________\nconv2d_14 (Conv2D)              (None, 56, 56, 40)   5760        multiply_4[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_10 (BatchNo (None, 56, 56, 40)   160         conv2d_14[0][0]                  \n__________________________________________________________________________________________________\nconv2d_15 (Conv2D)              (None, 56, 56, 240)  9600        batch_normalization_10[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_11 (BatchNo (None, 56, 56, 240)  960         conv2d_15[0][0]                  \n__________________________________________________________________________________________________\nswish_11 (Swish)                (None, 56, 56, 240)  0           batch_normalization_11[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_5 (DepthwiseCo (None, 56, 56, 240)  2160        swish_11[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_12 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_5[0][0]         \n__________________________________________________________________________________________________\nswish_12 (Swish)                (None, 56, 56, 240)  0           batch_normalization_12[0][0]     \n__________________________________________________________________________________________________\nlambda_5 (Lambda)               (None, 1, 1, 240)    0           swish_12[0][0]                   \n__________________________________________________________________________________________________\nconv2d_16 (Conv2D)              (None, 1, 1, 10)     2410        lambda_5[0][0]                   \n__________________________________________________________________________________________________\nswish_13 (Swish)                (None, 1, 1, 10)     0           conv2d_16[0][0]                  \n__________________________________________________________________________________________________\nconv2d_17 (Conv2D)              (None, 1, 1, 240)    2640        swish_13[0][0]                   \n__________________________________________________________________________________________________\nactivation_5 (Activation)       (None, 1, 1, 240)    0           conv2d_17[0][0]                  \n__________________________________________________________________________________________________\nmultiply_5 (Multiply)           (None, 56, 56, 240)  0           activation_5[0][0]               \n                                                                 swish_12[0][0]                   \n__________________________________________________________________________________________________\nconv2d_18 (Conv2D)              (None, 56, 56, 40)   9600        multiply_5[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_13 (BatchNo (None, 56, 56, 40)   160         conv2d_18[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_3 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_13[0][0]     \n__________________________________________________________________________________________________\nadd_3 (Add)                     (None, 56, 56, 40)   0           drop_connect_3[0][0]             \n                                                                 batch_normalization_10[0][0]     \n__________________________________________________________________________________________________\nconv2d_19 (Conv2D)              (None, 56, 56, 240)  9600        add_3[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_14 (BatchNo (None, 56, 56, 240)  960         conv2d_19[0][0]                  \n__________________________________________________________________________________________________\nswish_14 (Swish)                (None, 56, 56, 240)  0           batch_normalization_14[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_6 (DepthwiseCo (None, 56, 56, 240)  2160        swish_14[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_15 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_6[0][0]         \n__________________________________________________________________________________________________\nswish_15 (Swish)                (None, 56, 56, 240)  0           batch_normalization_15[0][0]     \n__________________________________________________________________________________________________\nlambda_6 (Lambda)               (None, 1, 1, 240)    0           swish_15[0][0]                   \n__________________________________________________________________________________________________\nconv2d_20 (Conv2D)              (None, 1, 1, 10)     2410        lambda_6[0][0]                   \n__________________________________________________________________________________________________\nswish_16 (Swish)                (None, 1, 1, 10)     0           conv2d_20[0][0]                  \n__________________________________________________________________________________________________\nconv2d_21 (Conv2D)              (None, 1, 1, 240)    2640        swish_16[0][0]                   \n__________________________________________________________________________________________________\nactivation_6 (Activation)       (None, 1, 1, 240)    0           conv2d_21[0][0]                  \n__________________________________________________________________________________________________\nmultiply_6 (Multiply)           (None, 56, 56, 240)  0           activation_6[0][0]               \n                                                                 swish_15[0][0]                   \n__________________________________________________________________________________________________\nconv2d_22 (Conv2D)              (None, 56, 56, 40)   9600        multiply_6[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_16 (BatchNo (None, 56, 56, 40)   160         conv2d_22[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_4 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_16[0][0]     \n__________________________________________________________________________________________________\nadd_4 (Add)                     (None, 56, 56, 40)   0           drop_connect_4[0][0]             \n                                                                 add_3[0][0]                      \n__________________________________________________________________________________________________\nconv2d_23 (Conv2D)              (None, 56, 56, 240)  9600        add_4[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_17 (BatchNo (None, 56, 56, 240)  960         conv2d_23[0][0]                  \n__________________________________________________________________________________________________\nswish_17 (Swish)                (None, 56, 56, 240)  0           batch_normalization_17[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_7 (DepthwiseCo (None, 56, 56, 240)  2160        swish_17[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_18 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_7[0][0]         \n__________________________________________________________________________________________________\nswish_18 (Swish)                (None, 56, 56, 240)  0           batch_normalization_18[0][0]     \n__________________________________________________________________________________________________\nlambda_7 (Lambda)               (None, 1, 1, 240)    0           swish_18[0][0]                   \n__________________________________________________________________________________________________\nconv2d_24 (Conv2D)              (None, 1, 1, 10)     2410        lambda_7[0][0]                   \n__________________________________________________________________________________________________\nswish_19 (Swish)                (None, 1, 1, 10)     0           conv2d_24[0][0]                  \n__________________________________________________________________________________________________\nconv2d_25 (Conv2D)              (None, 1, 1, 240)    2640        swish_19[0][0]                   \n__________________________________________________________________________________________________\nactivation_7 (Activation)       (None, 1, 1, 240)    0           conv2d_25[0][0]                  \n__________________________________________________________________________________________________\nmultiply_7 (Multiply)           (None, 56, 56, 240)  0           activation_7[0][0]               \n                                                                 swish_18[0][0]                   \n__________________________________________________________________________________________________\nconv2d_26 (Conv2D)              (None, 56, 56, 40)   9600        multiply_7[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_19 (BatchNo (None, 56, 56, 40)   160         conv2d_26[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_5 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_19[0][0]     \n__________________________________________________________________________________________________\nadd_5 (Add)                     (None, 56, 56, 40)   0           drop_connect_5[0][0]             \n                                                                 add_4[0][0]                      \n__________________________________________________________________________________________________\nconv2d_27 (Conv2D)              (None, 56, 56, 240)  9600        add_5[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_20 (BatchNo (None, 56, 56, 240)  960         conv2d_27[0][0]                  \n__________________________________________________________________________________________________\nswish_20 (Swish)                (None, 56, 56, 240)  0           batch_normalization_20[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_8 (DepthwiseCo (None, 56, 56, 240)  2160        swish_20[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_21 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_8[0][0]         \n__________________________________________________________________________________________________\nswish_21 (Swish)                (None, 56, 56, 240)  0           batch_normalization_21[0][0]     \n__________________________________________________________________________________________________\nlambda_8 (Lambda)               (None, 1, 1, 240)    0           swish_21[0][0]                   \n__________________________________________________________________________________________________\nconv2d_28 (Conv2D)              (None, 1, 1, 10)     2410        lambda_8[0][0]                   \n__________________________________________________________________________________________________\nswish_22 (Swish)                (None, 1, 1, 10)     0           conv2d_28[0][0]                  \n__________________________________________________________________________________________________\nconv2d_29 (Conv2D)              (None, 1, 1, 240)    2640        swish_22[0][0]                   \n__________________________________________________________________________________________________\nactivation_8 (Activation)       (None, 1, 1, 240)    0           conv2d_29[0][0]                  \n__________________________________________________________________________________________________\nmultiply_8 (Multiply)           (None, 56, 56, 240)  0           activation_8[0][0]               \n                                                                 swish_21[0][0]                   \n__________________________________________________________________________________________________\nconv2d_30 (Conv2D)              (None, 56, 56, 40)   9600        multiply_8[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_22 (BatchNo (None, 56, 56, 40)   160         conv2d_30[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_6 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_22[0][0]     \n__________________________________________________________________________________________________\nadd_6 (Add)                     (None, 56, 56, 40)   0           drop_connect_6[0][0]             \n                                                                 add_5[0][0]                      \n__________________________________________________________________________________________________\nconv2d_31 (Conv2D)              (None, 56, 56, 240)  9600        add_6[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_23 (BatchNo (None, 56, 56, 240)  960         conv2d_31[0][0]                  \n__________________________________________________________________________________________________\nswish_23 (Swish)                (None, 56, 56, 240)  0           batch_normalization_23[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_9 (DepthwiseCo (None, 28, 28, 240)  6000        swish_23[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_24 (BatchNo (None, 28, 28, 240)  960         depthwise_conv2d_9[0][0]         \n__________________________________________________________________________________________________\nswish_24 (Swish)                (None, 28, 28, 240)  0           batch_normalization_24[0][0]     \n__________________________________________________________________________________________________\nlambda_9 (Lambda)               (None, 1, 1, 240)    0           swish_24[0][0]                   \n__________________________________________________________________________________________________\nconv2d_32 (Conv2D)              (None, 1, 1, 10)     2410        lambda_9[0][0]                   \n__________________________________________________________________________________________________\nswish_25 (Swish)                (None, 1, 1, 10)     0           conv2d_32[0][0]                  \n__________________________________________________________________________________________________\nconv2d_33 (Conv2D)              (None, 1, 1, 240)    2640        swish_25[0][0]                   \n__________________________________________________________________________________________________\nactivation_9 (Activation)       (None, 1, 1, 240)    0           conv2d_33[0][0]                  \n__________________________________________________________________________________________________\nmultiply_9 (Multiply)           (None, 28, 28, 240)  0           activation_9[0][0]               \n                                                                 swish_24[0][0]                   \n__________________________________________________________________________________________________\nconv2d_34 (Conv2D)              (None, 28, 28, 64)   15360       multiply_9[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_25 (BatchNo (None, 28, 28, 64)   256         conv2d_34[0][0]                  \n__________________________________________________________________________________________________\nconv2d_35 (Conv2D)              (None, 28, 28, 384)  24576       batch_normalization_25[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_26 (BatchNo (None, 28, 28, 384)  1536        conv2d_35[0][0]                  \n__________________________________________________________________________________________________\nswish_26 (Swish)                (None, 28, 28, 384)  0           batch_normalization_26[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_10 (DepthwiseC (None, 28, 28, 384)  9600        swish_26[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_27 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_10[0][0]        \n__________________________________________________________________________________________________\nswish_27 (Swish)                (None, 28, 28, 384)  0           batch_normalization_27[0][0]     \n__________________________________________________________________________________________________\nlambda_10 (Lambda)              (None, 1, 1, 384)    0           swish_27[0][0]                   \n__________________________________________________________________________________________________\nconv2d_36 (Conv2D)              (None, 1, 1, 16)     6160        lambda_10[0][0]                  \n__________________________________________________________________________________________________\nswish_28 (Swish)                (None, 1, 1, 16)     0           conv2d_36[0][0]                  \n__________________________________________________________________________________________________\nconv2d_37 (Conv2D)              (None, 1, 1, 384)    6528        swish_28[0][0]                   \n__________________________________________________________________________________________________\nactivation_10 (Activation)      (None, 1, 1, 384)    0           conv2d_37[0][0]                  \n__________________________________________________________________________________________________\nmultiply_10 (Multiply)          (None, 28, 28, 384)  0           activation_10[0][0]              \n                                                                 swish_27[0][0]                   \n__________________________________________________________________________________________________\nconv2d_38 (Conv2D)              (None, 28, 28, 64)   24576       multiply_10[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_28 (BatchNo (None, 28, 28, 64)   256         conv2d_38[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_7 (DropConnect)    (None, 28, 28, 64)   0           batch_normalization_28[0][0]     \n__________________________________________________________________________________________________\nadd_7 (Add)                     (None, 28, 28, 64)   0           drop_connect_7[0][0]             \n                                                                 batch_normalization_25[0][0]     \n__________________________________________________________________________________________________\nconv2d_39 (Conv2D)              (None, 28, 28, 384)  24576       add_7[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_29 (BatchNo (None, 28, 28, 384)  1536        conv2d_39[0][0]                  \n__________________________________________________________________________________________________\nswish_29 (Swish)                (None, 28, 28, 384)  0           batch_normalization_29[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_11 (DepthwiseC (None, 28, 28, 384)  9600        swish_29[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_30 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_11[0][0]        \n__________________________________________________________________________________________________\nswish_30 (Swish)                (None, 28, 28, 384)  0           batch_normalization_30[0][0]     \n__________________________________________________________________________________________________\nlambda_11 (Lambda)              (None, 1, 1, 384)    0           swish_30[0][0]                   \n__________________________________________________________________________________________________\nconv2d_40 (Conv2D)              (None, 1, 1, 16)     6160        lambda_11[0][0]                  \n__________________________________________________________________________________________________\nswish_31 (Swish)                (None, 1, 1, 16)     0           conv2d_40[0][0]                  \n__________________________________________________________________________________________________\nconv2d_41 (Conv2D)              (None, 1, 1, 384)    6528        swish_31[0][0]                   \n__________________________________________________________________________________________________\nactivation_11 (Activation)      (None, 1, 1, 384)    0           conv2d_41[0][0]                  \n__________________________________________________________________________________________________\nmultiply_11 (Multiply)          (None, 28, 28, 384)  0           activation_11[0][0]              \n                                                                 swish_30[0][0]                   \n__________________________________________________________________________________________________\nconv2d_42 (Conv2D)              (None, 28, 28, 64)   24576       multiply_11[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_31 (BatchNo (None, 28, 28, 64)   256         conv2d_42[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_8 (DropConnect)    (None, 28, 28, 64)   0           batch_normalization_31[0][0]     \n__________________________________________________________________________________________________\nadd_8 (Add)                     (None, 28, 28, 64)   0           drop_connect_8[0][0]             \n                                                                 add_7[0][0]                      \n__________________________________________________________________________________________________\nconv2d_43 (Conv2D)              (None, 28, 28, 384)  24576       add_8[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_32 (BatchNo (None, 28, 28, 384)  1536        conv2d_43[0][0]                  \n__________________________________________________________________________________________________\nswish_32 (Swish)                (None, 28, 28, 384)  0           batch_normalization_32[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_12 (DepthwiseC (None, 28, 28, 384)  9600        swish_32[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_33 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_12[0][0]        \n__________________________________________________________________________________________________\nswish_33 (Swish)                (None, 28, 28, 384)  0           batch_normalization_33[0][0]     \n__________________________________________________________________________________________________\nlambda_12 (Lambda)              (None, 1, 1, 384)    0           swish_33[0][0]                   \n__________________________________________________________________________________________________\nconv2d_44 (Conv2D)              (None, 1, 1, 16)     6160        lambda_12[0][0]                  \n__________________________________________________________________________________________________\nswish_34 (Swish)                (None, 1, 1, 16)     0           conv2d_44[0][0]                  \n__________________________________________________________________________________________________\nconv2d_45 (Conv2D)              (None, 1, 1, 384)    6528        swish_34[0][0]                   \n__________________________________________________________________________________________________\nactivation_12 (Activation)      (None, 1, 1, 384)    0           conv2d_45[0][0]                  \n__________________________________________________________________________________________________\nmultiply_12 (Multiply)          (None, 28, 28, 384)  0           activation_12[0][0]              \n                                                                 swish_33[0][0]                   \n__________________________________________________________________________________________________\nconv2d_46 (Conv2D)              (None, 28, 28, 64)   24576       multiply_12[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_34 (BatchNo (None, 28, 28, 64)   256         conv2d_46[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_9 (DropConnect)    (None, 28, 28, 64)   0           batch_normalization_34[0][0]     \n__________________________________________________________________________________________________\nadd_9 (Add)                     (None, 28, 28, 64)   0           drop_connect_9[0][0]             \n                                                                 add_8[0][0]                      \n__________________________________________________________________________________________________\nconv2d_47 (Conv2D)              (None, 28, 28, 384)  24576       add_9[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_35 (BatchNo (None, 28, 28, 384)  1536        conv2d_47[0][0]                  \n__________________________________________________________________________________________________\nswish_35 (Swish)                (None, 28, 28, 384)  0           batch_normalization_35[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_13 (DepthwiseC (None, 28, 28, 384)  9600        swish_35[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_36 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_13[0][0]        \n__________________________________________________________________________________________________\nswish_36 (Swish)                (None, 28, 28, 384)  0           batch_normalization_36[0][0]     \n__________________________________________________________________________________________________\nlambda_13 (Lambda)              (None, 1, 1, 384)    0           swish_36[0][0]                   \n__________________________________________________________________________________________________\nconv2d_48 (Conv2D)              (None, 1, 1, 16)     6160        lambda_13[0][0]                  \n__________________________________________________________________________________________________\nswish_37 (Swish)                (None, 1, 1, 16)     0           conv2d_48[0][0]                  \n__________________________________________________________________________________________________\nconv2d_49 (Conv2D)              (None, 1, 1, 384)    6528        swish_37[0][0]                   \n__________________________________________________________________________________________________\nactivation_13 (Activation)      (None, 1, 1, 384)    0           conv2d_49[0][0]                  \n__________________________________________________________________________________________________\nmultiply_13 (Multiply)          (None, 28, 28, 384)  0           activation_13[0][0]              \n                                                                 swish_36[0][0]                   \n__________________________________________________________________________________________________\nconv2d_50 (Conv2D)              (None, 28, 28, 64)   24576       multiply_13[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_37 (BatchNo (None, 28, 28, 64)   256         conv2d_50[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_10 (DropConnect)   (None, 28, 28, 64)   0           batch_normalization_37[0][0]     \n__________________________________________________________________________________________________\nadd_10 (Add)                    (None, 28, 28, 64)   0           drop_connect_10[0][0]            \n                                                                 add_9[0][0]                      \n__________________________________________________________________________________________________\nconv2d_51 (Conv2D)              (None, 28, 28, 384)  24576       add_10[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_38 (BatchNo (None, 28, 28, 384)  1536        conv2d_51[0][0]                  \n__________________________________________________________________________________________________\nswish_38 (Swish)                (None, 28, 28, 384)  0           batch_normalization_38[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_14 (DepthwiseC (None, 14, 14, 384)  3456        swish_38[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_39 (BatchNo (None, 14, 14, 384)  1536        depthwise_conv2d_14[0][0]        \n__________________________________________________________________________________________________\nswish_39 (Swish)                (None, 14, 14, 384)  0           batch_normalization_39[0][0]     \n__________________________________________________________________________________________________\nlambda_14 (Lambda)              (None, 1, 1, 384)    0           swish_39[0][0]                   \n__________________________________________________________________________________________________\nconv2d_52 (Conv2D)              (None, 1, 1, 16)     6160        lambda_14[0][0]                  \n__________________________________________________________________________________________________\nswish_40 (Swish)                (None, 1, 1, 16)     0           conv2d_52[0][0]                  \n__________________________________________________________________________________________________\nconv2d_53 (Conv2D)              (None, 1, 1, 384)    6528        swish_40[0][0]                   \n__________________________________________________________________________________________________\nactivation_14 (Activation)      (None, 1, 1, 384)    0           conv2d_53[0][0]                  \n__________________________________________________________________________________________________\nmultiply_14 (Multiply)          (None, 14, 14, 384)  0           activation_14[0][0]              \n                                                                 swish_39[0][0]                   \n__________________________________________________________________________________________________\nconv2d_54 (Conv2D)              (None, 14, 14, 128)  49152       multiply_14[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_40 (BatchNo (None, 14, 14, 128)  512         conv2d_54[0][0]                  \n__________________________________________________________________________________________________\nconv2d_55 (Conv2D)              (None, 14, 14, 768)  98304       batch_normalization_40[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_41 (BatchNo (None, 14, 14, 768)  3072        conv2d_55[0][0]                  \n__________________________________________________________________________________________________\nswish_41 (Swish)                (None, 14, 14, 768)  0           batch_normalization_41[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_15 (DepthwiseC (None, 14, 14, 768)  6912        swish_41[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_42 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_15[0][0]        \n__________________________________________________________________________________________________\nswish_42 (Swish)                (None, 14, 14, 768)  0           batch_normalization_42[0][0]     \n__________________________________________________________________________________________________\nlambda_15 (Lambda)              (None, 1, 1, 768)    0           swish_42[0][0]                   \n__________________________________________________________________________________________________\nconv2d_56 (Conv2D)              (None, 1, 1, 32)     24608       lambda_15[0][0]                  \n__________________________________________________________________________________________________\nswish_43 (Swish)                (None, 1, 1, 32)     0           conv2d_56[0][0]                  \n__________________________________________________________________________________________________\nconv2d_57 (Conv2D)              (None, 1, 1, 768)    25344       swish_43[0][0]                   \n__________________________________________________________________________________________________\nactivation_15 (Activation)      (None, 1, 1, 768)    0           conv2d_57[0][0]                  \n__________________________________________________________________________________________________\nmultiply_15 (Multiply)          (None, 14, 14, 768)  0           activation_15[0][0]              \n                                                                 swish_42[0][0]                   \n__________________________________________________________________________________________________\nconv2d_58 (Conv2D)              (None, 14, 14, 128)  98304       multiply_15[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_43 (BatchNo (None, 14, 14, 128)  512         conv2d_58[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_11 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_43[0][0]     \n__________________________________________________________________________________________________\nadd_11 (Add)                    (None, 14, 14, 128)  0           drop_connect_11[0][0]            \n                                                                 batch_normalization_40[0][0]     \n__________________________________________________________________________________________________\nconv2d_59 (Conv2D)              (None, 14, 14, 768)  98304       add_11[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_44 (BatchNo (None, 14, 14, 768)  3072        conv2d_59[0][0]                  \n__________________________________________________________________________________________________\nswish_44 (Swish)                (None, 14, 14, 768)  0           batch_normalization_44[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_16 (DepthwiseC (None, 14, 14, 768)  6912        swish_44[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_45 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_16[0][0]        \n__________________________________________________________________________________________________\nswish_45 (Swish)                (None, 14, 14, 768)  0           batch_normalization_45[0][0]     \n__________________________________________________________________________________________________\nlambda_16 (Lambda)              (None, 1, 1, 768)    0           swish_45[0][0]                   \n__________________________________________________________________________________________________\nconv2d_60 (Conv2D)              (None, 1, 1, 32)     24608       lambda_16[0][0]                  \n__________________________________________________________________________________________________\nswish_46 (Swish)                (None, 1, 1, 32)     0           conv2d_60[0][0]                  \n__________________________________________________________________________________________________\nconv2d_61 (Conv2D)              (None, 1, 1, 768)    25344       swish_46[0][0]                   \n__________________________________________________________________________________________________\nactivation_16 (Activation)      (None, 1, 1, 768)    0           conv2d_61[0][0]                  \n__________________________________________________________________________________________________\nmultiply_16 (Multiply)          (None, 14, 14, 768)  0           activation_16[0][0]              \n                                                                 swish_45[0][0]                   \n__________________________________________________________________________________________________\nconv2d_62 (Conv2D)              (None, 14, 14, 128)  98304       multiply_16[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_46 (BatchNo (None, 14, 14, 128)  512         conv2d_62[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_12 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_46[0][0]     \n__________________________________________________________________________________________________\nadd_12 (Add)                    (None, 14, 14, 128)  0           drop_connect_12[0][0]            \n                                                                 add_11[0][0]                     \n__________________________________________________________________________________________________\nconv2d_63 (Conv2D)              (None, 14, 14, 768)  98304       add_12[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_47 (BatchNo (None, 14, 14, 768)  3072        conv2d_63[0][0]                  \n__________________________________________________________________________________________________\nswish_47 (Swish)                (None, 14, 14, 768)  0           batch_normalization_47[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_17 (DepthwiseC (None, 14, 14, 768)  6912        swish_47[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_48 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_17[0][0]        \n__________________________________________________________________________________________________\nswish_48 (Swish)                (None, 14, 14, 768)  0           batch_normalization_48[0][0]     \n__________________________________________________________________________________________________\nlambda_17 (Lambda)              (None, 1, 1, 768)    0           swish_48[0][0]                   \n__________________________________________________________________________________________________\nconv2d_64 (Conv2D)              (None, 1, 1, 32)     24608       lambda_17[0][0]                  \n__________________________________________________________________________________________________\nswish_49 (Swish)                (None, 1, 1, 32)     0           conv2d_64[0][0]                  \n__________________________________________________________________________________________________\nconv2d_65 (Conv2D)              (None, 1, 1, 768)    25344       swish_49[0][0]                   \n__________________________________________________________________________________________________\nactivation_17 (Activation)      (None, 1, 1, 768)    0           conv2d_65[0][0]                  \n__________________________________________________________________________________________________\nmultiply_17 (Multiply)          (None, 14, 14, 768)  0           activation_17[0][0]              \n                                                                 swish_48[0][0]                   \n__________________________________________________________________________________________________\nconv2d_66 (Conv2D)              (None, 14, 14, 128)  98304       multiply_17[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_49 (BatchNo (None, 14, 14, 128)  512         conv2d_66[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_13 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_49[0][0]     \n__________________________________________________________________________________________________\nadd_13 (Add)                    (None, 14, 14, 128)  0           drop_connect_13[0][0]            \n                                                                 add_12[0][0]                     \n__________________________________________________________________________________________________\nconv2d_67 (Conv2D)              (None, 14, 14, 768)  98304       add_13[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_50 (BatchNo (None, 14, 14, 768)  3072        conv2d_67[0][0]                  \n__________________________________________________________________________________________________\nswish_50 (Swish)                (None, 14, 14, 768)  0           batch_normalization_50[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_18 (DepthwiseC (None, 14, 14, 768)  6912        swish_50[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_51 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_18[0][0]        \n__________________________________________________________________________________________________\nswish_51 (Swish)                (None, 14, 14, 768)  0           batch_normalization_51[0][0]     \n__________________________________________________________________________________________________\nlambda_18 (Lambda)              (None, 1, 1, 768)    0           swish_51[0][0]                   \n__________________________________________________________________________________________________\nconv2d_68 (Conv2D)              (None, 1, 1, 32)     24608       lambda_18[0][0]                  \n__________________________________________________________________________________________________\nswish_52 (Swish)                (None, 1, 1, 32)     0           conv2d_68[0][0]                  \n__________________________________________________________________________________________________\nconv2d_69 (Conv2D)              (None, 1, 1, 768)    25344       swish_52[0][0]                   \n__________________________________________________________________________________________________\nactivation_18 (Activation)      (None, 1, 1, 768)    0           conv2d_69[0][0]                  \n__________________________________________________________________________________________________\nmultiply_18 (Multiply)          (None, 14, 14, 768)  0           activation_18[0][0]              \n                                                                 swish_51[0][0]                   \n__________________________________________________________________________________________________\nconv2d_70 (Conv2D)              (None, 14, 14, 128)  98304       multiply_18[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_52 (BatchNo (None, 14, 14, 128)  512         conv2d_70[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_14 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_52[0][0]     \n__________________________________________________________________________________________________\nadd_14 (Add)                    (None, 14, 14, 128)  0           drop_connect_14[0][0]            \n                                                                 add_13[0][0]                     \n__________________________________________________________________________________________________\nconv2d_71 (Conv2D)              (None, 14, 14, 768)  98304       add_14[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_53 (BatchNo (None, 14, 14, 768)  3072        conv2d_71[0][0]                  \n__________________________________________________________________________________________________\nswish_53 (Swish)                (None, 14, 14, 768)  0           batch_normalization_53[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_19 (DepthwiseC (None, 14, 14, 768)  6912        swish_53[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_54 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_19[0][0]        \n__________________________________________________________________________________________________\nswish_54 (Swish)                (None, 14, 14, 768)  0           batch_normalization_54[0][0]     \n__________________________________________________________________________________________________\nlambda_19 (Lambda)              (None, 1, 1, 768)    0           swish_54[0][0]                   \n__________________________________________________________________________________________________\nconv2d_72 (Conv2D)              (None, 1, 1, 32)     24608       lambda_19[0][0]                  \n__________________________________________________________________________________________________\nswish_55 (Swish)                (None, 1, 1, 32)     0           conv2d_72[0][0]                  \n__________________________________________________________________________________________________\nconv2d_73 (Conv2D)              (None, 1, 1, 768)    25344       swish_55[0][0]                   \n__________________________________________________________________________________________________\nactivation_19 (Activation)      (None, 1, 1, 768)    0           conv2d_73[0][0]                  \n__________________________________________________________________________________________________\nmultiply_19 (Multiply)          (None, 14, 14, 768)  0           activation_19[0][0]              \n                                                                 swish_54[0][0]                   \n__________________________________________________________________________________________________\nconv2d_74 (Conv2D)              (None, 14, 14, 128)  98304       multiply_19[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_55 (BatchNo (None, 14, 14, 128)  512         conv2d_74[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_15 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_55[0][0]     \n__________________________________________________________________________________________________\nadd_15 (Add)                    (None, 14, 14, 128)  0           drop_connect_15[0][0]            \n                                                                 add_14[0][0]                     \n__________________________________________________________________________________________________\nconv2d_75 (Conv2D)              (None, 14, 14, 768)  98304       add_15[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_56 (BatchNo (None, 14, 14, 768)  3072        conv2d_75[0][0]                  \n__________________________________________________________________________________________________\nswish_56 (Swish)                (None, 14, 14, 768)  0           batch_normalization_56[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_20 (DepthwiseC (None, 14, 14, 768)  6912        swish_56[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_57 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_20[0][0]        \n__________________________________________________________________________________________________\nswish_57 (Swish)                (None, 14, 14, 768)  0           batch_normalization_57[0][0]     \n__________________________________________________________________________________________________\nlambda_20 (Lambda)              (None, 1, 1, 768)    0           swish_57[0][0]                   \n__________________________________________________________________________________________________\nconv2d_76 (Conv2D)              (None, 1, 1, 32)     24608       lambda_20[0][0]                  \n__________________________________________________________________________________________________\nswish_58 (Swish)                (None, 1, 1, 32)     0           conv2d_76[0][0]                  \n__________________________________________________________________________________________________\nconv2d_77 (Conv2D)              (None, 1, 1, 768)    25344       swish_58[0][0]                   \n__________________________________________________________________________________________________\nactivation_20 (Activation)      (None, 1, 1, 768)    0           conv2d_77[0][0]                  \n__________________________________________________________________________________________________\nmultiply_20 (Multiply)          (None, 14, 14, 768)  0           activation_20[0][0]              \n                                                                 swish_57[0][0]                   \n__________________________________________________________________________________________________\nconv2d_78 (Conv2D)              (None, 14, 14, 128)  98304       multiply_20[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_58 (BatchNo (None, 14, 14, 128)  512         conv2d_78[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_16 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_58[0][0]     \n__________________________________________________________________________________________________\nadd_16 (Add)                    (None, 14, 14, 128)  0           drop_connect_16[0][0]            \n                                                                 add_15[0][0]                     \n__________________________________________________________________________________________________\nconv2d_79 (Conv2D)              (None, 14, 14, 768)  98304       add_16[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_59 (BatchNo (None, 14, 14, 768)  3072        conv2d_79[0][0]                  \n__________________________________________________________________________________________________\nswish_59 (Swish)                (None, 14, 14, 768)  0           batch_normalization_59[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_21 (DepthwiseC (None, 14, 14, 768)  19200       swish_59[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_60 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_21[0][0]        \n__________________________________________________________________________________________________\nswish_60 (Swish)                (None, 14, 14, 768)  0           batch_normalization_60[0][0]     \n__________________________________________________________________________________________________\nlambda_21 (Lambda)              (None, 1, 1, 768)    0           swish_60[0][0]                   \n__________________________________________________________________________________________________\nconv2d_80 (Conv2D)              (None, 1, 1, 32)     24608       lambda_21[0][0]                  \n__________________________________________________________________________________________________\nswish_61 (Swish)                (None, 1, 1, 32)     0           conv2d_80[0][0]                  \n__________________________________________________________________________________________________\nconv2d_81 (Conv2D)              (None, 1, 1, 768)    25344       swish_61[0][0]                   \n__________________________________________________________________________________________________\nactivation_21 (Activation)      (None, 1, 1, 768)    0           conv2d_81[0][0]                  \n__________________________________________________________________________________________________\nmultiply_21 (Multiply)          (None, 14, 14, 768)  0           activation_21[0][0]              \n                                                                 swish_60[0][0]                   \n__________________________________________________________________________________________________\nconv2d_82 (Conv2D)              (None, 14, 14, 176)  135168      multiply_21[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_61 (BatchNo (None, 14, 14, 176)  704         conv2d_82[0][0]                  \n__________________________________________________________________________________________________\nconv2d_83 (Conv2D)              (None, 14, 14, 1056) 185856      batch_normalization_61[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_62 (BatchNo (None, 14, 14, 1056) 4224        conv2d_83[0][0]                  \n__________________________________________________________________________________________________\nswish_62 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_62[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_22 (DepthwiseC (None, 14, 14, 1056) 26400       swish_62[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_63 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_22[0][0]        \n__________________________________________________________________________________________________\nswish_63 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_63[0][0]     \n__________________________________________________________________________________________________\nlambda_22 (Lambda)              (None, 1, 1, 1056)   0           swish_63[0][0]                   \n__________________________________________________________________________________________________\nconv2d_84 (Conv2D)              (None, 1, 1, 44)     46508       lambda_22[0][0]                  \n__________________________________________________________________________________________________\nswish_64 (Swish)                (None, 1, 1, 44)     0           conv2d_84[0][0]                  \n__________________________________________________________________________________________________\nconv2d_85 (Conv2D)              (None, 1, 1, 1056)   47520       swish_64[0][0]                   \n__________________________________________________________________________________________________\nactivation_22 (Activation)      (None, 1, 1, 1056)   0           conv2d_85[0][0]                  \n__________________________________________________________________________________________________\nmultiply_22 (Multiply)          (None, 14, 14, 1056) 0           activation_22[0][0]              \n                                                                 swish_63[0][0]                   \n__________________________________________________________________________________________________\nconv2d_86 (Conv2D)              (None, 14, 14, 176)  185856      multiply_22[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_64 (BatchNo (None, 14, 14, 176)  704         conv2d_86[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_17 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_64[0][0]     \n__________________________________________________________________________________________________\nadd_17 (Add)                    (None, 14, 14, 176)  0           drop_connect_17[0][0]            \n                                                                 batch_normalization_61[0][0]     \n__________________________________________________________________________________________________\nconv2d_87 (Conv2D)              (None, 14, 14, 1056) 185856      add_17[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_65 (BatchNo (None, 14, 14, 1056) 4224        conv2d_87[0][0]                  \n__________________________________________________________________________________________________\nswish_65 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_65[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_23 (DepthwiseC (None, 14, 14, 1056) 26400       swish_65[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_66 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_23[0][0]        \n__________________________________________________________________________________________________\nswish_66 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_66[0][0]     \n__________________________________________________________________________________________________\nlambda_23 (Lambda)              (None, 1, 1, 1056)   0           swish_66[0][0]                   \n__________________________________________________________________________________________________\nconv2d_88 (Conv2D)              (None, 1, 1, 44)     46508       lambda_23[0][0]                  \n__________________________________________________________________________________________________\nswish_67 (Swish)                (None, 1, 1, 44)     0           conv2d_88[0][0]                  \n__________________________________________________________________________________________________\nconv2d_89 (Conv2D)              (None, 1, 1, 1056)   47520       swish_67[0][0]                   \n__________________________________________________________________________________________________\nactivation_23 (Activation)      (None, 1, 1, 1056)   0           conv2d_89[0][0]                  \n__________________________________________________________________________________________________\nmultiply_23 (Multiply)          (None, 14, 14, 1056) 0           activation_23[0][0]              \n                                                                 swish_66[0][0]                   \n__________________________________________________________________________________________________\nconv2d_90 (Conv2D)              (None, 14, 14, 176)  185856      multiply_23[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_67 (BatchNo (None, 14, 14, 176)  704         conv2d_90[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_18 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_67[0][0]     \n__________________________________________________________________________________________________\nadd_18 (Add)                    (None, 14, 14, 176)  0           drop_connect_18[0][0]            \n                                                                 add_17[0][0]                     \n__________________________________________________________________________________________________\nconv2d_91 (Conv2D)              (None, 14, 14, 1056) 185856      add_18[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_68 (BatchNo (None, 14, 14, 1056) 4224        conv2d_91[0][0]                  \n__________________________________________________________________________________________________\nswish_68 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_68[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_24 (DepthwiseC (None, 14, 14, 1056) 26400       swish_68[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_69 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_24[0][0]        \n__________________________________________________________________________________________________\nswish_69 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_69[0][0]     \n__________________________________________________________________________________________________\nlambda_24 (Lambda)              (None, 1, 1, 1056)   0           swish_69[0][0]                   \n__________________________________________________________________________________________________\nconv2d_92 (Conv2D)              (None, 1, 1, 44)     46508       lambda_24[0][0]                  \n__________________________________________________________________________________________________\nswish_70 (Swish)                (None, 1, 1, 44)     0           conv2d_92[0][0]                  \n__________________________________________________________________________________________________\nconv2d_93 (Conv2D)              (None, 1, 1, 1056)   47520       swish_70[0][0]                   \n__________________________________________________________________________________________________\nactivation_24 (Activation)      (None, 1, 1, 1056)   0           conv2d_93[0][0]                  \n__________________________________________________________________________________________________\nmultiply_24 (Multiply)          (None, 14, 14, 1056) 0           activation_24[0][0]              \n                                                                 swish_69[0][0]                   \n__________________________________________________________________________________________________\nconv2d_94 (Conv2D)              (None, 14, 14, 176)  185856      multiply_24[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_70 (BatchNo (None, 14, 14, 176)  704         conv2d_94[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_19 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_70[0][0]     \n__________________________________________________________________________________________________\nadd_19 (Add)                    (None, 14, 14, 176)  0           drop_connect_19[0][0]            \n                                                                 add_18[0][0]                     \n__________________________________________________________________________________________________\nconv2d_95 (Conv2D)              (None, 14, 14, 1056) 185856      add_19[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_71 (BatchNo (None, 14, 14, 1056) 4224        conv2d_95[0][0]                  \n__________________________________________________________________________________________________\nswish_71 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_71[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_25 (DepthwiseC (None, 14, 14, 1056) 26400       swish_71[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_72 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_25[0][0]        \n__________________________________________________________________________________________________\nswish_72 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_72[0][0]     \n__________________________________________________________________________________________________\nlambda_25 (Lambda)              (None, 1, 1, 1056)   0           swish_72[0][0]                   \n__________________________________________________________________________________________________\nconv2d_96 (Conv2D)              (None, 1, 1, 44)     46508       lambda_25[0][0]                  \n__________________________________________________________________________________________________\nswish_73 (Swish)                (None, 1, 1, 44)     0           conv2d_96[0][0]                  \n__________________________________________________________________________________________________\nconv2d_97 (Conv2D)              (None, 1, 1, 1056)   47520       swish_73[0][0]                   \n__________________________________________________________________________________________________\nactivation_25 (Activation)      (None, 1, 1, 1056)   0           conv2d_97[0][0]                  \n__________________________________________________________________________________________________\nmultiply_25 (Multiply)          (None, 14, 14, 1056) 0           activation_25[0][0]              \n                                                                 swish_72[0][0]                   \n__________________________________________________________________________________________________\nconv2d_98 (Conv2D)              (None, 14, 14, 176)  185856      multiply_25[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_73 (BatchNo (None, 14, 14, 176)  704         conv2d_98[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_20 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_73[0][0]     \n__________________________________________________________________________________________________\nadd_20 (Add)                    (None, 14, 14, 176)  0           drop_connect_20[0][0]            \n                                                                 add_19[0][0]                     \n__________________________________________________________________________________________________\nconv2d_99 (Conv2D)              (None, 14, 14, 1056) 185856      add_20[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_74 (BatchNo (None, 14, 14, 1056) 4224        conv2d_99[0][0]                  \n__________________________________________________________________________________________________\nswish_74 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_74[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_26 (DepthwiseC (None, 14, 14, 1056) 26400       swish_74[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_75 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_26[0][0]        \n__________________________________________________________________________________________________\nswish_75 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_75[0][0]     \n__________________________________________________________________________________________________\nlambda_26 (Lambda)              (None, 1, 1, 1056)   0           swish_75[0][0]                   \n__________________________________________________________________________________________________\nconv2d_100 (Conv2D)             (None, 1, 1, 44)     46508       lambda_26[0][0]                  \n__________________________________________________________________________________________________\nswish_76 (Swish)                (None, 1, 1, 44)     0           conv2d_100[0][0]                 \n__________________________________________________________________________________________________\nconv2d_101 (Conv2D)             (None, 1, 1, 1056)   47520       swish_76[0][0]                   \n__________________________________________________________________________________________________\nactivation_26 (Activation)      (None, 1, 1, 1056)   0           conv2d_101[0][0]                 \n__________________________________________________________________________________________________\nmultiply_26 (Multiply)          (None, 14, 14, 1056) 0           activation_26[0][0]              \n                                                                 swish_75[0][0]                   \n__________________________________________________________________________________________________\nconv2d_102 (Conv2D)             (None, 14, 14, 176)  185856      multiply_26[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_76 (BatchNo (None, 14, 14, 176)  704         conv2d_102[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_21 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_76[0][0]     \n__________________________________________________________________________________________________\nadd_21 (Add)                    (None, 14, 14, 176)  0           drop_connect_21[0][0]            \n                                                                 add_20[0][0]                     \n__________________________________________________________________________________________________\nconv2d_103 (Conv2D)             (None, 14, 14, 1056) 185856      add_21[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_77 (BatchNo (None, 14, 14, 1056) 4224        conv2d_103[0][0]                 \n__________________________________________________________________________________________________\nswish_77 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_77[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_27 (DepthwiseC (None, 14, 14, 1056) 26400       swish_77[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_78 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_27[0][0]        \n__________________________________________________________________________________________________\nswish_78 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_78[0][0]     \n__________________________________________________________________________________________________\nlambda_27 (Lambda)              (None, 1, 1, 1056)   0           swish_78[0][0]                   \n__________________________________________________________________________________________________\nconv2d_104 (Conv2D)             (None, 1, 1, 44)     46508       lambda_27[0][0]                  \n__________________________________________________________________________________________________\nswish_79 (Swish)                (None, 1, 1, 44)     0           conv2d_104[0][0]                 \n__________________________________________________________________________________________________\nconv2d_105 (Conv2D)             (None, 1, 1, 1056)   47520       swish_79[0][0]                   \n__________________________________________________________________________________________________\nactivation_27 (Activation)      (None, 1, 1, 1056)   0           conv2d_105[0][0]                 \n__________________________________________________________________________________________________\nmultiply_27 (Multiply)          (None, 14, 14, 1056) 0           activation_27[0][0]              \n                                                                 swish_78[0][0]                   \n__________________________________________________________________________________________________\nconv2d_106 (Conv2D)             (None, 14, 14, 176)  185856      multiply_27[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_79 (BatchNo (None, 14, 14, 176)  704         conv2d_106[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_22 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_79[0][0]     \n__________________________________________________________________________________________________\nadd_22 (Add)                    (None, 14, 14, 176)  0           drop_connect_22[0][0]            \n                                                                 add_21[0][0]                     \n__________________________________________________________________________________________________\nconv2d_107 (Conv2D)             (None, 14, 14, 1056) 185856      add_22[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_80 (BatchNo (None, 14, 14, 1056) 4224        conv2d_107[0][0]                 \n__________________________________________________________________________________________________\nswish_80 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_80[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_28 (DepthwiseC (None, 7, 7, 1056)   26400       swish_80[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_81 (BatchNo (None, 7, 7, 1056)   4224        depthwise_conv2d_28[0][0]        \n__________________________________________________________________________________________________\nswish_81 (Swish)                (None, 7, 7, 1056)   0           batch_normalization_81[0][0]     \n__________________________________________________________________________________________________\nlambda_28 (Lambda)              (None, 1, 1, 1056)   0           swish_81[0][0]                   \n__________________________________________________________________________________________________\nconv2d_108 (Conv2D)             (None, 1, 1, 44)     46508       lambda_28[0][0]                  \n__________________________________________________________________________________________________\nswish_82 (Swish)                (None, 1, 1, 44)     0           conv2d_108[0][0]                 \n__________________________________________________________________________________________________\nconv2d_109 (Conv2D)             (None, 1, 1, 1056)   47520       swish_82[0][0]                   \n__________________________________________________________________________________________________\nactivation_28 (Activation)      (None, 1, 1, 1056)   0           conv2d_109[0][0]                 \n__________________________________________________________________________________________________\nmultiply_28 (Multiply)          (None, 7, 7, 1056)   0           activation_28[0][0]              \n                                                                 swish_81[0][0]                   \n__________________________________________________________________________________________________\nconv2d_110 (Conv2D)             (None, 7, 7, 304)    321024      multiply_28[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_82 (BatchNo (None, 7, 7, 304)    1216        conv2d_110[0][0]                 \n__________________________________________________________________________________________________\nconv2d_111 (Conv2D)             (None, 7, 7, 1824)   554496      batch_normalization_82[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_83 (BatchNo (None, 7, 7, 1824)   7296        conv2d_111[0][0]                 \n__________________________________________________________________________________________________\nswish_83 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_83[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_29 (DepthwiseC (None, 7, 7, 1824)   45600       swish_83[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_84 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_29[0][0]        \n__________________________________________________________________________________________________\nswish_84 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_84[0][0]     \n__________________________________________________________________________________________________\nlambda_29 (Lambda)              (None, 1, 1, 1824)   0           swish_84[0][0]                   \n__________________________________________________________________________________________________\nconv2d_112 (Conv2D)             (None, 1, 1, 76)     138700      lambda_29[0][0]                  \n__________________________________________________________________________________________________\nswish_85 (Swish)                (None, 1, 1, 76)     0           conv2d_112[0][0]                 \n__________________________________________________________________________________________________\nconv2d_113 (Conv2D)             (None, 1, 1, 1824)   140448      swish_85[0][0]                   \n__________________________________________________________________________________________________\nactivation_29 (Activation)      (None, 1, 1, 1824)   0           conv2d_113[0][0]                 \n__________________________________________________________________________________________________\nmultiply_29 (Multiply)          (None, 7, 7, 1824)   0           activation_29[0][0]              \n                                                                 swish_84[0][0]                   \n__________________________________________________________________________________________________\nconv2d_114 (Conv2D)             (None, 7, 7, 304)    554496      multiply_29[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_85 (BatchNo (None, 7, 7, 304)    1216        conv2d_114[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_23 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_85[0][0]     \n__________________________________________________________________________________________________\nadd_23 (Add)                    (None, 7, 7, 304)    0           drop_connect_23[0][0]            \n                                                                 batch_normalization_82[0][0]     \n__________________________________________________________________________________________________\nconv2d_115 (Conv2D)             (None, 7, 7, 1824)   554496      add_23[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_86 (BatchNo (None, 7, 7, 1824)   7296        conv2d_115[0][0]                 \n__________________________________________________________________________________________________\nswish_86 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_86[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_30 (DepthwiseC (None, 7, 7, 1824)   45600       swish_86[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_87 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_30[0][0]        \n__________________________________________________________________________________________________\nswish_87 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_87[0][0]     \n__________________________________________________________________________________________________\nlambda_30 (Lambda)              (None, 1, 1, 1824)   0           swish_87[0][0]                   \n__________________________________________________________________________________________________\nconv2d_116 (Conv2D)             (None, 1, 1, 76)     138700      lambda_30[0][0]                  \n__________________________________________________________________________________________________\nswish_88 (Swish)                (None, 1, 1, 76)     0           conv2d_116[0][0]                 \n__________________________________________________________________________________________________\nconv2d_117 (Conv2D)             (None, 1, 1, 1824)   140448      swish_88[0][0]                   \n__________________________________________________________________________________________________\nactivation_30 (Activation)      (None, 1, 1, 1824)   0           conv2d_117[0][0]                 \n__________________________________________________________________________________________________\nmultiply_30 (Multiply)          (None, 7, 7, 1824)   0           activation_30[0][0]              \n                                                                 swish_87[0][0]                   \n__________________________________________________________________________________________________\nconv2d_118 (Conv2D)             (None, 7, 7, 304)    554496      multiply_30[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_88 (BatchNo (None, 7, 7, 304)    1216        conv2d_118[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_24 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_88[0][0]     \n__________________________________________________________________________________________________\nadd_24 (Add)                    (None, 7, 7, 304)    0           drop_connect_24[0][0]            \n                                                                 add_23[0][0]                     \n__________________________________________________________________________________________________\nconv2d_119 (Conv2D)             (None, 7, 7, 1824)   554496      add_24[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_89 (BatchNo (None, 7, 7, 1824)   7296        conv2d_119[0][0]                 \n__________________________________________________________________________________________________\nswish_89 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_89[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_31 (DepthwiseC (None, 7, 7, 1824)   45600       swish_89[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_90 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_31[0][0]        \n__________________________________________________________________________________________________\nswish_90 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_90[0][0]     \n__________________________________________________________________________________________________\nlambda_31 (Lambda)              (None, 1, 1, 1824)   0           swish_90[0][0]                   \n__________________________________________________________________________________________________\nconv2d_120 (Conv2D)             (None, 1, 1, 76)     138700      lambda_31[0][0]                  \n__________________________________________________________________________________________________\nswish_91 (Swish)                (None, 1, 1, 76)     0           conv2d_120[0][0]                 \n__________________________________________________________________________________________________\nconv2d_121 (Conv2D)             (None, 1, 1, 1824)   140448      swish_91[0][0]                   \n__________________________________________________________________________________________________\nactivation_31 (Activation)      (None, 1, 1, 1824)   0           conv2d_121[0][0]                 \n__________________________________________________________________________________________________\nmultiply_31 (Multiply)          (None, 7, 7, 1824)   0           activation_31[0][0]              \n                                                                 swish_90[0][0]                   \n__________________________________________________________________________________________________\nconv2d_122 (Conv2D)             (None, 7, 7, 304)    554496      multiply_31[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_91 (BatchNo (None, 7, 7, 304)    1216        conv2d_122[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_25 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_91[0][0]     \n__________________________________________________________________________________________________\nadd_25 (Add)                    (None, 7, 7, 304)    0           drop_connect_25[0][0]            \n                                                                 add_24[0][0]                     \n__________________________________________________________________________________________________\nconv2d_123 (Conv2D)             (None, 7, 7, 1824)   554496      add_25[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_92 (BatchNo (None, 7, 7, 1824)   7296        conv2d_123[0][0]                 \n__________________________________________________________________________________________________\nswish_92 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_92[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_32 (DepthwiseC (None, 7, 7, 1824)   45600       swish_92[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_93 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_32[0][0]        \n__________________________________________________________________________________________________\nswish_93 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_93[0][0]     \n__________________________________________________________________________________________________\nlambda_32 (Lambda)              (None, 1, 1, 1824)   0           swish_93[0][0]                   \n__________________________________________________________________________________________________\nconv2d_124 (Conv2D)             (None, 1, 1, 76)     138700      lambda_32[0][0]                  \n__________________________________________________________________________________________________\nswish_94 (Swish)                (None, 1, 1, 76)     0           conv2d_124[0][0]                 \n__________________________________________________________________________________________________\nconv2d_125 (Conv2D)             (None, 1, 1, 1824)   140448      swish_94[0][0]                   \n__________________________________________________________________________________________________\nactivation_32 (Activation)      (None, 1, 1, 1824)   0           conv2d_125[0][0]                 \n__________________________________________________________________________________________________\nmultiply_32 (Multiply)          (None, 7, 7, 1824)   0           activation_32[0][0]              \n                                                                 swish_93[0][0]                   \n__________________________________________________________________________________________________\nconv2d_126 (Conv2D)             (None, 7, 7, 304)    554496      multiply_32[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_94 (BatchNo (None, 7, 7, 304)    1216        conv2d_126[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_26 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_94[0][0]     \n__________________________________________________________________________________________________\nadd_26 (Add)                    (None, 7, 7, 304)    0           drop_connect_26[0][0]            \n                                                                 add_25[0][0]                     \n__________________________________________________________________________________________________\nconv2d_127 (Conv2D)             (None, 7, 7, 1824)   554496      add_26[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_95 (BatchNo (None, 7, 7, 1824)   7296        conv2d_127[0][0]                 \n__________________________________________________________________________________________________\nswish_95 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_95[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_33 (DepthwiseC (None, 7, 7, 1824)   45600       swish_95[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_96 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_33[0][0]        \n__________________________________________________________________________________________________\nswish_96 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_96[0][0]     \n__________________________________________________________________________________________________\nlambda_33 (Lambda)              (None, 1, 1, 1824)   0           swish_96[0][0]                   \n__________________________________________________________________________________________________\nconv2d_128 (Conv2D)             (None, 1, 1, 76)     138700      lambda_33[0][0]                  \n__________________________________________________________________________________________________\nswish_97 (Swish)                (None, 1, 1, 76)     0           conv2d_128[0][0]                 \n__________________________________________________________________________________________________\nconv2d_129 (Conv2D)             (None, 1, 1, 1824)   140448      swish_97[0][0]                   \n__________________________________________________________________________________________________\nactivation_33 (Activation)      (None, 1, 1, 1824)   0           conv2d_129[0][0]                 \n__________________________________________________________________________________________________\nmultiply_33 (Multiply)          (None, 7, 7, 1824)   0           activation_33[0][0]              \n                                                                 swish_96[0][0]                   \n__________________________________________________________________________________________________\nconv2d_130 (Conv2D)             (None, 7, 7, 304)    554496      multiply_33[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_97 (BatchNo (None, 7, 7, 304)    1216        conv2d_130[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_27 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_97[0][0]     \n__________________________________________________________________________________________________\nadd_27 (Add)                    (None, 7, 7, 304)    0           drop_connect_27[0][0]            \n                                                                 add_26[0][0]                     \n__________________________________________________________________________________________________\nconv2d_131 (Conv2D)             (None, 7, 7, 1824)   554496      add_27[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_98 (BatchNo (None, 7, 7, 1824)   7296        conv2d_131[0][0]                 \n__________________________________________________________________________________________________\nswish_98 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_98[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_34 (DepthwiseC (None, 7, 7, 1824)   45600       swish_98[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_99 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_34[0][0]        \n__________________________________________________________________________________________________\nswish_99 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_99[0][0]     \n__________________________________________________________________________________________________\nlambda_34 (Lambda)              (None, 1, 1, 1824)   0           swish_99[0][0]                   \n__________________________________________________________________________________________________\nconv2d_132 (Conv2D)             (None, 1, 1, 76)     138700      lambda_34[0][0]                  \n__________________________________________________________________________________________________\nswish_100 (Swish)               (None, 1, 1, 76)     0           conv2d_132[0][0]                 \n__________________________________________________________________________________________________\nconv2d_133 (Conv2D)             (None, 1, 1, 1824)   140448      swish_100[0][0]                  \n__________________________________________________________________________________________________\nactivation_34 (Activation)      (None, 1, 1, 1824)   0           conv2d_133[0][0]                 \n__________________________________________________________________________________________________\nmultiply_34 (Multiply)          (None, 7, 7, 1824)   0           activation_34[0][0]              \n                                                                 swish_99[0][0]                   \n__________________________________________________________________________________________________\nconv2d_134 (Conv2D)             (None, 7, 7, 304)    554496      multiply_34[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_100 (BatchN (None, 7, 7, 304)    1216        conv2d_134[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_28 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_100[0][0]    \n__________________________________________________________________________________________________\nadd_28 (Add)                    (None, 7, 7, 304)    0           drop_connect_28[0][0]            \n                                                                 add_27[0][0]                     \n__________________________________________________________________________________________________\nconv2d_135 (Conv2D)             (None, 7, 7, 1824)   554496      add_28[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_101 (BatchN (None, 7, 7, 1824)   7296        conv2d_135[0][0]                 \n__________________________________________________________________________________________________\nswish_101 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_101[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_35 (DepthwiseC (None, 7, 7, 1824)   45600       swish_101[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_102 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_35[0][0]        \n__________________________________________________________________________________________________\nswish_102 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_102[0][0]    \n__________________________________________________________________________________________________\nlambda_35 (Lambda)              (None, 1, 1, 1824)   0           swish_102[0][0]                  \n__________________________________________________________________________________________________\nconv2d_136 (Conv2D)             (None, 1, 1, 76)     138700      lambda_35[0][0]                  \n__________________________________________________________________________________________________\nswish_103 (Swish)               (None, 1, 1, 76)     0           conv2d_136[0][0]                 \n__________________________________________________________________________________________________\nconv2d_137 (Conv2D)             (None, 1, 1, 1824)   140448      swish_103[0][0]                  \n__________________________________________________________________________________________________\nactivation_35 (Activation)      (None, 1, 1, 1824)   0           conv2d_137[0][0]                 \n__________________________________________________________________________________________________\nmultiply_35 (Multiply)          (None, 7, 7, 1824)   0           activation_35[0][0]              \n                                                                 swish_102[0][0]                  \n__________________________________________________________________________________________________\nconv2d_138 (Conv2D)             (None, 7, 7, 304)    554496      multiply_35[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_103 (BatchN (None, 7, 7, 304)    1216        conv2d_138[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_29 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_103[0][0]    \n__________________________________________________________________________________________________\nadd_29 (Add)                    (None, 7, 7, 304)    0           drop_connect_29[0][0]            \n                                                                 add_28[0][0]                     \n__________________________________________________________________________________________________\nconv2d_139 (Conv2D)             (None, 7, 7, 1824)   554496      add_29[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_104 (BatchN (None, 7, 7, 1824)   7296        conv2d_139[0][0]                 \n__________________________________________________________________________________________________\nswish_104 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_104[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_36 (DepthwiseC (None, 7, 7, 1824)   45600       swish_104[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_105 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_36[0][0]        \n__________________________________________________________________________________________________\nswish_105 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_105[0][0]    \n__________________________________________________________________________________________________\nlambda_36 (Lambda)              (None, 1, 1, 1824)   0           swish_105[0][0]                  \n__________________________________________________________________________________________________\nconv2d_140 (Conv2D)             (None, 1, 1, 76)     138700      lambda_36[0][0]                  \n__________________________________________________________________________________________________\nswish_106 (Swish)               (None, 1, 1, 76)     0           conv2d_140[0][0]                 \n__________________________________________________________________________________________________\nconv2d_141 (Conv2D)             (None, 1, 1, 1824)   140448      swish_106[0][0]                  \n__________________________________________________________________________________________________\nactivation_36 (Activation)      (None, 1, 1, 1824)   0           conv2d_141[0][0]                 \n__________________________________________________________________________________________________\nmultiply_36 (Multiply)          (None, 7, 7, 1824)   0           activation_36[0][0]              \n                                                                 swish_105[0][0]                  \n__________________________________________________________________________________________________\nconv2d_142 (Conv2D)             (None, 7, 7, 304)    554496      multiply_36[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_106 (BatchN (None, 7, 7, 304)    1216        conv2d_142[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_30 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_106[0][0]    \n__________________________________________________________________________________________________\nadd_30 (Add)                    (None, 7, 7, 304)    0           drop_connect_30[0][0]            \n                                                                 add_29[0][0]                     \n__________________________________________________________________________________________________\nconv2d_143 (Conv2D)             (None, 7, 7, 1824)   554496      add_30[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_107 (BatchN (None, 7, 7, 1824)   7296        conv2d_143[0][0]                 \n__________________________________________________________________________________________________\nswish_107 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_107[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_37 (DepthwiseC (None, 7, 7, 1824)   16416       swish_107[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_108 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_37[0][0]        \n__________________________________________________________________________________________________\nswish_108 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_108[0][0]    \n__________________________________________________________________________________________________\nlambda_37 (Lambda)              (None, 1, 1, 1824)   0           swish_108[0][0]                  \n__________________________________________________________________________________________________\nconv2d_144 (Conv2D)             (None, 1, 1, 76)     138700      lambda_37[0][0]                  \n__________________________________________________________________________________________________\nswish_109 (Swish)               (None, 1, 1, 76)     0           conv2d_144[0][0]                 \n__________________________________________________________________________________________________\nconv2d_145 (Conv2D)             (None, 1, 1, 1824)   140448      swish_109[0][0]                  \n__________________________________________________________________________________________________\nactivation_37 (Activation)      (None, 1, 1, 1824)   0           conv2d_145[0][0]                 \n__________________________________________________________________________________________________\nmultiply_37 (Multiply)          (None, 7, 7, 1824)   0           activation_37[0][0]              \n                                                                 swish_108[0][0]                  \n__________________________________________________________________________________________________\nconv2d_146 (Conv2D)             (None, 7, 7, 512)    933888      multiply_37[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_109 (BatchN (None, 7, 7, 512)    2048        conv2d_146[0][0]                 \n__________________________________________________________________________________________________\nconv2d_147 (Conv2D)             (None, 7, 7, 3072)   1572864     batch_normalization_109[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_110 (BatchN (None, 7, 7, 3072)   12288       conv2d_147[0][0]                 \n__________________________________________________________________________________________________\nswish_110 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_110[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_38 (DepthwiseC (None, 7, 7, 3072)   27648       swish_110[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_111 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_38[0][0]        \n__________________________________________________________________________________________________\nswish_111 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_111[0][0]    \n__________________________________________________________________________________________________\nlambda_38 (Lambda)              (None, 1, 1, 3072)   0           swish_111[0][0]                  \n__________________________________________________________________________________________________\nconv2d_148 (Conv2D)             (None, 1, 1, 128)    393344      lambda_38[0][0]                  \n__________________________________________________________________________________________________\nswish_112 (Swish)               (None, 1, 1, 128)    0           conv2d_148[0][0]                 \n__________________________________________________________________________________________________\nconv2d_149 (Conv2D)             (None, 1, 1, 3072)   396288      swish_112[0][0]                  \n__________________________________________________________________________________________________\nactivation_38 (Activation)      (None, 1, 1, 3072)   0           conv2d_149[0][0]                 \n__________________________________________________________________________________________________\nmultiply_38 (Multiply)          (None, 7, 7, 3072)   0           activation_38[0][0]              \n                                                                 swish_111[0][0]                  \n__________________________________________________________________________________________________\nconv2d_150 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_38[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_112 (BatchN (None, 7, 7, 512)    2048        conv2d_150[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_31 (DropConnect)   (None, 7, 7, 512)    0           batch_normalization_112[0][0]    \n__________________________________________________________________________________________________\nadd_31 (Add)                    (None, 7, 7, 512)    0           drop_connect_31[0][0]            \n                                                                 batch_normalization_109[0][0]    \n__________________________________________________________________________________________________\nconv2d_151 (Conv2D)             (None, 7, 7, 3072)   1572864     add_31[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_113 (BatchN (None, 7, 7, 3072)   12288       conv2d_151[0][0]                 \n__________________________________________________________________________________________________\nswish_113 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_113[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_39 (DepthwiseC (None, 7, 7, 3072)   27648       swish_113[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_114 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_39[0][0]        \n__________________________________________________________________________________________________\nswish_114 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_114[0][0]    \n__________________________________________________________________________________________________\nlambda_39 (Lambda)              (None, 1, 1, 3072)   0           swish_114[0][0]                  \n__________________________________________________________________________________________________\nconv2d_152 (Conv2D)             (None, 1, 1, 128)    393344      lambda_39[0][0]                  \n__________________________________________________________________________________________________\nswish_115 (Swish)               (None, 1, 1, 128)    0           conv2d_152[0][0]                 \n__________________________________________________________________________________________________\nconv2d_153 (Conv2D)             (None, 1, 1, 3072)   396288      swish_115[0][0]                  \n__________________________________________________________________________________________________\nactivation_39 (Activation)      (None, 1, 1, 3072)   0           conv2d_153[0][0]                 \n__________________________________________________________________________________________________\nmultiply_39 (Multiply)          (None, 7, 7, 3072)   0           activation_39[0][0]              \n                                                                 swish_114[0][0]                  \n__________________________________________________________________________________________________\nconv2d_154 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_39[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_115 (BatchN (None, 7, 7, 512)    2048        conv2d_154[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_32 (DropConnect)   (None, 7, 7, 512)    0           batch_normalization_115[0][0]    \n__________________________________________________________________________________________________\nadd_32 (Add)                    (None, 7, 7, 512)    0           drop_connect_32[0][0]            \n                                                                 add_31[0][0]                     \n__________________________________________________________________________________________________\nconv2d_155 (Conv2D)             (None, 7, 7, 2048)   1048576     add_32[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_116 (BatchN (None, 7, 7, 2048)   8192        conv2d_155[0][0]                 \n__________________________________________________________________________________________________\nswish_116 (Swish)               (None, 7, 7, 2048)   0           batch_normalization_116[0][0]    \n__________________________________________________________________________________________________\nglobal_average_pooling2d_1 (Glo (None, 2048)         0           swish_116[0][0]                  \n__________________________________________________________________________________________________\ndropout_1 (Dropout)             (None, 2048)         0           global_average_pooling2d_1[0][0] \n__________________________________________________________________________________________________\ndense_1 (Dense)                 (None, 2048)         4196352     dropout_1[0][0]                  \n__________________________________________________________________________________________________\ndropout_2 (Dropout)             (None, 2048)         0           dense_1[0][0]                    \n__________________________________________________________________________________________________\nfinal_output (Dense)            (None, 5)            10245       dropout_2[0][0]                  \n==================================================================================================\nTotal params: 32,720,117\nTrainable params: 10,245\nNon-trainable params: 32,709,872\n__________________________________________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"STEP_SIZE_TRAIN = train_generator.n//train_generator.batch_size\nSTEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n\nmetric_list = [\"accuracy\"]\noptimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\nmodel.compile (optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])\n\nhistory_warmup = model.fit_generator(generator=train_generator,\n                                     steps_per_epoch=STEP_SIZE_TRAIN,\n                                     validation_data=valid_generator,\n                                     validation_steps=STEP_SIZE_VALID,\n                                     epochs=WARMUP_EPOCHS,\n#                                      callbacks=callback_list,\n                                     verbose=1).history","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:18:07.083497Z","iopub.execute_input":"2024-06-04T00:18:07.083842Z","iopub.status.idle":"2024-06-04T00:22:22.232554Z","shell.execute_reply.started":"2024-06-04T00:18:07.083796Z","shell.execute_reply":"2024-06-04T00:22:22.231583Z"},"trusted":true},"execution_count":10,"outputs":[{"name":"stdout","text":"Epoch 1/5\n91/91 [==============================] - 74s 813ms/step - loss: 1.1991 - acc: 0.5563 - val_loss: 1.1678 - val_acc: 0.5810\nEpoch 2/5\n91/91 [==============================] - 46s 502ms/step - loss: 1.0702 - acc: 0.6051 - val_loss: 1.1648 - val_acc: 0.5934\nEpoch 3/5\n91/91 [==============================] - 45s 497ms/step - loss: 1.0594 - acc: 0.6129 - val_loss: 1.1227 - val_acc: 0.6177\nEpoch 4/5\n91/91 [==============================] - 45s 494ms/step - loss: 1.0929 - acc: 0.5927 - val_loss: 1.2341 - val_acc: 0.5621\nEpoch 5/5\n91/91 [==============================] - 45s 495ms/step - loss: 1.0692 - acc: 0.6204 - val_loss: 1.1666 - val_acc: 0.5720\n","output_type":"stream"}]},{"cell_type":"code","source":"for layer in model.layers:\n    layer.trainable = True\n\n# es = EarlyStopping(monitor='val_loss', mode='min', patience=ES_PATIENCE, restore_best_weights=True, verbose=1)\n# cosine_lr_2nd = WarmUpCosineDecayScheduler(learning_rate_base=LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_2nd,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_2nd,\n#                                            hold_base_rate_steps=(3 * STEP_SIZE))\n\n# callback_list = [es, cosine_lr_2nd]\n# optimizer = optimizers.Adam(lr=LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\n# model.summary()\nrlrop = ReduceLROnPlateau(monitor='val_loss', mode='min', patience=3, factor=0.5, min_lr=1e-6, verbose=1)\n\ncallback_list = [rlrop]\noptimizer = optimizers.Adam(lr=LEARNING_RATE)\nmodel.compile(optimizer=optimizer, loss=\"categorical_crossentropy\",  metrics=[\"accuracy\"])\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:24:00.077069Z","iopub.execute_input":"2024-06-04T00:24:00.077411Z","iopub.status.idle":"2024-06-04T00:24:00.343559Z","shell.execute_reply.started":"2024-06-04T00:24:00.077367Z","shell.execute_reply":"2024-06-04T00:24:00.342468Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":11,"outputs":[{"name":"stdout","text":"__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_1 (InputLayer)            (None, 224, 224, 3)  0                                            \n__________________________________________________________________________________________________\nconv2d_1 (Conv2D)               (None, 112, 112, 48) 1296        input_1[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_1 (BatchNor (None, 112, 112, 48) 192         conv2d_1[0][0]                   \n__________________________________________________________________________________________________\nswish_1 (Swish)                 (None, 112, 112, 48) 0           batch_normalization_1[0][0]      \n__________________________________________________________________________________________________\ndepthwise_conv2d_1 (DepthwiseCo (None, 112, 112, 48) 432         swish_1[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_2 (BatchNor (None, 112, 112, 48) 192         depthwise_conv2d_1[0][0]         \n__________________________________________________________________________________________________\nswish_2 (Swish)                 (None, 112, 112, 48) 0           batch_normalization_2[0][0]      \n__________________________________________________________________________________________________\nlambda_1 (Lambda)               (None, 1, 1, 48)     0           swish_2[0][0]                    \n__________________________________________________________________________________________________\nconv2d_2 (Conv2D)               (None, 1, 1, 12)     588         lambda_1[0][0]                   \n__________________________________________________________________________________________________\nswish_3 (Swish)                 (None, 1, 1, 12)     0           conv2d_2[0][0]                   \n__________________________________________________________________________________________________\nconv2d_3 (Conv2D)               (None, 1, 1, 48)     624         swish_3[0][0]                    \n__________________________________________________________________________________________________\nactivation_1 (Activation)       (None, 1, 1, 48)     0           conv2d_3[0][0]                   \n__________________________________________________________________________________________________\nmultiply_1 (Multiply)           (None, 112, 112, 48) 0           activation_1[0][0]               \n                                                                 swish_2[0][0]                    \n__________________________________________________________________________________________________\nconv2d_4 (Conv2D)               (None, 112, 112, 24) 1152        multiply_1[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_3 (BatchNor (None, 112, 112, 24) 96          conv2d_4[0][0]                   \n__________________________________________________________________________________________________\ndepthwise_conv2d_2 (DepthwiseCo (None, 112, 112, 24) 216         batch_normalization_3[0][0]      \n__________________________________________________________________________________________________\nbatch_normalization_4 (BatchNor (None, 112, 112, 24) 96          depthwise_conv2d_2[0][0]         \n__________________________________________________________________________________________________\nswish_4 (Swish)                 (None, 112, 112, 24) 0           batch_normalization_4[0][0]      \n__________________________________________________________________________________________________\nlambda_2 (Lambda)               (None, 1, 1, 24)     0           swish_4[0][0]                    \n__________________________________________________________________________________________________\nconv2d_5 (Conv2D)               (None, 1, 1, 6)      150         lambda_2[0][0]                   \n__________________________________________________________________________________________________\nswish_5 (Swish)                 (None, 1, 1, 6)      0           conv2d_5[0][0]                   \n__________________________________________________________________________________________________\nconv2d_6 (Conv2D)               (None, 1, 1, 24)     168         swish_5[0][0]                    \n__________________________________________________________________________________________________\nactivation_2 (Activation)       (None, 1, 1, 24)     0           conv2d_6[0][0]                   \n__________________________________________________________________________________________________\nmultiply_2 (Multiply)           (None, 112, 112, 24) 0           activation_2[0][0]               \n                                                                 swish_4[0][0]                    \n__________________________________________________________________________________________________\nconv2d_7 (Conv2D)               (None, 112, 112, 24) 576         multiply_2[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_5 (BatchNor (None, 112, 112, 24) 96          conv2d_7[0][0]                   \n__________________________________________________________________________________________________\ndrop_connect_1 (DropConnect)    (None, 112, 112, 24) 0           batch_normalization_5[0][0]      \n__________________________________________________________________________________________________\nadd_1 (Add)                     (None, 112, 112, 24) 0           drop_connect_1[0][0]             \n                                                                 batch_normalization_3[0][0]      \n__________________________________________________________________________________________________\ndepthwise_conv2d_3 (DepthwiseCo (None, 112, 112, 24) 216         add_1[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_6 (BatchNor (None, 112, 112, 24) 96          depthwise_conv2d_3[0][0]         \n__________________________________________________________________________________________________\nswish_6 (Swish)                 (None, 112, 112, 24) 0           batch_normalization_6[0][0]      \n__________________________________________________________________________________________________\nlambda_3 (Lambda)               (None, 1, 1, 24)     0           swish_6[0][0]                    \n__________________________________________________________________________________________________\nconv2d_8 (Conv2D)               (None, 1, 1, 6)      150         lambda_3[0][0]                   \n__________________________________________________________________________________________________\nswish_7 (Swish)                 (None, 1, 1, 6)      0           conv2d_8[0][0]                   \n__________________________________________________________________________________________________\nconv2d_9 (Conv2D)               (None, 1, 1, 24)     168         swish_7[0][0]                    \n__________________________________________________________________________________________________\nactivation_3 (Activation)       (None, 1, 1, 24)     0           conv2d_9[0][0]                   \n__________________________________________________________________________________________________\nmultiply_3 (Multiply)           (None, 112, 112, 24) 0           activation_3[0][0]               \n                                                                 swish_6[0][0]                    \n__________________________________________________________________________________________________\nconv2d_10 (Conv2D)              (None, 112, 112, 24) 576         multiply_3[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_7 (BatchNor (None, 112, 112, 24) 96          conv2d_10[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_2 (DropConnect)    (None, 112, 112, 24) 0           batch_normalization_7[0][0]      \n__________________________________________________________________________________________________\nadd_2 (Add)                     (None, 112, 112, 24) 0           drop_connect_2[0][0]             \n                                                                 add_1[0][0]                      \n__________________________________________________________________________________________________\nconv2d_11 (Conv2D)              (None, 112, 112, 144 3456        add_2[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_8 (BatchNor (None, 112, 112, 144 576         conv2d_11[0][0]                  \n__________________________________________________________________________________________________\nswish_8 (Swish)                 (None, 112, 112, 144 0           batch_normalization_8[0][0]      \n__________________________________________________________________________________________________\ndepthwise_conv2d_4 (DepthwiseCo (None, 56, 56, 144)  1296        swish_8[0][0]                    \n__________________________________________________________________________________________________\nbatch_normalization_9 (BatchNor (None, 56, 56, 144)  576         depthwise_conv2d_4[0][0]         \n__________________________________________________________________________________________________\nswish_9 (Swish)                 (None, 56, 56, 144)  0           batch_normalization_9[0][0]      \n__________________________________________________________________________________________________\nlambda_4 (Lambda)               (None, 1, 1, 144)    0           swish_9[0][0]                    \n__________________________________________________________________________________________________\nconv2d_12 (Conv2D)              (None, 1, 1, 6)      870         lambda_4[0][0]                   \n__________________________________________________________________________________________________\nswish_10 (Swish)                (None, 1, 1, 6)      0           conv2d_12[0][0]                  \n__________________________________________________________________________________________________\nconv2d_13 (Conv2D)              (None, 1, 1, 144)    1008        swish_10[0][0]                   \n__________________________________________________________________________________________________\nactivation_4 (Activation)       (None, 1, 1, 144)    0           conv2d_13[0][0]                  \n__________________________________________________________________________________________________\nmultiply_4 (Multiply)           (None, 56, 56, 144)  0           activation_4[0][0]               \n                                                                 swish_9[0][0]                    \n__________________________________________________________________________________________________\nconv2d_14 (Conv2D)              (None, 56, 56, 40)   5760        multiply_4[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_10 (BatchNo (None, 56, 56, 40)   160         conv2d_14[0][0]                  \n__________________________________________________________________________________________________\nconv2d_15 (Conv2D)              (None, 56, 56, 240)  9600        batch_normalization_10[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_11 (BatchNo (None, 56, 56, 240)  960         conv2d_15[0][0]                  \n__________________________________________________________________________________________________\nswish_11 (Swish)                (None, 56, 56, 240)  0           batch_normalization_11[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_5 (DepthwiseCo (None, 56, 56, 240)  2160        swish_11[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_12 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_5[0][0]         \n__________________________________________________________________________________________________\nswish_12 (Swish)                (None, 56, 56, 240)  0           batch_normalization_12[0][0]     \n__________________________________________________________________________________________________\nlambda_5 (Lambda)               (None, 1, 1, 240)    0           swish_12[0][0]                   \n__________________________________________________________________________________________________\nconv2d_16 (Conv2D)              (None, 1, 1, 10)     2410        lambda_5[0][0]                   \n__________________________________________________________________________________________________\nswish_13 (Swish)                (None, 1, 1, 10)     0           conv2d_16[0][0]                  \n__________________________________________________________________________________________________\nconv2d_17 (Conv2D)              (None, 1, 1, 240)    2640        swish_13[0][0]                   \n__________________________________________________________________________________________________\nactivation_5 (Activation)       (None, 1, 1, 240)    0           conv2d_17[0][0]                  \n__________________________________________________________________________________________________\nmultiply_5 (Multiply)           (None, 56, 56, 240)  0           activation_5[0][0]               \n                                                                 swish_12[0][0]                   \n__________________________________________________________________________________________________\nconv2d_18 (Conv2D)              (None, 56, 56, 40)   9600        multiply_5[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_13 (BatchNo (None, 56, 56, 40)   160         conv2d_18[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_3 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_13[0][0]     \n__________________________________________________________________________________________________\nadd_3 (Add)                     (None, 56, 56, 40)   0           drop_connect_3[0][0]             \n                                                                 batch_normalization_10[0][0]     \n__________________________________________________________________________________________________\nconv2d_19 (Conv2D)              (None, 56, 56, 240)  9600        add_3[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_14 (BatchNo (None, 56, 56, 240)  960         conv2d_19[0][0]                  \n__________________________________________________________________________________________________\nswish_14 (Swish)                (None, 56, 56, 240)  0           batch_normalization_14[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_6 (DepthwiseCo (None, 56, 56, 240)  2160        swish_14[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_15 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_6[0][0]         \n__________________________________________________________________________________________________\nswish_15 (Swish)                (None, 56, 56, 240)  0           batch_normalization_15[0][0]     \n__________________________________________________________________________________________________\nlambda_6 (Lambda)               (None, 1, 1, 240)    0           swish_15[0][0]                   \n__________________________________________________________________________________________________\nconv2d_20 (Conv2D)              (None, 1, 1, 10)     2410        lambda_6[0][0]                   \n__________________________________________________________________________________________________\nswish_16 (Swish)                (None, 1, 1, 10)     0           conv2d_20[0][0]                  \n__________________________________________________________________________________________________\nconv2d_21 (Conv2D)              (None, 1, 1, 240)    2640        swish_16[0][0]                   \n__________________________________________________________________________________________________\nactivation_6 (Activation)       (None, 1, 1, 240)    0           conv2d_21[0][0]                  \n__________________________________________________________________________________________________\nmultiply_6 (Multiply)           (None, 56, 56, 240)  0           activation_6[0][0]               \n                                                                 swish_15[0][0]                   \n__________________________________________________________________________________________________\nconv2d_22 (Conv2D)              (None, 56, 56, 40)   9600        multiply_6[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_16 (BatchNo (None, 56, 56, 40)   160         conv2d_22[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_4 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_16[0][0]     \n__________________________________________________________________________________________________\nadd_4 (Add)                     (None, 56, 56, 40)   0           drop_connect_4[0][0]             \n                                                                 add_3[0][0]                      \n__________________________________________________________________________________________________\nconv2d_23 (Conv2D)              (None, 56, 56, 240)  9600        add_4[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_17 (BatchNo (None, 56, 56, 240)  960         conv2d_23[0][0]                  \n__________________________________________________________________________________________________\nswish_17 (Swish)                (None, 56, 56, 240)  0           batch_normalization_17[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_7 (DepthwiseCo (None, 56, 56, 240)  2160        swish_17[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_18 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_7[0][0]         \n__________________________________________________________________________________________________\nswish_18 (Swish)                (None, 56, 56, 240)  0           batch_normalization_18[0][0]     \n__________________________________________________________________________________________________\nlambda_7 (Lambda)               (None, 1, 1, 240)    0           swish_18[0][0]                   \n__________________________________________________________________________________________________\nconv2d_24 (Conv2D)              (None, 1, 1, 10)     2410        lambda_7[0][0]                   \n__________________________________________________________________________________________________\nswish_19 (Swish)                (None, 1, 1, 10)     0           conv2d_24[0][0]                  \n__________________________________________________________________________________________________\nconv2d_25 (Conv2D)              (None, 1, 1, 240)    2640        swish_19[0][0]                   \n__________________________________________________________________________________________________\nactivation_7 (Activation)       (None, 1, 1, 240)    0           conv2d_25[0][0]                  \n__________________________________________________________________________________________________\nmultiply_7 (Multiply)           (None, 56, 56, 240)  0           activation_7[0][0]               \n                                                                 swish_18[0][0]                   \n__________________________________________________________________________________________________\nconv2d_26 (Conv2D)              (None, 56, 56, 40)   9600        multiply_7[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_19 (BatchNo (None, 56, 56, 40)   160         conv2d_26[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_5 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_19[0][0]     \n__________________________________________________________________________________________________\nadd_5 (Add)                     (None, 56, 56, 40)   0           drop_connect_5[0][0]             \n                                                                 add_4[0][0]                      \n__________________________________________________________________________________________________\nconv2d_27 (Conv2D)              (None, 56, 56, 240)  9600        add_5[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_20 (BatchNo (None, 56, 56, 240)  960         conv2d_27[0][0]                  \n__________________________________________________________________________________________________\nswish_20 (Swish)                (None, 56, 56, 240)  0           batch_normalization_20[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_8 (DepthwiseCo (None, 56, 56, 240)  2160        swish_20[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_21 (BatchNo (None, 56, 56, 240)  960         depthwise_conv2d_8[0][0]         \n__________________________________________________________________________________________________\nswish_21 (Swish)                (None, 56, 56, 240)  0           batch_normalization_21[0][0]     \n__________________________________________________________________________________________________\nlambda_8 (Lambda)               (None, 1, 1, 240)    0           swish_21[0][0]                   \n__________________________________________________________________________________________________\nconv2d_28 (Conv2D)              (None, 1, 1, 10)     2410        lambda_8[0][0]                   \n__________________________________________________________________________________________________\nswish_22 (Swish)                (None, 1, 1, 10)     0           conv2d_28[0][0]                  \n__________________________________________________________________________________________________\nconv2d_29 (Conv2D)              (None, 1, 1, 240)    2640        swish_22[0][0]                   \n__________________________________________________________________________________________________\nactivation_8 (Activation)       (None, 1, 1, 240)    0           conv2d_29[0][0]                  \n__________________________________________________________________________________________________\nmultiply_8 (Multiply)           (None, 56, 56, 240)  0           activation_8[0][0]               \n                                                                 swish_21[0][0]                   \n__________________________________________________________________________________________________\nconv2d_30 (Conv2D)              (None, 56, 56, 40)   9600        multiply_8[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_22 (BatchNo (None, 56, 56, 40)   160         conv2d_30[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_6 (DropConnect)    (None, 56, 56, 40)   0           batch_normalization_22[0][0]     \n__________________________________________________________________________________________________\nadd_6 (Add)                     (None, 56, 56, 40)   0           drop_connect_6[0][0]             \n                                                                 add_5[0][0]                      \n__________________________________________________________________________________________________\nconv2d_31 (Conv2D)              (None, 56, 56, 240)  9600        add_6[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_23 (BatchNo (None, 56, 56, 240)  960         conv2d_31[0][0]                  \n__________________________________________________________________________________________________\nswish_23 (Swish)                (None, 56, 56, 240)  0           batch_normalization_23[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_9 (DepthwiseCo (None, 28, 28, 240)  6000        swish_23[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_24 (BatchNo (None, 28, 28, 240)  960         depthwise_conv2d_9[0][0]         \n__________________________________________________________________________________________________\nswish_24 (Swish)                (None, 28, 28, 240)  0           batch_normalization_24[0][0]     \n__________________________________________________________________________________________________\nlambda_9 (Lambda)               (None, 1, 1, 240)    0           swish_24[0][0]                   \n__________________________________________________________________________________________________\nconv2d_32 (Conv2D)              (None, 1, 1, 10)     2410        lambda_9[0][0]                   \n__________________________________________________________________________________________________\nswish_25 (Swish)                (None, 1, 1, 10)     0           conv2d_32[0][0]                  \n__________________________________________________________________________________________________\nconv2d_33 (Conv2D)              (None, 1, 1, 240)    2640        swish_25[0][0]                   \n__________________________________________________________________________________________________\nactivation_9 (Activation)       (None, 1, 1, 240)    0           conv2d_33[0][0]                  \n__________________________________________________________________________________________________\nmultiply_9 (Multiply)           (None, 28, 28, 240)  0           activation_9[0][0]               \n                                                                 swish_24[0][0]                   \n__________________________________________________________________________________________________\nconv2d_34 (Conv2D)              (None, 28, 28, 64)   15360       multiply_9[0][0]                 \n__________________________________________________________________________________________________\nbatch_normalization_25 (BatchNo (None, 28, 28, 64)   256         conv2d_34[0][0]                  \n__________________________________________________________________________________________________\nconv2d_35 (Conv2D)              (None, 28, 28, 384)  24576       batch_normalization_25[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_26 (BatchNo (None, 28, 28, 384)  1536        conv2d_35[0][0]                  \n__________________________________________________________________________________________________\nswish_26 (Swish)                (None, 28, 28, 384)  0           batch_normalization_26[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_10 (DepthwiseC (None, 28, 28, 384)  9600        swish_26[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_27 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_10[0][0]        \n__________________________________________________________________________________________________\nswish_27 (Swish)                (None, 28, 28, 384)  0           batch_normalization_27[0][0]     \n__________________________________________________________________________________________________\nlambda_10 (Lambda)              (None, 1, 1, 384)    0           swish_27[0][0]                   \n__________________________________________________________________________________________________\nconv2d_36 (Conv2D)              (None, 1, 1, 16)     6160        lambda_10[0][0]                  \n__________________________________________________________________________________________________\nswish_28 (Swish)                (None, 1, 1, 16)     0           conv2d_36[0][0]                  \n__________________________________________________________________________________________________\nconv2d_37 (Conv2D)              (None, 1, 1, 384)    6528        swish_28[0][0]                   \n__________________________________________________________________________________________________\nactivation_10 (Activation)      (None, 1, 1, 384)    0           conv2d_37[0][0]                  \n__________________________________________________________________________________________________\nmultiply_10 (Multiply)          (None, 28, 28, 384)  0           activation_10[0][0]              \n                                                                 swish_27[0][0]                   \n__________________________________________________________________________________________________\nconv2d_38 (Conv2D)              (None, 28, 28, 64)   24576       multiply_10[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_28 (BatchNo (None, 28, 28, 64)   256         conv2d_38[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_7 (DropConnect)    (None, 28, 28, 64)   0           batch_normalization_28[0][0]     \n__________________________________________________________________________________________________\nadd_7 (Add)                     (None, 28, 28, 64)   0           drop_connect_7[0][0]             \n                                                                 batch_normalization_25[0][0]     \n__________________________________________________________________________________________________\nconv2d_39 (Conv2D)              (None, 28, 28, 384)  24576       add_7[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_29 (BatchNo (None, 28, 28, 384)  1536        conv2d_39[0][0]                  \n__________________________________________________________________________________________________\nswish_29 (Swish)                (None, 28, 28, 384)  0           batch_normalization_29[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_11 (DepthwiseC (None, 28, 28, 384)  9600        swish_29[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_30 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_11[0][0]        \n__________________________________________________________________________________________________\nswish_30 (Swish)                (None, 28, 28, 384)  0           batch_normalization_30[0][0]     \n__________________________________________________________________________________________________\nlambda_11 (Lambda)              (None, 1, 1, 384)    0           swish_30[0][0]                   \n__________________________________________________________________________________________________\nconv2d_40 (Conv2D)              (None, 1, 1, 16)     6160        lambda_11[0][0]                  \n__________________________________________________________________________________________________\nswish_31 (Swish)                (None, 1, 1, 16)     0           conv2d_40[0][0]                  \n__________________________________________________________________________________________________\nconv2d_41 (Conv2D)              (None, 1, 1, 384)    6528        swish_31[0][0]                   \n__________________________________________________________________________________________________\nactivation_11 (Activation)      (None, 1, 1, 384)    0           conv2d_41[0][0]                  \n__________________________________________________________________________________________________\nmultiply_11 (Multiply)          (None, 28, 28, 384)  0           activation_11[0][0]              \n                                                                 swish_30[0][0]                   \n__________________________________________________________________________________________________\nconv2d_42 (Conv2D)              (None, 28, 28, 64)   24576       multiply_11[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_31 (BatchNo (None, 28, 28, 64)   256         conv2d_42[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_8 (DropConnect)    (None, 28, 28, 64)   0           batch_normalization_31[0][0]     \n__________________________________________________________________________________________________\nadd_8 (Add)                     (None, 28, 28, 64)   0           drop_connect_8[0][0]             \n                                                                 add_7[0][0]                      \n__________________________________________________________________________________________________\nconv2d_43 (Conv2D)              (None, 28, 28, 384)  24576       add_8[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_32 (BatchNo (None, 28, 28, 384)  1536        conv2d_43[0][0]                  \n__________________________________________________________________________________________________\nswish_32 (Swish)                (None, 28, 28, 384)  0           batch_normalization_32[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_12 (DepthwiseC (None, 28, 28, 384)  9600        swish_32[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_33 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_12[0][0]        \n__________________________________________________________________________________________________\nswish_33 (Swish)                (None, 28, 28, 384)  0           batch_normalization_33[0][0]     \n__________________________________________________________________________________________________\nlambda_12 (Lambda)              (None, 1, 1, 384)    0           swish_33[0][0]                   \n__________________________________________________________________________________________________\nconv2d_44 (Conv2D)              (None, 1, 1, 16)     6160        lambda_12[0][0]                  \n__________________________________________________________________________________________________\nswish_34 (Swish)                (None, 1, 1, 16)     0           conv2d_44[0][0]                  \n__________________________________________________________________________________________________\nconv2d_45 (Conv2D)              (None, 1, 1, 384)    6528        swish_34[0][0]                   \n__________________________________________________________________________________________________\nactivation_12 (Activation)      (None, 1, 1, 384)    0           conv2d_45[0][0]                  \n__________________________________________________________________________________________________\nmultiply_12 (Multiply)          (None, 28, 28, 384)  0           activation_12[0][0]              \n                                                                 swish_33[0][0]                   \n__________________________________________________________________________________________________\nconv2d_46 (Conv2D)              (None, 28, 28, 64)   24576       multiply_12[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_34 (BatchNo (None, 28, 28, 64)   256         conv2d_46[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_9 (DropConnect)    (None, 28, 28, 64)   0           batch_normalization_34[0][0]     \n__________________________________________________________________________________________________\nadd_9 (Add)                     (None, 28, 28, 64)   0           drop_connect_9[0][0]             \n                                                                 add_8[0][0]                      \n__________________________________________________________________________________________________\nconv2d_47 (Conv2D)              (None, 28, 28, 384)  24576       add_9[0][0]                      \n__________________________________________________________________________________________________\nbatch_normalization_35 (BatchNo (None, 28, 28, 384)  1536        conv2d_47[0][0]                  \n__________________________________________________________________________________________________\nswish_35 (Swish)                (None, 28, 28, 384)  0           batch_normalization_35[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_13 (DepthwiseC (None, 28, 28, 384)  9600        swish_35[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_36 (BatchNo (None, 28, 28, 384)  1536        depthwise_conv2d_13[0][0]        \n__________________________________________________________________________________________________\nswish_36 (Swish)                (None, 28, 28, 384)  0           batch_normalization_36[0][0]     \n__________________________________________________________________________________________________\nlambda_13 (Lambda)              (None, 1, 1, 384)    0           swish_36[0][0]                   \n__________________________________________________________________________________________________\nconv2d_48 (Conv2D)              (None, 1, 1, 16)     6160        lambda_13[0][0]                  \n__________________________________________________________________________________________________\nswish_37 (Swish)                (None, 1, 1, 16)     0           conv2d_48[0][0]                  \n__________________________________________________________________________________________________\nconv2d_49 (Conv2D)              (None, 1, 1, 384)    6528        swish_37[0][0]                   \n__________________________________________________________________________________________________\nactivation_13 (Activation)      (None, 1, 1, 384)    0           conv2d_49[0][0]                  \n__________________________________________________________________________________________________\nmultiply_13 (Multiply)          (None, 28, 28, 384)  0           activation_13[0][0]              \n                                                                 swish_36[0][0]                   \n__________________________________________________________________________________________________\nconv2d_50 (Conv2D)              (None, 28, 28, 64)   24576       multiply_13[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_37 (BatchNo (None, 28, 28, 64)   256         conv2d_50[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_10 (DropConnect)   (None, 28, 28, 64)   0           batch_normalization_37[0][0]     \n__________________________________________________________________________________________________\nadd_10 (Add)                    (None, 28, 28, 64)   0           drop_connect_10[0][0]            \n                                                                 add_9[0][0]                      \n__________________________________________________________________________________________________\nconv2d_51 (Conv2D)              (None, 28, 28, 384)  24576       add_10[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_38 (BatchNo (None, 28, 28, 384)  1536        conv2d_51[0][0]                  \n__________________________________________________________________________________________________\nswish_38 (Swish)                (None, 28, 28, 384)  0           batch_normalization_38[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_14 (DepthwiseC (None, 14, 14, 384)  3456        swish_38[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_39 (BatchNo (None, 14, 14, 384)  1536        depthwise_conv2d_14[0][0]        \n__________________________________________________________________________________________________\nswish_39 (Swish)                (None, 14, 14, 384)  0           batch_normalization_39[0][0]     \n__________________________________________________________________________________________________\nlambda_14 (Lambda)              (None, 1, 1, 384)    0           swish_39[0][0]                   \n__________________________________________________________________________________________________\nconv2d_52 (Conv2D)              (None, 1, 1, 16)     6160        lambda_14[0][0]                  \n__________________________________________________________________________________________________\nswish_40 (Swish)                (None, 1, 1, 16)     0           conv2d_52[0][0]                  \n__________________________________________________________________________________________________\nconv2d_53 (Conv2D)              (None, 1, 1, 384)    6528        swish_40[0][0]                   \n__________________________________________________________________________________________________\nactivation_14 (Activation)      (None, 1, 1, 384)    0           conv2d_53[0][0]                  \n__________________________________________________________________________________________________\nmultiply_14 (Multiply)          (None, 14, 14, 384)  0           activation_14[0][0]              \n                                                                 swish_39[0][0]                   \n__________________________________________________________________________________________________\nconv2d_54 (Conv2D)              (None, 14, 14, 128)  49152       multiply_14[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_40 (BatchNo (None, 14, 14, 128)  512         conv2d_54[0][0]                  \n__________________________________________________________________________________________________\nconv2d_55 (Conv2D)              (None, 14, 14, 768)  98304       batch_normalization_40[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_41 (BatchNo (None, 14, 14, 768)  3072        conv2d_55[0][0]                  \n__________________________________________________________________________________________________\nswish_41 (Swish)                (None, 14, 14, 768)  0           batch_normalization_41[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_15 (DepthwiseC (None, 14, 14, 768)  6912        swish_41[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_42 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_15[0][0]        \n__________________________________________________________________________________________________\nswish_42 (Swish)                (None, 14, 14, 768)  0           batch_normalization_42[0][0]     \n__________________________________________________________________________________________________\nlambda_15 (Lambda)              (None, 1, 1, 768)    0           swish_42[0][0]                   \n__________________________________________________________________________________________________\nconv2d_56 (Conv2D)              (None, 1, 1, 32)     24608       lambda_15[0][0]                  \n__________________________________________________________________________________________________\nswish_43 (Swish)                (None, 1, 1, 32)     0           conv2d_56[0][0]                  \n__________________________________________________________________________________________________\nconv2d_57 (Conv2D)              (None, 1, 1, 768)    25344       swish_43[0][0]                   \n__________________________________________________________________________________________________\nactivation_15 (Activation)      (None, 1, 1, 768)    0           conv2d_57[0][0]                  \n__________________________________________________________________________________________________\nmultiply_15 (Multiply)          (None, 14, 14, 768)  0           activation_15[0][0]              \n                                                                 swish_42[0][0]                   \n__________________________________________________________________________________________________\nconv2d_58 (Conv2D)              (None, 14, 14, 128)  98304       multiply_15[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_43 (BatchNo (None, 14, 14, 128)  512         conv2d_58[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_11 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_43[0][0]     \n__________________________________________________________________________________________________\nadd_11 (Add)                    (None, 14, 14, 128)  0           drop_connect_11[0][0]            \n                                                                 batch_normalization_40[0][0]     \n__________________________________________________________________________________________________\nconv2d_59 (Conv2D)              (None, 14, 14, 768)  98304       add_11[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_44 (BatchNo (None, 14, 14, 768)  3072        conv2d_59[0][0]                  \n__________________________________________________________________________________________________\nswish_44 (Swish)                (None, 14, 14, 768)  0           batch_normalization_44[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_16 (DepthwiseC (None, 14, 14, 768)  6912        swish_44[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_45 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_16[0][0]        \n__________________________________________________________________________________________________\nswish_45 (Swish)                (None, 14, 14, 768)  0           batch_normalization_45[0][0]     \n__________________________________________________________________________________________________\nlambda_16 (Lambda)              (None, 1, 1, 768)    0           swish_45[0][0]                   \n__________________________________________________________________________________________________\nconv2d_60 (Conv2D)              (None, 1, 1, 32)     24608       lambda_16[0][0]                  \n__________________________________________________________________________________________________\nswish_46 (Swish)                (None, 1, 1, 32)     0           conv2d_60[0][0]                  \n__________________________________________________________________________________________________\nconv2d_61 (Conv2D)              (None, 1, 1, 768)    25344       swish_46[0][0]                   \n__________________________________________________________________________________________________\nactivation_16 (Activation)      (None, 1, 1, 768)    0           conv2d_61[0][0]                  \n__________________________________________________________________________________________________\nmultiply_16 (Multiply)          (None, 14, 14, 768)  0           activation_16[0][0]              \n                                                                 swish_45[0][0]                   \n__________________________________________________________________________________________________\nconv2d_62 (Conv2D)              (None, 14, 14, 128)  98304       multiply_16[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_46 (BatchNo (None, 14, 14, 128)  512         conv2d_62[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_12 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_46[0][0]     \n__________________________________________________________________________________________________\nadd_12 (Add)                    (None, 14, 14, 128)  0           drop_connect_12[0][0]            \n                                                                 add_11[0][0]                     \n__________________________________________________________________________________________________\nconv2d_63 (Conv2D)              (None, 14, 14, 768)  98304       add_12[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_47 (BatchNo (None, 14, 14, 768)  3072        conv2d_63[0][0]                  \n__________________________________________________________________________________________________\nswish_47 (Swish)                (None, 14, 14, 768)  0           batch_normalization_47[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_17 (DepthwiseC (None, 14, 14, 768)  6912        swish_47[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_48 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_17[0][0]        \n__________________________________________________________________________________________________\nswish_48 (Swish)                (None, 14, 14, 768)  0           batch_normalization_48[0][0]     \n__________________________________________________________________________________________________\nlambda_17 (Lambda)              (None, 1, 1, 768)    0           swish_48[0][0]                   \n__________________________________________________________________________________________________\nconv2d_64 (Conv2D)              (None, 1, 1, 32)     24608       lambda_17[0][0]                  \n__________________________________________________________________________________________________\nswish_49 (Swish)                (None, 1, 1, 32)     0           conv2d_64[0][0]                  \n__________________________________________________________________________________________________\nconv2d_65 (Conv2D)              (None, 1, 1, 768)    25344       swish_49[0][0]                   \n__________________________________________________________________________________________________\nactivation_17 (Activation)      (None, 1, 1, 768)    0           conv2d_65[0][0]                  \n__________________________________________________________________________________________________\nmultiply_17 (Multiply)          (None, 14, 14, 768)  0           activation_17[0][0]              \n                                                                 swish_48[0][0]                   \n__________________________________________________________________________________________________\nconv2d_66 (Conv2D)              (None, 14, 14, 128)  98304       multiply_17[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_49 (BatchNo (None, 14, 14, 128)  512         conv2d_66[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_13 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_49[0][0]     \n__________________________________________________________________________________________________\nadd_13 (Add)                    (None, 14, 14, 128)  0           drop_connect_13[0][0]            \n                                                                 add_12[0][0]                     \n__________________________________________________________________________________________________\nconv2d_67 (Conv2D)              (None, 14, 14, 768)  98304       add_13[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_50 (BatchNo (None, 14, 14, 768)  3072        conv2d_67[0][0]                  \n__________________________________________________________________________________________________\nswish_50 (Swish)                (None, 14, 14, 768)  0           batch_normalization_50[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_18 (DepthwiseC (None, 14, 14, 768)  6912        swish_50[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_51 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_18[0][0]        \n__________________________________________________________________________________________________\nswish_51 (Swish)                (None, 14, 14, 768)  0           batch_normalization_51[0][0]     \n__________________________________________________________________________________________________\nlambda_18 (Lambda)              (None, 1, 1, 768)    0           swish_51[0][0]                   \n__________________________________________________________________________________________________\nconv2d_68 (Conv2D)              (None, 1, 1, 32)     24608       lambda_18[0][0]                  \n__________________________________________________________________________________________________\nswish_52 (Swish)                (None, 1, 1, 32)     0           conv2d_68[0][0]                  \n__________________________________________________________________________________________________\nconv2d_69 (Conv2D)              (None, 1, 1, 768)    25344       swish_52[0][0]                   \n__________________________________________________________________________________________________\nactivation_18 (Activation)      (None, 1, 1, 768)    0           conv2d_69[0][0]                  \n__________________________________________________________________________________________________\nmultiply_18 (Multiply)          (None, 14, 14, 768)  0           activation_18[0][0]              \n                                                                 swish_51[0][0]                   \n__________________________________________________________________________________________________\nconv2d_70 (Conv2D)              (None, 14, 14, 128)  98304       multiply_18[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_52 (BatchNo (None, 14, 14, 128)  512         conv2d_70[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_14 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_52[0][0]     \n__________________________________________________________________________________________________\nadd_14 (Add)                    (None, 14, 14, 128)  0           drop_connect_14[0][0]            \n                                                                 add_13[0][0]                     \n__________________________________________________________________________________________________\nconv2d_71 (Conv2D)              (None, 14, 14, 768)  98304       add_14[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_53 (BatchNo (None, 14, 14, 768)  3072        conv2d_71[0][0]                  \n__________________________________________________________________________________________________\nswish_53 (Swish)                (None, 14, 14, 768)  0           batch_normalization_53[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_19 (DepthwiseC (None, 14, 14, 768)  6912        swish_53[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_54 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_19[0][0]        \n__________________________________________________________________________________________________\nswish_54 (Swish)                (None, 14, 14, 768)  0           batch_normalization_54[0][0]     \n__________________________________________________________________________________________________\nlambda_19 (Lambda)              (None, 1, 1, 768)    0           swish_54[0][0]                   \n__________________________________________________________________________________________________\nconv2d_72 (Conv2D)              (None, 1, 1, 32)     24608       lambda_19[0][0]                  \n__________________________________________________________________________________________________\nswish_55 (Swish)                (None, 1, 1, 32)     0           conv2d_72[0][0]                  \n__________________________________________________________________________________________________\nconv2d_73 (Conv2D)              (None, 1, 1, 768)    25344       swish_55[0][0]                   \n__________________________________________________________________________________________________\nactivation_19 (Activation)      (None, 1, 1, 768)    0           conv2d_73[0][0]                  \n__________________________________________________________________________________________________\nmultiply_19 (Multiply)          (None, 14, 14, 768)  0           activation_19[0][0]              \n                                                                 swish_54[0][0]                   \n__________________________________________________________________________________________________\nconv2d_74 (Conv2D)              (None, 14, 14, 128)  98304       multiply_19[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_55 (BatchNo (None, 14, 14, 128)  512         conv2d_74[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_15 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_55[0][0]     \n__________________________________________________________________________________________________\nadd_15 (Add)                    (None, 14, 14, 128)  0           drop_connect_15[0][0]            \n                                                                 add_14[0][0]                     \n__________________________________________________________________________________________________\nconv2d_75 (Conv2D)              (None, 14, 14, 768)  98304       add_15[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_56 (BatchNo (None, 14, 14, 768)  3072        conv2d_75[0][0]                  \n__________________________________________________________________________________________________\nswish_56 (Swish)                (None, 14, 14, 768)  0           batch_normalization_56[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_20 (DepthwiseC (None, 14, 14, 768)  6912        swish_56[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_57 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_20[0][0]        \n__________________________________________________________________________________________________\nswish_57 (Swish)                (None, 14, 14, 768)  0           batch_normalization_57[0][0]     \n__________________________________________________________________________________________________\nlambda_20 (Lambda)              (None, 1, 1, 768)    0           swish_57[0][0]                   \n__________________________________________________________________________________________________\nconv2d_76 (Conv2D)              (None, 1, 1, 32)     24608       lambda_20[0][0]                  \n__________________________________________________________________________________________________\nswish_58 (Swish)                (None, 1, 1, 32)     0           conv2d_76[0][0]                  \n__________________________________________________________________________________________________\nconv2d_77 (Conv2D)              (None, 1, 1, 768)    25344       swish_58[0][0]                   \n__________________________________________________________________________________________________\nactivation_20 (Activation)      (None, 1, 1, 768)    0           conv2d_77[0][0]                  \n__________________________________________________________________________________________________\nmultiply_20 (Multiply)          (None, 14, 14, 768)  0           activation_20[0][0]              \n                                                                 swish_57[0][0]                   \n__________________________________________________________________________________________________\nconv2d_78 (Conv2D)              (None, 14, 14, 128)  98304       multiply_20[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_58 (BatchNo (None, 14, 14, 128)  512         conv2d_78[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_16 (DropConnect)   (None, 14, 14, 128)  0           batch_normalization_58[0][0]     \n__________________________________________________________________________________________________\nadd_16 (Add)                    (None, 14, 14, 128)  0           drop_connect_16[0][0]            \n                                                                 add_15[0][0]                     \n__________________________________________________________________________________________________\nconv2d_79 (Conv2D)              (None, 14, 14, 768)  98304       add_16[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_59 (BatchNo (None, 14, 14, 768)  3072        conv2d_79[0][0]                  \n__________________________________________________________________________________________________\nswish_59 (Swish)                (None, 14, 14, 768)  0           batch_normalization_59[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_21 (DepthwiseC (None, 14, 14, 768)  19200       swish_59[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_60 (BatchNo (None, 14, 14, 768)  3072        depthwise_conv2d_21[0][0]        \n__________________________________________________________________________________________________\nswish_60 (Swish)                (None, 14, 14, 768)  0           batch_normalization_60[0][0]     \n__________________________________________________________________________________________________\nlambda_21 (Lambda)              (None, 1, 1, 768)    0           swish_60[0][0]                   \n__________________________________________________________________________________________________\nconv2d_80 (Conv2D)              (None, 1, 1, 32)     24608       lambda_21[0][0]                  \n__________________________________________________________________________________________________\nswish_61 (Swish)                (None, 1, 1, 32)     0           conv2d_80[0][0]                  \n__________________________________________________________________________________________________\nconv2d_81 (Conv2D)              (None, 1, 1, 768)    25344       swish_61[0][0]                   \n__________________________________________________________________________________________________\nactivation_21 (Activation)      (None, 1, 1, 768)    0           conv2d_81[0][0]                  \n__________________________________________________________________________________________________\nmultiply_21 (Multiply)          (None, 14, 14, 768)  0           activation_21[0][0]              \n                                                                 swish_60[0][0]                   \n__________________________________________________________________________________________________\nconv2d_82 (Conv2D)              (None, 14, 14, 176)  135168      multiply_21[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_61 (BatchNo (None, 14, 14, 176)  704         conv2d_82[0][0]                  \n__________________________________________________________________________________________________\nconv2d_83 (Conv2D)              (None, 14, 14, 1056) 185856      batch_normalization_61[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_62 (BatchNo (None, 14, 14, 1056) 4224        conv2d_83[0][0]                  \n__________________________________________________________________________________________________\nswish_62 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_62[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_22 (DepthwiseC (None, 14, 14, 1056) 26400       swish_62[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_63 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_22[0][0]        \n__________________________________________________________________________________________________\nswish_63 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_63[0][0]     \n__________________________________________________________________________________________________\nlambda_22 (Lambda)              (None, 1, 1, 1056)   0           swish_63[0][0]                   \n__________________________________________________________________________________________________\nconv2d_84 (Conv2D)              (None, 1, 1, 44)     46508       lambda_22[0][0]                  \n__________________________________________________________________________________________________\nswish_64 (Swish)                (None, 1, 1, 44)     0           conv2d_84[0][0]                  \n__________________________________________________________________________________________________\nconv2d_85 (Conv2D)              (None, 1, 1, 1056)   47520       swish_64[0][0]                   \n__________________________________________________________________________________________________\nactivation_22 (Activation)      (None, 1, 1, 1056)   0           conv2d_85[0][0]                  \n__________________________________________________________________________________________________\nmultiply_22 (Multiply)          (None, 14, 14, 1056) 0           activation_22[0][0]              \n                                                                 swish_63[0][0]                   \n__________________________________________________________________________________________________\nconv2d_86 (Conv2D)              (None, 14, 14, 176)  185856      multiply_22[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_64 (BatchNo (None, 14, 14, 176)  704         conv2d_86[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_17 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_64[0][0]     \n__________________________________________________________________________________________________\nadd_17 (Add)                    (None, 14, 14, 176)  0           drop_connect_17[0][0]            \n                                                                 batch_normalization_61[0][0]     \n__________________________________________________________________________________________________\nconv2d_87 (Conv2D)              (None, 14, 14, 1056) 185856      add_17[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_65 (BatchNo (None, 14, 14, 1056) 4224        conv2d_87[0][0]                  \n__________________________________________________________________________________________________\nswish_65 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_65[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_23 (DepthwiseC (None, 14, 14, 1056) 26400       swish_65[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_66 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_23[0][0]        \n__________________________________________________________________________________________________\nswish_66 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_66[0][0]     \n__________________________________________________________________________________________________\nlambda_23 (Lambda)              (None, 1, 1, 1056)   0           swish_66[0][0]                   \n__________________________________________________________________________________________________\nconv2d_88 (Conv2D)              (None, 1, 1, 44)     46508       lambda_23[0][0]                  \n__________________________________________________________________________________________________\nswish_67 (Swish)                (None, 1, 1, 44)     0           conv2d_88[0][0]                  \n__________________________________________________________________________________________________\nconv2d_89 (Conv2D)              (None, 1, 1, 1056)   47520       swish_67[0][0]                   \n__________________________________________________________________________________________________\nactivation_23 (Activation)      (None, 1, 1, 1056)   0           conv2d_89[0][0]                  \n__________________________________________________________________________________________________\nmultiply_23 (Multiply)          (None, 14, 14, 1056) 0           activation_23[0][0]              \n                                                                 swish_66[0][0]                   \n__________________________________________________________________________________________________\nconv2d_90 (Conv2D)              (None, 14, 14, 176)  185856      multiply_23[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_67 (BatchNo (None, 14, 14, 176)  704         conv2d_90[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_18 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_67[0][0]     \n__________________________________________________________________________________________________\nadd_18 (Add)                    (None, 14, 14, 176)  0           drop_connect_18[0][0]            \n                                                                 add_17[0][0]                     \n__________________________________________________________________________________________________\nconv2d_91 (Conv2D)              (None, 14, 14, 1056) 185856      add_18[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_68 (BatchNo (None, 14, 14, 1056) 4224        conv2d_91[0][0]                  \n__________________________________________________________________________________________________\nswish_68 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_68[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_24 (DepthwiseC (None, 14, 14, 1056) 26400       swish_68[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_69 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_24[0][0]        \n__________________________________________________________________________________________________\nswish_69 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_69[0][0]     \n__________________________________________________________________________________________________\nlambda_24 (Lambda)              (None, 1, 1, 1056)   0           swish_69[0][0]                   \n__________________________________________________________________________________________________\nconv2d_92 (Conv2D)              (None, 1, 1, 44)     46508       lambda_24[0][0]                  \n__________________________________________________________________________________________________\nswish_70 (Swish)                (None, 1, 1, 44)     0           conv2d_92[0][0]                  \n__________________________________________________________________________________________________\nconv2d_93 (Conv2D)              (None, 1, 1, 1056)   47520       swish_70[0][0]                   \n__________________________________________________________________________________________________\nactivation_24 (Activation)      (None, 1, 1, 1056)   0           conv2d_93[0][0]                  \n__________________________________________________________________________________________________\nmultiply_24 (Multiply)          (None, 14, 14, 1056) 0           activation_24[0][0]              \n                                                                 swish_69[0][0]                   \n__________________________________________________________________________________________________\nconv2d_94 (Conv2D)              (None, 14, 14, 176)  185856      multiply_24[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_70 (BatchNo (None, 14, 14, 176)  704         conv2d_94[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_19 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_70[0][0]     \n__________________________________________________________________________________________________\nadd_19 (Add)                    (None, 14, 14, 176)  0           drop_connect_19[0][0]            \n                                                                 add_18[0][0]                     \n__________________________________________________________________________________________________\nconv2d_95 (Conv2D)              (None, 14, 14, 1056) 185856      add_19[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_71 (BatchNo (None, 14, 14, 1056) 4224        conv2d_95[0][0]                  \n__________________________________________________________________________________________________\nswish_71 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_71[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_25 (DepthwiseC (None, 14, 14, 1056) 26400       swish_71[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_72 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_25[0][0]        \n__________________________________________________________________________________________________\nswish_72 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_72[0][0]     \n__________________________________________________________________________________________________\nlambda_25 (Lambda)              (None, 1, 1, 1056)   0           swish_72[0][0]                   \n__________________________________________________________________________________________________\nconv2d_96 (Conv2D)              (None, 1, 1, 44)     46508       lambda_25[0][0]                  \n__________________________________________________________________________________________________\nswish_73 (Swish)                (None, 1, 1, 44)     0           conv2d_96[0][0]                  \n__________________________________________________________________________________________________\nconv2d_97 (Conv2D)              (None, 1, 1, 1056)   47520       swish_73[0][0]                   \n__________________________________________________________________________________________________\nactivation_25 (Activation)      (None, 1, 1, 1056)   0           conv2d_97[0][0]                  \n__________________________________________________________________________________________________\nmultiply_25 (Multiply)          (None, 14, 14, 1056) 0           activation_25[0][0]              \n                                                                 swish_72[0][0]                   \n__________________________________________________________________________________________________\nconv2d_98 (Conv2D)              (None, 14, 14, 176)  185856      multiply_25[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_73 (BatchNo (None, 14, 14, 176)  704         conv2d_98[0][0]                  \n__________________________________________________________________________________________________\ndrop_connect_20 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_73[0][0]     \n__________________________________________________________________________________________________\nadd_20 (Add)                    (None, 14, 14, 176)  0           drop_connect_20[0][0]            \n                                                                 add_19[0][0]                     \n__________________________________________________________________________________________________\nconv2d_99 (Conv2D)              (None, 14, 14, 1056) 185856      add_20[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_74 (BatchNo (None, 14, 14, 1056) 4224        conv2d_99[0][0]                  \n__________________________________________________________________________________________________\nswish_74 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_74[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_26 (DepthwiseC (None, 14, 14, 1056) 26400       swish_74[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_75 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_26[0][0]        \n__________________________________________________________________________________________________\nswish_75 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_75[0][0]     \n__________________________________________________________________________________________________\nlambda_26 (Lambda)              (None, 1, 1, 1056)   0           swish_75[0][0]                   \n__________________________________________________________________________________________________\nconv2d_100 (Conv2D)             (None, 1, 1, 44)     46508       lambda_26[0][0]                  \n__________________________________________________________________________________________________\nswish_76 (Swish)                (None, 1, 1, 44)     0           conv2d_100[0][0]                 \n__________________________________________________________________________________________________\nconv2d_101 (Conv2D)             (None, 1, 1, 1056)   47520       swish_76[0][0]                   \n__________________________________________________________________________________________________\nactivation_26 (Activation)      (None, 1, 1, 1056)   0           conv2d_101[0][0]                 \n__________________________________________________________________________________________________\nmultiply_26 (Multiply)          (None, 14, 14, 1056) 0           activation_26[0][0]              \n                                                                 swish_75[0][0]                   \n__________________________________________________________________________________________________\nconv2d_102 (Conv2D)             (None, 14, 14, 176)  185856      multiply_26[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_76 (BatchNo (None, 14, 14, 176)  704         conv2d_102[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_21 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_76[0][0]     \n__________________________________________________________________________________________________\nadd_21 (Add)                    (None, 14, 14, 176)  0           drop_connect_21[0][0]            \n                                                                 add_20[0][0]                     \n__________________________________________________________________________________________________\nconv2d_103 (Conv2D)             (None, 14, 14, 1056) 185856      add_21[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_77 (BatchNo (None, 14, 14, 1056) 4224        conv2d_103[0][0]                 \n__________________________________________________________________________________________________\nswish_77 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_77[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_27 (DepthwiseC (None, 14, 14, 1056) 26400       swish_77[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_78 (BatchNo (None, 14, 14, 1056) 4224        depthwise_conv2d_27[0][0]        \n__________________________________________________________________________________________________\nswish_78 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_78[0][0]     \n__________________________________________________________________________________________________\nlambda_27 (Lambda)              (None, 1, 1, 1056)   0           swish_78[0][0]                   \n__________________________________________________________________________________________________\nconv2d_104 (Conv2D)             (None, 1, 1, 44)     46508       lambda_27[0][0]                  \n__________________________________________________________________________________________________\nswish_79 (Swish)                (None, 1, 1, 44)     0           conv2d_104[0][0]                 \n__________________________________________________________________________________________________\nconv2d_105 (Conv2D)             (None, 1, 1, 1056)   47520       swish_79[0][0]                   \n__________________________________________________________________________________________________\nactivation_27 (Activation)      (None, 1, 1, 1056)   0           conv2d_105[0][0]                 \n__________________________________________________________________________________________________\nmultiply_27 (Multiply)          (None, 14, 14, 1056) 0           activation_27[0][0]              \n                                                                 swish_78[0][0]                   \n__________________________________________________________________________________________________\nconv2d_106 (Conv2D)             (None, 14, 14, 176)  185856      multiply_27[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_79 (BatchNo (None, 14, 14, 176)  704         conv2d_106[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_22 (DropConnect)   (None, 14, 14, 176)  0           batch_normalization_79[0][0]     \n__________________________________________________________________________________________________\nadd_22 (Add)                    (None, 14, 14, 176)  0           drop_connect_22[0][0]            \n                                                                 add_21[0][0]                     \n__________________________________________________________________________________________________\nconv2d_107 (Conv2D)             (None, 14, 14, 1056) 185856      add_22[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_80 (BatchNo (None, 14, 14, 1056) 4224        conv2d_107[0][0]                 \n__________________________________________________________________________________________________\nswish_80 (Swish)                (None, 14, 14, 1056) 0           batch_normalization_80[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_28 (DepthwiseC (None, 7, 7, 1056)   26400       swish_80[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_81 (BatchNo (None, 7, 7, 1056)   4224        depthwise_conv2d_28[0][0]        \n__________________________________________________________________________________________________\nswish_81 (Swish)                (None, 7, 7, 1056)   0           batch_normalization_81[0][0]     \n__________________________________________________________________________________________________\nlambda_28 (Lambda)              (None, 1, 1, 1056)   0           swish_81[0][0]                   \n__________________________________________________________________________________________________\nconv2d_108 (Conv2D)             (None, 1, 1, 44)     46508       lambda_28[0][0]                  \n__________________________________________________________________________________________________\nswish_82 (Swish)                (None, 1, 1, 44)     0           conv2d_108[0][0]                 \n__________________________________________________________________________________________________\nconv2d_109 (Conv2D)             (None, 1, 1, 1056)   47520       swish_82[0][0]                   \n__________________________________________________________________________________________________\nactivation_28 (Activation)      (None, 1, 1, 1056)   0           conv2d_109[0][0]                 \n__________________________________________________________________________________________________\nmultiply_28 (Multiply)          (None, 7, 7, 1056)   0           activation_28[0][0]              \n                                                                 swish_81[0][0]                   \n__________________________________________________________________________________________________\nconv2d_110 (Conv2D)             (None, 7, 7, 304)    321024      multiply_28[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_82 (BatchNo (None, 7, 7, 304)    1216        conv2d_110[0][0]                 \n__________________________________________________________________________________________________\nconv2d_111 (Conv2D)             (None, 7, 7, 1824)   554496      batch_normalization_82[0][0]     \n__________________________________________________________________________________________________\nbatch_normalization_83 (BatchNo (None, 7, 7, 1824)   7296        conv2d_111[0][0]                 \n__________________________________________________________________________________________________\nswish_83 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_83[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_29 (DepthwiseC (None, 7, 7, 1824)   45600       swish_83[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_84 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_29[0][0]        \n__________________________________________________________________________________________________\nswish_84 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_84[0][0]     \n__________________________________________________________________________________________________\nlambda_29 (Lambda)              (None, 1, 1, 1824)   0           swish_84[0][0]                   \n__________________________________________________________________________________________________\nconv2d_112 (Conv2D)             (None, 1, 1, 76)     138700      lambda_29[0][0]                  \n__________________________________________________________________________________________________\nswish_85 (Swish)                (None, 1, 1, 76)     0           conv2d_112[0][0]                 \n__________________________________________________________________________________________________\nconv2d_113 (Conv2D)             (None, 1, 1, 1824)   140448      swish_85[0][0]                   \n__________________________________________________________________________________________________\nactivation_29 (Activation)      (None, 1, 1, 1824)   0           conv2d_113[0][0]                 \n__________________________________________________________________________________________________\nmultiply_29 (Multiply)          (None, 7, 7, 1824)   0           activation_29[0][0]              \n                                                                 swish_84[0][0]                   \n__________________________________________________________________________________________________\nconv2d_114 (Conv2D)             (None, 7, 7, 304)    554496      multiply_29[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_85 (BatchNo (None, 7, 7, 304)    1216        conv2d_114[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_23 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_85[0][0]     \n__________________________________________________________________________________________________\nadd_23 (Add)                    (None, 7, 7, 304)    0           drop_connect_23[0][0]            \n                                                                 batch_normalization_82[0][0]     \n__________________________________________________________________________________________________\nconv2d_115 (Conv2D)             (None, 7, 7, 1824)   554496      add_23[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_86 (BatchNo (None, 7, 7, 1824)   7296        conv2d_115[0][0]                 \n__________________________________________________________________________________________________\nswish_86 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_86[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_30 (DepthwiseC (None, 7, 7, 1824)   45600       swish_86[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_87 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_30[0][0]        \n__________________________________________________________________________________________________\nswish_87 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_87[0][0]     \n__________________________________________________________________________________________________\nlambda_30 (Lambda)              (None, 1, 1, 1824)   0           swish_87[0][0]                   \n__________________________________________________________________________________________________\nconv2d_116 (Conv2D)             (None, 1, 1, 76)     138700      lambda_30[0][0]                  \n__________________________________________________________________________________________________\nswish_88 (Swish)                (None, 1, 1, 76)     0           conv2d_116[0][0]                 \n__________________________________________________________________________________________________\nconv2d_117 (Conv2D)             (None, 1, 1, 1824)   140448      swish_88[0][0]                   \n__________________________________________________________________________________________________\nactivation_30 (Activation)      (None, 1, 1, 1824)   0           conv2d_117[0][0]                 \n__________________________________________________________________________________________________\nmultiply_30 (Multiply)          (None, 7, 7, 1824)   0           activation_30[0][0]              \n                                                                 swish_87[0][0]                   \n__________________________________________________________________________________________________\nconv2d_118 (Conv2D)             (None, 7, 7, 304)    554496      multiply_30[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_88 (BatchNo (None, 7, 7, 304)    1216        conv2d_118[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_24 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_88[0][0]     \n__________________________________________________________________________________________________\nadd_24 (Add)                    (None, 7, 7, 304)    0           drop_connect_24[0][0]            \n                                                                 add_23[0][0]                     \n__________________________________________________________________________________________________\nconv2d_119 (Conv2D)             (None, 7, 7, 1824)   554496      add_24[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_89 (BatchNo (None, 7, 7, 1824)   7296        conv2d_119[0][0]                 \n__________________________________________________________________________________________________\nswish_89 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_89[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_31 (DepthwiseC (None, 7, 7, 1824)   45600       swish_89[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_90 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_31[0][0]        \n__________________________________________________________________________________________________\nswish_90 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_90[0][0]     \n__________________________________________________________________________________________________\nlambda_31 (Lambda)              (None, 1, 1, 1824)   0           swish_90[0][0]                   \n__________________________________________________________________________________________________\nconv2d_120 (Conv2D)             (None, 1, 1, 76)     138700      lambda_31[0][0]                  \n__________________________________________________________________________________________________\nswish_91 (Swish)                (None, 1, 1, 76)     0           conv2d_120[0][0]                 \n__________________________________________________________________________________________________\nconv2d_121 (Conv2D)             (None, 1, 1, 1824)   140448      swish_91[0][0]                   \n__________________________________________________________________________________________________\nactivation_31 (Activation)      (None, 1, 1, 1824)   0           conv2d_121[0][0]                 \n__________________________________________________________________________________________________\nmultiply_31 (Multiply)          (None, 7, 7, 1824)   0           activation_31[0][0]              \n                                                                 swish_90[0][0]                   \n__________________________________________________________________________________________________\nconv2d_122 (Conv2D)             (None, 7, 7, 304)    554496      multiply_31[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_91 (BatchNo (None, 7, 7, 304)    1216        conv2d_122[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_25 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_91[0][0]     \n__________________________________________________________________________________________________\nadd_25 (Add)                    (None, 7, 7, 304)    0           drop_connect_25[0][0]            \n                                                                 add_24[0][0]                     \n__________________________________________________________________________________________________\nconv2d_123 (Conv2D)             (None, 7, 7, 1824)   554496      add_25[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_92 (BatchNo (None, 7, 7, 1824)   7296        conv2d_123[0][0]                 \n__________________________________________________________________________________________________\nswish_92 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_92[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_32 (DepthwiseC (None, 7, 7, 1824)   45600       swish_92[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_93 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_32[0][0]        \n__________________________________________________________________________________________________\nswish_93 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_93[0][0]     \n__________________________________________________________________________________________________\nlambda_32 (Lambda)              (None, 1, 1, 1824)   0           swish_93[0][0]                   \n__________________________________________________________________________________________________\nconv2d_124 (Conv2D)             (None, 1, 1, 76)     138700      lambda_32[0][0]                  \n__________________________________________________________________________________________________\nswish_94 (Swish)                (None, 1, 1, 76)     0           conv2d_124[0][0]                 \n__________________________________________________________________________________________________\nconv2d_125 (Conv2D)             (None, 1, 1, 1824)   140448      swish_94[0][0]                   \n__________________________________________________________________________________________________\nactivation_32 (Activation)      (None, 1, 1, 1824)   0           conv2d_125[0][0]                 \n__________________________________________________________________________________________________\nmultiply_32 (Multiply)          (None, 7, 7, 1824)   0           activation_32[0][0]              \n                                                                 swish_93[0][0]                   \n__________________________________________________________________________________________________\nconv2d_126 (Conv2D)             (None, 7, 7, 304)    554496      multiply_32[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_94 (BatchNo (None, 7, 7, 304)    1216        conv2d_126[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_26 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_94[0][0]     \n__________________________________________________________________________________________________\nadd_26 (Add)                    (None, 7, 7, 304)    0           drop_connect_26[0][0]            \n                                                                 add_25[0][0]                     \n__________________________________________________________________________________________________\nconv2d_127 (Conv2D)             (None, 7, 7, 1824)   554496      add_26[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_95 (BatchNo (None, 7, 7, 1824)   7296        conv2d_127[0][0]                 \n__________________________________________________________________________________________________\nswish_95 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_95[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_33 (DepthwiseC (None, 7, 7, 1824)   45600       swish_95[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_96 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_33[0][0]        \n__________________________________________________________________________________________________\nswish_96 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_96[0][0]     \n__________________________________________________________________________________________________\nlambda_33 (Lambda)              (None, 1, 1, 1824)   0           swish_96[0][0]                   \n__________________________________________________________________________________________________\nconv2d_128 (Conv2D)             (None, 1, 1, 76)     138700      lambda_33[0][0]                  \n__________________________________________________________________________________________________\nswish_97 (Swish)                (None, 1, 1, 76)     0           conv2d_128[0][0]                 \n__________________________________________________________________________________________________\nconv2d_129 (Conv2D)             (None, 1, 1, 1824)   140448      swish_97[0][0]                   \n__________________________________________________________________________________________________\nactivation_33 (Activation)      (None, 1, 1, 1824)   0           conv2d_129[0][0]                 \n__________________________________________________________________________________________________\nmultiply_33 (Multiply)          (None, 7, 7, 1824)   0           activation_33[0][0]              \n                                                                 swish_96[0][0]                   \n__________________________________________________________________________________________________\nconv2d_130 (Conv2D)             (None, 7, 7, 304)    554496      multiply_33[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_97 (BatchNo (None, 7, 7, 304)    1216        conv2d_130[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_27 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_97[0][0]     \n__________________________________________________________________________________________________\nadd_27 (Add)                    (None, 7, 7, 304)    0           drop_connect_27[0][0]            \n                                                                 add_26[0][0]                     \n__________________________________________________________________________________________________\nconv2d_131 (Conv2D)             (None, 7, 7, 1824)   554496      add_27[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_98 (BatchNo (None, 7, 7, 1824)   7296        conv2d_131[0][0]                 \n__________________________________________________________________________________________________\nswish_98 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_98[0][0]     \n__________________________________________________________________________________________________\ndepthwise_conv2d_34 (DepthwiseC (None, 7, 7, 1824)   45600       swish_98[0][0]                   \n__________________________________________________________________________________________________\nbatch_normalization_99 (BatchNo (None, 7, 7, 1824)   7296        depthwise_conv2d_34[0][0]        \n__________________________________________________________________________________________________\nswish_99 (Swish)                (None, 7, 7, 1824)   0           batch_normalization_99[0][0]     \n__________________________________________________________________________________________________\nlambda_34 (Lambda)              (None, 1, 1, 1824)   0           swish_99[0][0]                   \n__________________________________________________________________________________________________\nconv2d_132 (Conv2D)             (None, 1, 1, 76)     138700      lambda_34[0][0]                  \n__________________________________________________________________________________________________\nswish_100 (Swish)               (None, 1, 1, 76)     0           conv2d_132[0][0]                 \n__________________________________________________________________________________________________\nconv2d_133 (Conv2D)             (None, 1, 1, 1824)   140448      swish_100[0][0]                  \n__________________________________________________________________________________________________\nactivation_34 (Activation)      (None, 1, 1, 1824)   0           conv2d_133[0][0]                 \n__________________________________________________________________________________________________\nmultiply_34 (Multiply)          (None, 7, 7, 1824)   0           activation_34[0][0]              \n                                                                 swish_99[0][0]                   \n__________________________________________________________________________________________________\nconv2d_134 (Conv2D)             (None, 7, 7, 304)    554496      multiply_34[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_100 (BatchN (None, 7, 7, 304)    1216        conv2d_134[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_28 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_100[0][0]    \n__________________________________________________________________________________________________\nadd_28 (Add)                    (None, 7, 7, 304)    0           drop_connect_28[0][0]            \n                                                                 add_27[0][0]                     \n__________________________________________________________________________________________________\nconv2d_135 (Conv2D)             (None, 7, 7, 1824)   554496      add_28[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_101 (BatchN (None, 7, 7, 1824)   7296        conv2d_135[0][0]                 \n__________________________________________________________________________________________________\nswish_101 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_101[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_35 (DepthwiseC (None, 7, 7, 1824)   45600       swish_101[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_102 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_35[0][0]        \n__________________________________________________________________________________________________\nswish_102 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_102[0][0]    \n__________________________________________________________________________________________________\nlambda_35 (Lambda)              (None, 1, 1, 1824)   0           swish_102[0][0]                  \n__________________________________________________________________________________________________\nconv2d_136 (Conv2D)             (None, 1, 1, 76)     138700      lambda_35[0][0]                  \n__________________________________________________________________________________________________\nswish_103 (Swish)               (None, 1, 1, 76)     0           conv2d_136[0][0]                 \n__________________________________________________________________________________________________\nconv2d_137 (Conv2D)             (None, 1, 1, 1824)   140448      swish_103[0][0]                  \n__________________________________________________________________________________________________\nactivation_35 (Activation)      (None, 1, 1, 1824)   0           conv2d_137[0][0]                 \n__________________________________________________________________________________________________\nmultiply_35 (Multiply)          (None, 7, 7, 1824)   0           activation_35[0][0]              \n                                                                 swish_102[0][0]                  \n__________________________________________________________________________________________________\nconv2d_138 (Conv2D)             (None, 7, 7, 304)    554496      multiply_35[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_103 (BatchN (None, 7, 7, 304)    1216        conv2d_138[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_29 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_103[0][0]    \n__________________________________________________________________________________________________\nadd_29 (Add)                    (None, 7, 7, 304)    0           drop_connect_29[0][0]            \n                                                                 add_28[0][0]                     \n__________________________________________________________________________________________________\nconv2d_139 (Conv2D)             (None, 7, 7, 1824)   554496      add_29[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_104 (BatchN (None, 7, 7, 1824)   7296        conv2d_139[0][0]                 \n__________________________________________________________________________________________________\nswish_104 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_104[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_36 (DepthwiseC (None, 7, 7, 1824)   45600       swish_104[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_105 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_36[0][0]        \n__________________________________________________________________________________________________\nswish_105 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_105[0][0]    \n__________________________________________________________________________________________________\nlambda_36 (Lambda)              (None, 1, 1, 1824)   0           swish_105[0][0]                  \n__________________________________________________________________________________________________\nconv2d_140 (Conv2D)             (None, 1, 1, 76)     138700      lambda_36[0][0]                  \n__________________________________________________________________________________________________\nswish_106 (Swish)               (None, 1, 1, 76)     0           conv2d_140[0][0]                 \n__________________________________________________________________________________________________\nconv2d_141 (Conv2D)             (None, 1, 1, 1824)   140448      swish_106[0][0]                  \n__________________________________________________________________________________________________\nactivation_36 (Activation)      (None, 1, 1, 1824)   0           conv2d_141[0][0]                 \n__________________________________________________________________________________________________\nmultiply_36 (Multiply)          (None, 7, 7, 1824)   0           activation_36[0][0]              \n                                                                 swish_105[0][0]                  \n__________________________________________________________________________________________________\nconv2d_142 (Conv2D)             (None, 7, 7, 304)    554496      multiply_36[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_106 (BatchN (None, 7, 7, 304)    1216        conv2d_142[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_30 (DropConnect)   (None, 7, 7, 304)    0           batch_normalization_106[0][0]    \n__________________________________________________________________________________________________\nadd_30 (Add)                    (None, 7, 7, 304)    0           drop_connect_30[0][0]            \n                                                                 add_29[0][0]                     \n__________________________________________________________________________________________________\nconv2d_143 (Conv2D)             (None, 7, 7, 1824)   554496      add_30[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_107 (BatchN (None, 7, 7, 1824)   7296        conv2d_143[0][0]                 \n__________________________________________________________________________________________________\nswish_107 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_107[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_37 (DepthwiseC (None, 7, 7, 1824)   16416       swish_107[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_108 (BatchN (None, 7, 7, 1824)   7296        depthwise_conv2d_37[0][0]        \n__________________________________________________________________________________________________\nswish_108 (Swish)               (None, 7, 7, 1824)   0           batch_normalization_108[0][0]    \n__________________________________________________________________________________________________\nlambda_37 (Lambda)              (None, 1, 1, 1824)   0           swish_108[0][0]                  \n__________________________________________________________________________________________________\nconv2d_144 (Conv2D)             (None, 1, 1, 76)     138700      lambda_37[0][0]                  \n__________________________________________________________________________________________________\nswish_109 (Swish)               (None, 1, 1, 76)     0           conv2d_144[0][0]                 \n__________________________________________________________________________________________________\nconv2d_145 (Conv2D)             (None, 1, 1, 1824)   140448      swish_109[0][0]                  \n__________________________________________________________________________________________________\nactivation_37 (Activation)      (None, 1, 1, 1824)   0           conv2d_145[0][0]                 \n__________________________________________________________________________________________________\nmultiply_37 (Multiply)          (None, 7, 7, 1824)   0           activation_37[0][0]              \n                                                                 swish_108[0][0]                  \n__________________________________________________________________________________________________\nconv2d_146 (Conv2D)             (None, 7, 7, 512)    933888      multiply_37[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_109 (BatchN (None, 7, 7, 512)    2048        conv2d_146[0][0]                 \n__________________________________________________________________________________________________\nconv2d_147 (Conv2D)             (None, 7, 7, 3072)   1572864     batch_normalization_109[0][0]    \n__________________________________________________________________________________________________\nbatch_normalization_110 (BatchN (None, 7, 7, 3072)   12288       conv2d_147[0][0]                 \n__________________________________________________________________________________________________\nswish_110 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_110[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_38 (DepthwiseC (None, 7, 7, 3072)   27648       swish_110[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_111 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_38[0][0]        \n__________________________________________________________________________________________________\nswish_111 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_111[0][0]    \n__________________________________________________________________________________________________\nlambda_38 (Lambda)              (None, 1, 1, 3072)   0           swish_111[0][0]                  \n__________________________________________________________________________________________________\nconv2d_148 (Conv2D)             (None, 1, 1, 128)    393344      lambda_38[0][0]                  \n__________________________________________________________________________________________________\nswish_112 (Swish)               (None, 1, 1, 128)    0           conv2d_148[0][0]                 \n__________________________________________________________________________________________________\nconv2d_149 (Conv2D)             (None, 1, 1, 3072)   396288      swish_112[0][0]                  \n__________________________________________________________________________________________________\nactivation_38 (Activation)      (None, 1, 1, 3072)   0           conv2d_149[0][0]                 \n__________________________________________________________________________________________________\nmultiply_38 (Multiply)          (None, 7, 7, 3072)   0           activation_38[0][0]              \n                                                                 swish_111[0][0]                  \n__________________________________________________________________________________________________\nconv2d_150 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_38[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_112 (BatchN (None, 7, 7, 512)    2048        conv2d_150[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_31 (DropConnect)   (None, 7, 7, 512)    0           batch_normalization_112[0][0]    \n__________________________________________________________________________________________________\nadd_31 (Add)                    (None, 7, 7, 512)    0           drop_connect_31[0][0]            \n                                                                 batch_normalization_109[0][0]    \n__________________________________________________________________________________________________\nconv2d_151 (Conv2D)             (None, 7, 7, 3072)   1572864     add_31[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_113 (BatchN (None, 7, 7, 3072)   12288       conv2d_151[0][0]                 \n__________________________________________________________________________________________________\nswish_113 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_113[0][0]    \n__________________________________________________________________________________________________\ndepthwise_conv2d_39 (DepthwiseC (None, 7, 7, 3072)   27648       swish_113[0][0]                  \n__________________________________________________________________________________________________\nbatch_normalization_114 (BatchN (None, 7, 7, 3072)   12288       depthwise_conv2d_39[0][0]        \n__________________________________________________________________________________________________\nswish_114 (Swish)               (None, 7, 7, 3072)   0           batch_normalization_114[0][0]    \n__________________________________________________________________________________________________\nlambda_39 (Lambda)              (None, 1, 1, 3072)   0           swish_114[0][0]                  \n__________________________________________________________________________________________________\nconv2d_152 (Conv2D)             (None, 1, 1, 128)    393344      lambda_39[0][0]                  \n__________________________________________________________________________________________________\nswish_115 (Swish)               (None, 1, 1, 128)    0           conv2d_152[0][0]                 \n__________________________________________________________________________________________________\nconv2d_153 (Conv2D)             (None, 1, 1, 3072)   396288      swish_115[0][0]                  \n__________________________________________________________________________________________________\nactivation_39 (Activation)      (None, 1, 1, 3072)   0           conv2d_153[0][0]                 \n__________________________________________________________________________________________________\nmultiply_39 (Multiply)          (None, 7, 7, 3072)   0           activation_39[0][0]              \n                                                                 swish_114[0][0]                  \n__________________________________________________________________________________________________\nconv2d_154 (Conv2D)             (None, 7, 7, 512)    1572864     multiply_39[0][0]                \n__________________________________________________________________________________________________\nbatch_normalization_115 (BatchN (None, 7, 7, 512)    2048        conv2d_154[0][0]                 \n__________________________________________________________________________________________________\ndrop_connect_32 (DropConnect)   (None, 7, 7, 512)    0           batch_normalization_115[0][0]    \n__________________________________________________________________________________________________\nadd_32 (Add)                    (None, 7, 7, 512)    0           drop_connect_32[0][0]            \n                                                                 add_31[0][0]                     \n__________________________________________________________________________________________________\nconv2d_155 (Conv2D)             (None, 7, 7, 2048)   1048576     add_32[0][0]                     \n__________________________________________________________________________________________________\nbatch_normalization_116 (BatchN (None, 7, 7, 2048)   8192        conv2d_155[0][0]                 \n__________________________________________________________________________________________________\nswish_116 (Swish)               (None, 7, 7, 2048)   0           batch_normalization_116[0][0]    \n__________________________________________________________________________________________________\nglobal_average_pooling2d_1 (Glo (None, 2048)         0           swish_116[0][0]                  \n__________________________________________________________________________________________________\ndropout_1 (Dropout)             (None, 2048)         0           global_average_pooling2d_1[0][0] \n__________________________________________________________________________________________________\ndense_1 (Dense)                 (None, 2048)         4196352     dropout_1[0][0]                  \n__________________________________________________________________________________________________\ndropout_2 (Dropout)             (None, 2048)         0           dense_1[0][0]                    \n__________________________________________________________________________________________________\nfinal_output (Dense)            (None, 5)            10245       dropout_2[0][0]                  \n==================================================================================================\nTotal params: 32,720,117\nTrainable params: 32,547,381\nNon-trainable params: 172,736\n__________________________________________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"history = model.fit_generator(generator=train_generator,\n                              steps_per_epoch=STEP_SIZE_TRAIN,\n                              validation_data=valid_generator,\n                              validation_steps=STEP_SIZE_VALID,\n                              epochs=EPOCHS,\n                              callbacks=callback_list,\n                              verbose=1).history","metadata":{"execution":{"iopub.status.busy":"2024-06-04T00:24:12.102392Z","iopub.execute_input":"2024-06-04T00:24:12.102769Z","iopub.status.idle":"2024-06-04T01:05:32.235664Z","shell.execute_reply.started":"2024-06-04T00:24:12.102711Z","shell.execute_reply":"2024-06-04T01:05:32.234812Z"},"trusted":true},"execution_count":12,"outputs":[{"name":"stdout","text":"Epoch 1/20\n91/91 [==============================] - 166s 2s/step - loss: 0.8585 - acc: 0.7066 - val_loss: 0.5510 - val_acc: 0.7989\nEpoch 2/20\n91/91 [==============================] - 121s 1s/step - loss: 0.6837 - acc: 0.7552 - val_loss: 0.5420 - val_acc: 0.7917\nEpoch 3/20\n91/91 [==============================] - 120s 1s/step - loss: 0.5993 - acc: 0.7770 - val_loss: 0.6058 - val_acc: 0.7732\nEpoch 4/20\n91/91 [==============================] - 120s 1s/step - loss: 0.5864 - acc: 0.7835 - val_loss: 0.4742 - val_acc: 0.8117\nEpoch 5/20\n91/91 [==============================] - 120s 1s/step - loss: 0.5012 - acc: 0.8181 - val_loss: 0.4684 - val_acc: 0.8060\nEpoch 6/20\n91/91 [==============================] - 121s 1s/step - loss: 0.5111 - acc: 0.8047 - val_loss: 0.5227 - val_acc: 0.8302\nEpoch 7/20\n91/91 [==============================] - 121s 1s/step - loss: 0.4849 - acc: 0.8283 - val_loss: 0.5622 - val_acc: 0.8060\nEpoch 8/20\n91/91 [==============================] - 120s 1s/step - loss: 0.4228 - acc: 0.8465 - val_loss: 0.4204 - val_acc: 0.8545\nEpoch 9/20\n91/91 [==============================] - 120s 1s/step - loss: 0.4009 - acc: 0.8535 - val_loss: 0.4934 - val_acc: 0.8374\nEpoch 10/20\n91/91 [==============================] - 120s 1s/step - loss: 0.4389 - acc: 0.8390 - val_loss: 0.4863 - val_acc: 0.8060\nEpoch 11/20\n91/91 [==============================] - 120s 1s/step - loss: 0.3869 - acc: 0.8494 - val_loss: 0.4794 - val_acc: 0.8331\n\nEpoch 00011: ReduceLROnPlateau reducing learning rate to 0.00019999999494757503.\nEpoch 12/20\n91/91 [==============================] - 120s 1s/step - loss: 0.3192 - acc: 0.8878 - val_loss: 0.4668 - val_acc: 0.8317\nEpoch 13/20\n91/91 [==============================] - 120s 1s/step - loss: 0.2852 - acc: 0.8987 - val_loss: 0.5119 - val_acc: 0.8374\nEpoch 14/20\n91/91 [==============================] - 120s 1s/step - loss: 0.2729 - acc: 0.8920 - val_loss: 0.5293 - val_acc: 0.8345\n\nEpoch 00014: ReduceLROnPlateau reducing learning rate to 9.999999747378752e-05.\nEpoch 15/20\n91/91 [==============================] - 120s 1s/step - loss: 0.2291 - acc: 0.9159 - val_loss: 0.5441 - val_acc: 0.8188\nEpoch 16/20\n91/91 [==============================] - 120s 1s/step - loss: 0.2038 - acc: 0.9215 - val_loss: 0.5807 - val_acc: 0.8217\nEpoch 17/20\n91/91 [==============================] - 120s 1s/step - loss: 0.1925 - acc: 0.9276 - val_loss: 0.5630 - val_acc: 0.8245\n\nEpoch 00017: ReduceLROnPlateau reducing learning rate to 4.999999873689376e-05.\nEpoch 18/20\n91/91 [==============================] - 120s 1s/step - loss: 0.1817 - acc: 0.9348 - val_loss: 0.6034 - val_acc: 0.8245\nEpoch 19/20\n91/91 [==============================] - 120s 1s/step - loss: 0.1768 - acc: 0.9338 - val_loss: 0.5717 - val_acc: 0.8302\nEpoch 20/20\n91/91 [==============================] - 120s 1s/step - loss: 0.1637 - acc: 0.9393 - val_loss: 0.5935 - val_acc: 0.8381\n\nEpoch 00020: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\n","output_type":"stream"}]},{"cell_type":"code","source":"# fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 6))\n\n# ax1.plot(cosine_lr_1st.learning_rates)\n# ax1.set_title('Warm up learning rates')\n\n# ax2.plot(cosine_lr_2nd.learning_rates)\n# ax2.set_title('Fine-tune learning rates')\n\n# plt.xlabel('Steps')\n# plt.ylabel('Learning rate')\n# sns.despine()\n# plt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-30T14:26:47.518234Z","iopub.execute_input":"2024-04-30T14:26:47.518551Z","iopub.status.idle":"2024-04-30T14:26:47.830913Z","shell.execute_reply.started":"2024-04-30T14:26:47.518499Z","shell.execute_reply":"2024-04-30T14:26:47.83013Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 14))\n\nax1.plot(history['loss'], label='Train loss')\nax1.plot(history['val_loss'], label='Validation loss')\nax1.legend(loc='best')\nax1.set_title('Loss')\n\nax2.plot(history['acc'], label='Train accuracy')\nax2.plot(history['val_acc'], label='Validation accuracy')\nax2.legend(loc='best')\nax2.set_title('Accuracy')\n\nplt.xlabel('Epochs')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:05:36.503153Z","iopub.execute_input":"2024-06-04T01:05:36.503699Z","iopub.status.idle":"2024-06-04T01:05:37.262361Z","shell.execute_reply.started":"2024-06-04T01:05:36.503617Z","shell.execute_reply":"2024-06-04T01:05:37.261467Z"},"trusted":true},"execution_count":13,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1440x1008 with 2 Axes>","image/png":"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fvMb1q9fT/v27UlKSqJdu3ZHPd7MmTNZtWoVDz74IE8++SR33XUXu3btYt68eTz11FMAPPfcc7z33nsA9O3bl3vvvZfo6GimTZtGQUEBZWVlbN26lU6dOjF16lS8Xu9RX/vKlSt56KGHqKysJCoqit/85jf069ePoqIipkyZQlFREQDDhg3jnnvuYenSpTzwwAMEg0H8fj833ngj559//rH/gxwnjUhqRlxOB3dOGkR1rZ+/vLWCUChkdyQRERERERGRJufxeLjgggvqRyWVl5fz0UcfcdFFFwGQnZ3N9OnTeffdd3nxxRd5+OGHKS0tPeoxn376aaKjo5kzZw5//vOfD5oid6TjjR8/npycHO69915mzZrF8OHDDzrmp59+ynvvvceMGTOYPXs2gUCAv/71r/UfX7VqFY899hgffPABfr+f2bNnHzVjbW0tt912G5MnT2b27Nncfvvt3HbbbdTW1jJ79mwyMjKYPXs2s2fP5uabbwbg+eef55prrmHWrFm8//77jBo16tj/ok+ARiQ1M53S47h6bDYvvLeKjxZv4eyhWXZHEhERERERkTYmtt/oHxw1dLJdcsklXHfdddx555188MEH5ObmkpaWBkBxcTH33HMPmzdvxul0UlpaSkFBAQMGDDji8RYtWsS9994LQFJSEmeffXb9x07keBAeyTR27FhiYmIAuPTSS/njH/9Y//GRI0cSFxcHQL9+/diyZctRj1dQUIDb7a4vrIYNG4bb7aagoID+/fvXl1xDhgxh5MiRAAwdOpTnnnuOHTt2MGLECPr373/UczSURiQ1Qz85rSt9u7Xj+Vlfs6uoZSy2JSIiIiIiItKYevXqRUpKCp9//jkzZ85k/Pjx9R+77777GDJkCLNnz2bWrFmkp6dTU1Nz1OMdbdbPiRzv22MahnHEj0dERNQ/djqdBAKBEzqeYRgMHDiQd999l5ycHGbNmsXVV18NwE9/+lOeffZZkpKSeOCBB3jiiSd+MHdDqEhqhhwOg9svGwgYPDljGcGgpriJiIiIiIhI2zN+/HimTZvGpk2bGDNmTP32srIyOnTogGEYzJ8/n82bN//gsYYNG1Y/Va6kpISPPvromI4XHR1NWVnZYY85fPhw5syZQ3l5OaFQiLfffvt709+OR9euXamtrWXhwoUALFy4EL/fT+fOndm6dSsxMTGcd955/PrXv2b16tUEg0EKCgro1KkTl112GVdffTVff/31CZ//WGhqWzOVmhTFLy7sy9Q3ljHrsw1cNLq73ZFEREREREREmtQFF1zAI488wsSJE/F4PPXbp0yZwv3338/zzz+PaZqYpvmDx7rpppu45557GDt2LB06dGDEiBHHdLyJEyfy8MMP849//INf/epXBx3z9NNPx7IsLrvsMgBycnK48cYbT/j1ejwennrqqYMW2546dSoej4fFixfz4osv4nQ6CQaD3H///TgcDl555RUWLVqE2+3G4/HUT987WYzmvqBzXl5eZ6AgJyfnoCFhLVVeXh65ubnHtG8oFOKhFxeTt3Y3T95xOlnt405yOrHD8VwT0nboupBD6ZqQw9F1IYfSNSGHo+tCDnWka2LNmjX07t3bhkTSFI7w73vkeXlHoKltzZhhGNwyYQDRXhePv74Unz9odyQRERERERERacNUJDVzCbER3HxJfzZuL+WN/1p2xxERERERERGRNqzBaySZptkTeAlIBoqAqy3L+uaQfVKBF4FMwAN8AtxmWZa/oedvC4b1zWDM4Eze+ngdg7PT6JWVZHckERERERERaYV+6C5k0jIFg403w6kxRiQ9CzxtWVZP4Gngb4fZ5x5gjWVZ/YC+QC5wcSOcu834xYV9SYr38sT0pVTXqn8TERERERGRxhUZGUlRURHNfS1lOXahUIja2lq2b99OdHR0oxyzQSOS6kYaDQLOrtv0OvAX0zRTLMvac8CuISDWNE0HEEF4VNL2hpy7rYn2urn9soHc++wCXno/n+sv7md3JBEREREREWlFOnbsyLZt29izZ88P7ywthsvlIj4+nnbt2jXO8Rr4/Exgu2VZAQDLsgKmae6o237glfcAMBPYCUQDf7Esa34Dz93m9O+Rwk9O68p7n29kSJ90BpqpdkcSERERERGRVsLtdtOlSxe7Y0gzZzRkyJppmrnAy5Zl9TlgWz5wpWVZSw/Ydj2QDdwBxAIfAI9blvX2D50jLy+vM1BwwiFbGZ8/xN/+U0iNL8RN56Xh9Wi9dBERERERERE5frm5uce9IFZDRyRtBTqYpumsG43kBDLqth/oVuBnlmUFgVLTNGcBZwA/WCR9Kycnh4iIiAbGtV9eXh65ubkNOkZS+xJ+Oe1zFhU4mHJ5w44l9muMa0JaH10XcihdE3I4ui7kULom5HB0XcihdE1IQzRoOItlWbuB5cCkuk2TgGWHrI8E4RFFPwYwTdMDnAWsasi527KenRKZeFZP5uVtY/6KHXbHEREREREREZE2ojHmRd0A3Gqa5jrCI49uADBNc45pmoPr9rkdOM00za8JF0/rgOcb4dxt1qVn9aR7ZgJPv72Ckv3VdscRERERERERkTagoVPbsCxrLTD0MNvHHvB4A9/d2U0agcvp4M5Jg7j98XlMe2s5v/3ZUAzjuKc2ioiIiIiIiIgcM63U3IJlpsVyzXnZfJVfyH8Xb7E7joiIiIiIiIi0ciqSWrjzR3alX/d2/H3W1+wqqrA7joiIiIiIiIi0YiqSWjiHw2DyZQMxDIMnZywjEAzZHUlEREREREREWikVSa1AamIUv7iwL6s3FjHr0w12xxERERERERGRVkpFUisxZnAmp+ak88oHa9i8c7/dcURERERERESkFVKR1EoYhsHNlwwg2uvi8elL8fmDdkcSERERERERkVZGRVIrkhAbwS0TBrBxRykz/mvZHUdEREREREREWhkVSa3MqTntOfOUTN7+eB1rNxfbHUdEREREREREWhEVSa3Qz8f1JTnByxPTl1Jd47c7joiIiIiIiIi0EiqSWqFor5vbLxvIjr0V/PPf+XbHEREREREREZFWQkVSK9Wvewo/GdWVf88vYKm12+44IiIiIiIiItIKqEhqxa4em01mWgxPvbGM8spau+OIiIiIiIiISAunIqkVi3A7uXNSLvvKavjbv762O46IiIiIiIiItHAqklq57pkJTDzbZN7SbXyxYrvdcURERERERESkBVOR1AZMOLMHPTIT+OvbKyneX213HBERERERERFpoVQktQEup4M7Jg2iptbPtDeXEwqF7I4kIiIiIiIiIi2QiqQ2IjMtlmvOz2bJmkI+XLTZ7jgiIiIiIiIi0gKpSGpDzh/RlX7d2/H3WavYVVRhdxwRERERERERaWFUJLUhDofB5MsG4nAYPPH6UgJBTXETERERERERkWOnIqmNSU2M4vqL+pJfUMysT9fbHUdEREREREREWhAVSW3QGbmZDOvbnlc+WMumnfvtjiMiIiIiIiIiLYSKpDbIMAxuvqQ/MV43j0/Pw+cP2h1JRERERERERFoAFUltVHxMBDdP6E/Bjv28/uFau+OIiIiIiIiISAugIqkNOzWnPWed0omZn3zD2k3FdscR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W4GdiIiIDLzi4uILfqM34M22TdN0Ar8DPmZZVrCrTdKFmzRpEm730Fnm+GKVlJRQXFwc6TJkCNE5Ieei80LONljnRFNLB3a7gcel9TgGwyUz4a5wmG17T/L4qn2s2HaCdbubuGJWDtfPzyPFH/2u99drhZxN54Sci84LOZvOCemLvr5LLAUyTNO0d4dEdiC9e/spaUAe8Fx3iBQPGKZpxlqWdXcfjy8iIiL9KCbKGekSRh3DMJhakMTUgiQOHq3jiVX7eO61g/zjtYNcNjWdmxaOIy8zPtJlioiIiAB9DJIsyzphmuYW4Dbg4e7Lzb37I1mWdQToWVrGNM1vcQFT20RERERGi9z0OL5wezEfubqQp9fu54X1h1izuZyp+YnctCif6QVJGIamGoqIiEjk9McE/E8DnzdNcw/w+e4/Y5rmc6ZpzuiHxxcREREZVZISovj4dZP4wzeWctf7CimtaOCbv32df/3RKlaWlNIZDEW6RBERERml+twAwbKs3cCsc2y/5h32/1ZfjykiIiIyGnijnNy8OJ/r549l9aYyHl+1jx/9ZRMPPbeL6+ePJdmtQElEREQGlzppioiIiAxxToedyy/JYfGMbDburuDxlfv4/dM78EbZaLYdYfGMLGw2TXkTERGRgacgSURERGSYsNkMLilM5ZLCVHYerOJnyzbw079t5tnXDvCJ6yYxKS/xvR9EREREpA/6o0eSiIiIiAyywtwAH78ymS/eXkRtQxtf+9VrfO/BNzhe1RTp0kRERGQE04gkERERkWHKZhgsLM5i9uQ0nli1n8dW7uWNHRVcP38st15eQLTHGekSRUREZIRRkCQiIiIyzHlcDm670uTKWdk89NwuHlu5j1feLOXDV43nilk52NU/SURERPqJpraJiIiIjBCBuCjuua2I+/91PmmJMfzy71v5tx+tYuueykiXJiIiIiOEgiQRERGREaYgO4Hvf+4yvvyRGTS3dvCfD6zjO3/YwNHKxkiXJiIiIsOcgiQRERGREcgwDOZNy+DXX1nCnddMYNu+Sv75hyv436e209jcHunyREREZJhSjyQRERGREczltHPLkgIun5nNn5bv4um1+1mxsZQPLzW5as4Y7HZ9rygiIiLnT+8cREREREaBhFgP//LB6fzknoWMSYvlN0+8xefvX0nJ7opIlyYiIiLDiIIkERERkVFkbEYc//OZS/n6Ry+hszPMt363nm/+7nWOHK+PdGkiIiIyDChIEhERERllDMNgzuQ0fvnlRfzT+yey+1A1n79/FQ88vo36JvVPEhERkXemHkkiIiIio5TTYefGheNYPCOLP7+wm+fWHWTlpjI+dIXJ++bm4nToO0cRERE5k94diIiIiIxycV43n/3AVH72xUXkZ8Xz+6e387kfruCNHccJh8ORLk9ERESGEAVJIiIiIgJATlos/333HO79+CwMw+Dbf9jANx5Yx8GjdZEuTURERIYITW0TERERkR6GYTCzMJXpZjLL1x3iLy/s5t9+tIorZuVwx1UTiPe5I12iiIiIRJCCJBERERF5G4fdxvvnjWVhcSbLXrR47rWDrNlczgcvL+C6+WNxOuyRLlFEREQiQFPbREREROQd+aJd3H3DZH7xpUVMygvwx3/s5LM/WMFr246qf5KIiMgopCBJRERERN5TZrKPez8+m/++ew5up537HnyTr/3qNfaV1Ua6NBERERlECpJERERE5LxNN5P56RcW8tkPTKG0ooEv/GQ1P/3rZqrrWyNdmoiIiAwC9UgSERERkQtit9u4+tJc5k3P5JGX9/DM2v28urWcm5fkc8OCcbid6p8kIiIyUmlEkoiIiIhcFG+Uk396/0R++eXFTDeTeXj5bj7z/VdYs7lM/ZNERERGKAVJIiIiItIn6Ylevv7RS/juZ+bii3Lxw4dL+PLP12Idro50aSIiItLPFCSJiIiISL+YPC6RH92zgM/fOo3j1c38+8/Wcv+fS6isaYl0aSIiItJP1CNJRERERPqN3WZw5awcLpuazt9X7OXJ1ftZ99Yxblo4jg8sGofHrbefIiIiw5lGJImIiIhIv4v2OLnzmkJ+/ZUlzJqYyl9fsvjUfa+wYuMRQiH1TxIRERmuFCSJiIiIyIBJ8Ufz5Y/M4Pufu4xAnIcfL9vMF3+2hp0HqyJdmoiIiFwEBUkiIiIiMuAKcwP8v3+Zzz23FVFT38pXfvEq33/oTSqqmyNdmoiIiFwATVIXERERkUFhsxksnpHFpZPTeHzVPh5buY8NO45zw4I8bl6cT7THGekSRURE5D1oRJKIiIiIDCqP28HtS8fzwFeXMHdqOo++spdP3fcKL244TFD9k0RERIY0jUgSERERkYhIjI/ii7cX8/7LxvK7J9/i549s4bEVe5lZmEqRmczEvABupz3SZYqIiEgvCpJEREREJKIKshP4wefn8eqWo7y44TDPrTvIU2v243LYmDg2QNH4ZKabyWSn+DAMI9LlioiIjGoKkkREREQk4gzDYN70DOZNz6C1vZPt+6vYbJ1gk3WC3z+9A9hBYpyH6WYyReOTmZafhDfaFemyRURERh0FSSIiIiIypHhcDmZMSGHGhBQATlQ3s3lPV6i0bttRXnrjCDYD8rMTKDKTKTKTyc+Kx25X+08REZGBpiBJRERERIa0ZH80S2ePYensMQSDIawjNWyyTrDZOsFfX7JY9qJFTJSTaflJXSOWzGSSEqIiXbaIiMiIpCBJRERERIYNu91GYW6AwtwAd1w1gfqmdrbuqWRT9zS417YdBSArxdsTKk3KS1TTbhERkX7S5yDJNM0C4EEgAFQBd1qWtfesfT4G3AOEADvwO8uyftbXY4uIiIjI6BYb4+rprRQOhzlyvKEnVFq+7hBPrzmA81TT7u7+SmraLSIicvH6Y0TSb4BfWpb1sGmadwAPAIvP2ucx4I+WZYVN0/QB203TXGVZ1rZ+OL6IiIiICIZhkJMWS05aLDcuHEdreyc7DlT1TIP7wzM7+MMzOwjEeSgyu1aCm1aQhE9Nu0VERM5bn4Ik0zSTgSLgiu5Ny4BfmKaZZFlW5an9LMuq73W3aMAJhPtybBERERGRd+NxOSgen0Lx+O6m3TXNbLYq2WRVnNm0OyuhZxpcQbaadouIiLwbIxy++DzHNM1i4CHLsib22rYTuMOyrE1n7Xsd8D0gD/iaZVk/Pp9jlJSUjAEOXnSRIiIiIiJnCYbClFe1s/9YK/uOtXG0up1wGDxOg9xUD+PS3OSleYiPUUtREREZuYqLiy94rveg/Wa0LOtp4GnTNLOBJ03TfM6yLOt87z9p0iTcbvfAFThISkpKKC4ujnQZMoTonJBz0XkhZ9M5Ieei86L/NDS3s2VPJZu7+yvtKq0FzmzaPXFsAI9raAdLOifkXHReyNl0Tkhf9PU3YSmQYZqm3bKsoGmadiC9e/s5WZZ1xDTNN4BrgfMOkkREREREBoov2sW8aRnMm9bdtLuioStU2v0OTbvNZLJT1bRbRERGnz4FSZZlnTBNcwtwG/Bw9+Xm3v2RAEzTHG9Z1u7u64nAIuDxvhxbRERERGQgGIZBTmosOamx3LDg3Zt2Ty/oCpWmFiQRG6Om3SIiMvL1x9jcTwMPmqZ5L1AD3AlgmuZzwL2WZW0EPmWa5pVAB2AAv7As68V+OLaIiIiIyIA6u2l3ZU1LT6j0+vZjvPzmEQwD8rPie6bBmdkJatotIiIjUp+DpO6RRrPOsf2aXtfv6etxRERERESGgqSEKJbOzmHp7ByCwRB7S2vZ1N1b6dGX9/C3l/YQ43EwJT+JIjOZ6WYyyQlRmgYnIiIjwtDuFigiIiIiMoTZ7TbGj/Ezfoyf25eOp6G5na17K9m0u3vE0lvHAPC47CT7o0np+YkhxR9NaqDrz9EeZ4SfiYiIyPlRkCQiIiIi0k980S4um5rBZVO7mnaXVjTw1r6THK1qoqKqmYrqZrbvr6KlrfOs+znPCJhSugOm5ISuS5fTHqFnJCIiciYFSSIiIiIiA8AwDLJTY8lOjT1jezgcpqG5g4rqJiqqm3sCporqZg4dq2PDjuN0BkNn3Mcf6z4dMp36CXQFT4lxHvVjEhGRQaMgSURERERkEBmGQWyMi9gYF/lZCW+7PRQKU9PQyvFeAdOp0GnHwSrWbC4jFD69v91mkBgfRYo/Gnu4mX01Fin+GFK7A6d4n1v9mUREpN8oSBIRERERGUJsNoNAXBSBuCgmjg287fbOYIjKmpbTI5p6jWoqO9HK5v27z9jf5bST4o96+4gmfzQpgRi8UerPJCIi509BkoiIiIjIMOKw20hLjCEtMeZtt5WUlDBx0lQqaprPmjbXFTrtPFhFc+uZ/ZliopxnhEup3QFTij+aZH80bvVnEhGRXhQkiYiIiIiMIB63g5zUWHLO6s0EXf2ZGls6zgiYjnePajpyvIGNuyro6DyzP1OCz326EXh3E/CUhGjyMuPwRrsG62mJiMgQoSBJRERERGSUMAwDX7QLX7SLcVnxb7v9VH+m072ZTo9q2nWoirVbTvdnctgNZkxIYWFxFjMnpGhlORGRUUJBkoiIiIiIAGf2ZyrMPXd/ppO1LRyvaqJk9wlWbypj/fbjxHgczJ2awcLiTCbmBrDZ1NxbRGSkUpAkIiIiIiLnxWG3kRqIITUQw7SCZD76vkK27jvJqpJS1mwu48UNh0lKiGJhUSYLizLJPsf0OhERGd4UJImIiIiIyEWx220UmckUmcm0tnWyfsdxVpWU8tjKfTz6yl7GZsSxqDiT+dMz8cd6Il2uiIj0AwVJIiIiIiLSZx63o2ckUk1DK2s3l7NyUxm/f3oH//fMDqbmJ7GwOIs5k9OIcutjiIjIcKVXcBERERER6VcJPg/Xzc/juvl5lFY0sHpTGSs3lfHjZZv41WN2Zk9MY2FxJtMLkrDbbZEuV0RELoCCJBERERERGTBZKT7uuHoCty8dz65D1azaVMarW8pZvbmMeK+b+dO7mnSPy4zHMNSkW0RkqFOQJCIiIiIiA85mM5g4NsDEsQHuvmESG3edYNWmUp5bd4in1x4gI8nLouJMFhRlkhqIiXS5IiLyDhQkiYiIiIjIoHI67MyZnMacyWk0Nrfz2rajrCwp4+Hnd/Pw87spzPWzsDiLy6am44t2RbpcERHpRUGSiIiIiIhEjDfaxdLZY1g6ewwnqptZvbmMlSWl/OrvW/ntE9uYMSGFhcVZzJyQgstpj3S5IiKjnoIkEREREREZEpL90dyypICbF+ezv7yOVSVlrN5cxvrtx4mJcnLZ1HQWFmVSmBvAZlM/JRGRSFCQJCIiIiIiQ4phGIzLjGdcZjwfu7aQrftOsqqklNWbynhh/WGSEqJYWJTJwqJMslNjI12uiMiooiBJRERERESGLLvdRpGZTJGZTGtbJ+u3H2PlpjIeW7GXR1/ZS15mHAuLspg/PQN/rCfS5YqIjHgKkkREREREZFjwuB0sLM5iYXEWNfWtrN1SzspNZfz+6e383zPbmZqfxMLiLOZMTiPKrY86IiIDQa+uIiIiIiIy7CTEerhufh7Xzc+jtKKBVZvKWFVSyo+XbeJXj9mZMymNhcWZTMtPwm63RbpcEZERQ0GSiIiIiIgMa1kpPj5y9QQ+vHQ8uw5Vs2pTGa9uKWfVpjLivW7mT89gUXEWeZlxGIaadIuI9IWCJBERERERGRFsNoOJYwNMHBvg7hsmsXFXBStLynhu3SGeXnuAzGQvC4szWViURYo/OtLliogMSwqSRERERERkxHE67MyZnM6cyek0Nrfz2rajrCwp4+Hlu3l4+W4Kc/0sKs7isqnpeKNdkS5XRGTYUJAkIiIiIiIjmjfaxdLZY1g6ewwnqptZtamMlSWl/PLvW3ngibeYWZjCwqJMZham4HTYI12uiMiQpiBJRERERERGjWR/NLdeXsAtS/LZX17HqpIyVm8u4/W3jhHltlOQnYCZ48fMTqAgO4F4nzvSJYuIDCkKkkREREREZNQxDINxmfGMy4znY9cWsnXfSdZvP4Z1uIa/r9hLKBQGIMUfjZmTgJmdgJmTwNiMOI1aEpFRTUGSiIiIiIiMana7jSIzmSIzGYDW9k72l9VhHa7BOlLNjgNVrNlcDoDDbiMvI46CXuFSij9aq8GJyKihIElERERERKQXj8vRs/rbKSdrW7CO1LDncA3WkRpeWH+YZ9YeACDO6+qeEtcVLuVnJRAT5YxU+SIiA0pBkoiIiIiIyHtIjI8iMT6KuVPSAQgGQxw6Vs+eIzXsPlzDniM1vLmzAgDDgKwUX8+IpYLsBLJTY7HbNGpJRIY/BUkiIiIiIiIXyG63kZcZT15mPFdfmgtAY3M7e0prsbqDpfXbj/HSG0cAiHLbGZd5Olgan5NAQqwnkk9BROSiKEgSERERERHpB95o1xm9lsLhMMeqmrqCpcM17D5SwxOr9hHsbuSdlBDVM2rJzPaTlxmHy6lG3iIytClIEhERERERGQCGYZCe6CU90cui4iwA2jqCHCirwzpS3d3Mu4ZXtx4FwGE3GJMex/jshK5m3jkJpAVi1MhbRIYUBUkiIiIiIiKDxO20MyHXz4Rcf8+26vrWnulw1uEaXn7zCM++dhAAX7SrZzrcqUuvGnmLSAQpSBIREREREYkgf6yHOZPTmDM5DYBgKMyR4/U9wZJ1pIaS3RWEu2bEkZns7emzZOb4yUn1YbfbIvgMRGQ0UZAkIiIiIiIyhNhtBrnpceSmx7F09hgAmlo62Fday+4j1ew5XEvJ7gpWbCwFwO2yMy4z/nS/pZwEAnFREXwGIjKS9TlIMk2zAHgQCABVwJ2WZe09a59vAB8COrt/vm5Z1gt9PbaIiIiIiMhoEBPlZGpBElMLkoCuRt4V1c09I5b2HK7h6bUH6FwVAiAxztPVZyk7gaa6FqL8VcR73cR53UR7HOq7JCIXrT9GJP0G+KVlWQ+bpnkH8ACw+Kx93gDutyyr2TTNqcBq0zTTLMtq6Yfji4iIiIiIjCqGYZAaiCE1EMOCokwAOjqDHCiv6wmXrMM1rNt2DIBH1r7ac1+nw0ac102819V16XP3hExn/rnrdoemzYlIL30KkkzTTAaKgCu6Ny0DfmGaZpJlWZWn9jtr9NE2wKBrBFNZX44vIiIiIiIiXZwOO2aOHzPndCPvusY21q7fRHpWHnWNbdQ1tlHb0EZtYxt1je3UNrRy+HgDtQ1tdAZD53xcX7TzdMjUHTSdCqJOX9doJ5HRwgif6th2EUzTLAYesixrYq9tO4E7LMva9A73uQv4V8uyis7nGCUlJWOAgxddpIiIiIiIiLyrcDhMW2eYppYgTW0hmlpDNLUGaey+7NoW7N4eoqX93KGT3QYxHjsxHhsxbjveKBsxbtvpbb1ui/HYsNsUOolEUnFx8QX/JxzUZtumaS4Avs3pEUznbdKkSbjd7v4vapCVlJRQXFwc6TJkCNE5Ieei80LOpnNCzkXnhZxN54Scy0CcF53BUPcIp/bu0U1dI53qGs8c7VRW3U5tQ/P5jXbqNcVOo50Gll4rpC/6GiSVAhmmadotywqapmkH0ru3n8E0zTnAw8D1lmVZfTyuiIiIiIiIRIjDbiMQF3Veq8OFw2GaWzt7hUynpte192yrbWjj8LF6tjW20dDccc7H6d3bKd7nwR/b/RPnwe9zd13Geoj3urGrr5PIgOlTkGRZ1gnTNLcAt9EVEt0GbO7dHwnANM2ZwN+Am99pypuIiIiIiIiMPIZhEBPlJCbKSXqS9z33P3u006mRTr1Dp+r6VvaX1VLb2MbZ3VpsBsR5TwdLZ/zEefD7ui7jvG5NrRO5CP0xte3TwIOmad4L1AB3Apim+Rxwr2VZG4FfAVHAA6ZpnrrfRyzLeqsfji8iIiIiIiIjxIWMdgoGQ9Q2dgVL1XWtXZf13X+ub6WqtpW9pbXUvUPgFO9zd4dMUW8b2ZQQ6yEQ6yFWgZPIGfocJFmWtRuYdY7t1/S6PrOvxxERERERERHpzd47dMp65/06g6GekUw9P3Wnr1fWNmMdqaausf1t97XZDBJ87p5g6VTI5I/1EOgJndzExbixKXCSUWBQm22LiIiIiIiIDDaH3UZifBSJ8e8+yqmj81Tg1HLGyKbqulaqG1r5/+zdeZhcVZ3/8Xd19b6nl3T2hSRcAgkBOhAIiBJAEYkiQUQFHQQR9Tc6CKMIDAMKKjPMuODC4oKOLMoim6CCAipBIA1CAuFK9r2TdCe9r9X1+6MqnU5ISCV0Ut3J+/U89+mqe8+99b3h0On+5Jxza+tbWbisnsaWtwZO0WTgVFaSy5Dk9LnyHYRORfnZBk4a1AySJEmSJEkisaB35ZA8KofsOnDa1LQ1ZNrU2E5dn9Cptr6V15fW09S6k8CpeEvIlNO7dtOQolwKcrPIyY6Sl5NJbvJrTu/XTKfYaUAwSJIkSZIkaTdkZWYwdEg+Q4fkv227ru4Ym5Ijm+q2hE5N7dQlp9Wt2djCa0vqdvqkuu1lZ2aQm5NJbk4medlRcrMzyc1Jfk2+7g2fspPtcqLkZGcm3yfa1jV1s6mxndycTHKyoo6Q0m4xSJIkSZIkaS/IyowytCyfoWVvHzh1dsXY3NRBW0c3bZ3dtHd0094Zo72jm7bk163vu+nojNHWsbVdY0sr7R2x5LFu2jpiuy7ukXW9L7cET31HQ/WGVDmZ2x3bGkhtH1L1DbFysqNEIgZU+yODJEmSJEmS0ig7K7rLsGl39PTE6eyKJcKnzu5k6JR43d7ZzcJwEcNHjKatY+vxjs7YW0Kszc0diXN6Q6oUAqqkSARysqIUFWRTXpybWBS9NJfy4jzKS3KTW+JpeTlZ0X67d+19BkmSJEmSJO1HMjIivVPgIOctx7M711JdPX63r9vTE6eja0cjo7YdDbUljGrr6KaxpYO6hnaWrW2g5o1a2ncQRhXlZ/WGSr2hU5+wqbwkl+KCbEc4DRAGSZIkSZIkaZcyMiLk5WSSl5PJkD04Px6P09reTV1DG3UNibWi6hoTr+sb2qlraGPp6gY2N3cQj297bmY0o0/QlEtFaTJsKk4GUMktK9PRTXubQZIkSZIkSdrrIpEIBXlZFORlMWZY8U7bdcd62NTY0Rsy1TW0JYOmxLZ4dQMvvF5LZ9dbRzcVF2RvM5KpvDiXsu1GOBXlZzm66R0wSJIkSZIkSQNGZjSDyiF5VA7J22mbeDxOS1vX1pFNDW3UNfZ53dDOopWb2dzc8ZZzszOTo5tK8hIjnEr7BE3JNZyGFOeSlZmxN29z0DJIkiRJkiRJg0okEqEwP5vC/GzGDt/56Kau7h42NW47ja5v2PTPlZuoW7CWru6et5xbWpjTZ9rc1hFOE0eXMn5Eyd68vQHNIEmSJEmSJO2XsjIzGFqW/7ZPxYvH4zS1dm2zdlN9nxFOGze3ES7fRGNLJ5AY0XTvt84gI+PAnB5nkCRJkiRJkg5YkUiE4oJsiguy33akUVd3jLqGdrIyMw7YEAkMkiRJkiRJknYpKzPKsPKCdJeRdq4cJUmSJEmSpJQYJEmSJEmSJCklBkmSJEmSJElKiUGSJEmSJEmSUmKQJEmSJEmSpJQYJEmSJEmSJCklBkmSJEmSJElKiUGSJEmSJEmSUmKQJEmSJEmSpJQYJEmSJEmSJCklBkmSJEmSJElKiUGSJEmSJEmSUpKZ7gJSEAXo7OxMdx39pqOjI90laICxT2hH7Bfann1CO2K/0PbsE9oR+4W2Z58QwIIFC8YBq6qrq7tTPScSj8f3XkX9oKam5gTgr+muQ5IkSZIkaT80vrq6elmqjQfDiKQXgXcBa4FYmmuRJEmSJEnan6zancYDfkSSJEmSJEmSBgYX25YkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZKuK+CQAAAgAElEQVQkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSkxSJIkSZIkSVJKDJIkSZIkSZKUEoMkSZIkSZIkpcQgSZIkSZIkSSnJTHcBkiRJ+1IQBE8D04BhYRh2pLkcSZKkQcURSZIk6YARBME44F1AHPjgPvxc//FOkiTtF/yhRpIkHUg+CfwdeB74FHAvQBAEecD1wNlAKTAfODUMw7YgCE4A/gs4FGgC/iMMwzuSI5t+FYbhT5LX+BfgojAMT0i+jwP/D/g3Ej9zjQ+C4HvAWUAJ8Cbwb2EY/jXZPgp8FbgQGAr8EzgTuAJoD8Pwsi03EQTBI8CfwjD87l74M5IkSdopRyRJkqQDySeBO5Pb+4IgqEruvwmoBmYCZcBXgJ4gCMYAjwM3A5XAEcA/duPzzgRmkAihAF5MXqMMuAu4NwiC3OSxLwMfA04HioFPA63AL4CPBUGQARAEQQVwMnD37ty4JElSf3BEkiRJOiAkRxaNBX4ThuHGIAgWAx9PjhL6NHBsGIark83nJs/5BPBkGIZbQpu65Jaqb4VhWL/lTRiGv+pz7H+CILgaCIBXgIuAr4RhGCaPv7LlM4MgaCARHj0BnAs8HYZh7W7UIUmS1C8MkiRJ0oHiU8AfwzDcmHx/V3LfnUAusHgH54zeyf5Urez7JgiCy0gERiNIrNNUDFSk8Fm/AM4jESSdB3zvHdQkSZK0xwySJEnSfi+5BtI5QDQIgnXJ3Tkk1kMaDrQDE9g6CmiLlcAxO7lsC5Df5/2wHbSJ96nhXSTWQDoZeC0Mw54gCDYBkT6fNQFYsIPr/ApYEATBNGAy8OBOapIkSdqrDJIkSdKB4EwgBkwFOvvs/w2JdZN+BvxvEATnA7UkwqOXSIxWujIIgnOAB0gskj06DMN/kFgr6awgCH5CYoTRhclzd6YI6AY2AJlBEFxBYkTSFj8BvhEEwevAomStq8MwrAvDcFUQBC8C/wfcH4Zh257/UUiSJO05F9uWJEkHgk8BPw/DcEUYhuu2bMAPgE+QeDLafBKLYdcDNwIZYRiuILH49WXJ/f8ApiWv+R0SoVQtialnd+6ihj+QWLj7n8ByEqOg+k59+18SwdYfgUbgp0Ben+O/IBEu/d/u3rwkSVJ/icTj8V23kiRJUloFQXAiiSlu48Iw7El3PZIk6cDkiCRJkqQBLgiCLOBLwE8MkSRJUjoZJEmSJA1gQRBMBjaTWBT8u2kuR5IkHeCc2iZJkiRJkqSUpPTUtiAIDiaxwGM5UAd8MgzDN7drMwy4FRgPZAE3hGH4q+Sxa4HPA2uSzZ8Nw/ALqXx2TU1NJjAKWFVdXd2dyjmSJEmSJEnqf6lObbsF+GEYhgcDPyQRGG3vf4F5YRgeDpwIfDMIgtF9jv8yDMMjkltKIVLSKGDplClTuoD4YN9ee+21tNfgNrA2+4Tbjjb7hdv2m33CbUeb/cJt+80+4bajzX7htv1mn3Drs+22XQZJQRAMBY4C7k7uuhs4KgiCyu2aTgN+DxCG4QYSj8c9Z0+K2p+1t7enuwQNMPYJ7Yj9QtuzT2hH7Bfann1CO2K/0PbsE3ondrlGUhAE1SRGEx3WZ9/rwHlhGL7UZ98vgQ3A5cA44EXgrjAMv5ic2nYRUA+sA/4zDMPnUimwpqZmHLA09VuSJEmSJEnSrlRXV0d295yU1khK0WXAd0iMRFoB/BnoSh67hcSaSV1BEJwKPBQEweQwDOtSvfiUKVPIycnpx3LTo6amhurq6nSXoQHEPqEdsV9oe/YJ7Yj9QtuzT2hH7Bfann1C70QqQdJKYGQQBNEwDGNBEESBEcn9vZLT2c7b8j4IgseAhclj6/q0eyIIgpXAFOCZd34LkiRJkiRJ2hd2uUZSGIbrSYwy+lhy18eAl5PBUa8gCMqDIMhMvp4FTAXuSr4f2afdESSmvoX9UL8kSZIkSZL2kVSntl0C/CIIgmuATcAnoXfU0TVhGM4DjgG+HwRBDNgIzA7DsDV5/jeTay3FgE7g/L6jlPZUV1cXq1atGlQLhWVmZrJw4cJ0l6Ht5ObmMmrUKLKystJdiiRJkiRJA1ZKQVIYhm8AM3aw//Q+rx8HJu3k/E/taYFvZ9WqVRQVFTFu3Dgikd1eHyotWlpaKCgoSHcZ6iMej1NXV8eqVasYP358usuRJEmSJGnA2uXUtoGsvb2d8vLyQRMiaWCKRCKUl5cPqpFtkiRJkiSlw6AOkgBDJPUL+5EkSZIkSbs26IMkSZIkSZIk7RupLratXfjIRz5CZ2cnXV1dLFu2jEmTEstFHXrooXzrW9/arWtdeOGFXHfddYwaNWpvlCpJkiRJkrRHDJL6yb333gskFgCfM2cODz300E7bxmIxotHoTo//9Kc/7ff69oZ4PE5PT8/b3oskSZIkSdp/7DdB0p/nreCJF1bslWufeswYZk0fs8fnz507l5tuuolp06bx6quv8sUvfpFNmzZx55130tXVRSQS4YorrmDGjMSD8U488UR+/vOfM2HCBD72sY9x5JFH8vLLL1NbW8vs2bO59NJL3/IZtbW1XH755TQ3N9PR0cEpp5zCl7/8ZQA6Ozv5n//5H+bOnUskEmHcuHF8//vfJx6Pc8stt/DYY48RiUTIz8/nnnvu4d5772Xu3Ll85zvfAdjm/b333ssTTzxBUVERS5Ys4cYbb+SZZ57h97//Pd3d3eTm5nLddddxyCGHADBv3jxuuukmWltbAfja177Gxo0befzxx/nRj34EQEdHB7NmzeKBBx6gqqpqj/+cJUmSJEnS3rXfBEkD3cKFC7n22mu5/PLLKSgoYNOmTZx55pkALFq0iIsuuoinn356h+fW1tZy55130tzczCmnnMLZZ5/N6NGjt2lTUlLCrbfeSn5+Pp2dnVxwwQXMnTuXmTNn8qMf/Yi1a9fywAMPkJWVRX19PQD33Xcff/nLX7j77rspLCzs3b8r8+bN4+GHH+6deldRUcFnPvMZAP7yl79w3XXXcffdd1NfX88Xv/hFfvzjHzNt2jRisRjNzc3k5+dz0003sWbNGkaMGMGjjz5KdXW1IZIkSZIkSQPcfhMkzZr+zkYN7W0TJkzg8MMPp6WlBYDly5dz2WWXsX79eqLRKLW1tdTX11NWVvaWc9///veTkZFBcXEx48ePZ+XKlW8JkmKxGDfeeCMvv/wyABs2bGDhwoXMnDmTp59+mmuuuYasrCyA3s94+umn+fjHP05hYeE2+3fl6KOP3mb9pldffZXbbruNxsZGIpEIq1atAuCll17ikEMOYdq0aQBEo1FKSkqAxJpSv/71r7n00ku58847+epXv5raH6QkSZIkSftIR1eM9fWtrKtroba+lXV1reRkRzn//ZPTXVra7DdB0kCXn5+/zftLL72Ua665hpNOOolYLMa0adPo7Ozc4bnZ2dm9rzMyMuju7n5Lm5/+9Ke0tLRw//33k52dzde+9jU6OjqAxFpGO7Kz/dFolJ6ent73W66zo3tpb2/n0ksv5a677mLy5MmsWbOGU045ZYfX7evcc8/l7LPP5l3vehcdHR290/okSZIkSdpXYj1x6hvaqa1vYV1dayIsqm+htq6V2voW6hu3/X04OyvK5HFD6OmJk5ERSVPV6WWQlCZNTU29o3p+/etf09XV9Y6u19jYyNChQ8nOzmbt2rU89dRTfPKTnwTgpJNO4o477mDq1Km9U9vKyso46aSTuOuuu5g1axYFBQW9+8eMGcMbb7zRG2z94Q9/oKKiYoef297eTiwWY9iwYQDcddddvceOOuoorrnmGl555ZXeqW0tLS0UFxdTUVHB0UcfzWWXXcbFF1/8ju5dkiRJkqSdaW7tZF19a2841BsY1bWwflMb3bGtAykyIlBemsewsgKOCqoYVp5PVVk+w8oLqCrLp7Qoh0jkwAyQtjBISpMrr7ySz372swwbNowZM2ZQVFT0jq73qU99ii996UuceeaZDB8+nGOPPbb32Oc+9zn++7//mw996ENkZWUxfvx4vvvd73L22Wezfv16zjnnHDIzM8nPz+fuu+9m+vTpTJ8+ndmzZzNq1CgmTZrEpk2bdvi5paWlfOELX2DOnDmMGDGCE044ofdYWVkZ3//+97nhhhtoa2sjIyODK664guOOOw5ITG/705/+xIc+9KF3dO+SJEmSpANXV3eM9Zvatpl+1jcwamnbduBGUX4WVeUFjB9ZwnFTh1NVXsCwsnyqyvOpLM0nKzMjTXcyOER2Nr1poKipqRkHLJ0yZQo5OTnbHFu4cCGTJw+ueYktLS0UFBSku4wB4eabb6ahoYGrr7463aUA6etPNTU1VFdX7/PP1cBmv9D27BPaEfuFtmef0I7YL7S9wdYnenribGpq7w2GautaEiOMkq/rGtvpG21kZWZQVbbtSKLEyKLE64K8rPTdzMCz28OrHJGkfS4WizF79myysrL42c9+lu5yJEmSJElp1tre1TvdbOuoouT0s/pWOru3Tj+LRKC8OJeq8gIOn1SZHE20NTAaUpR7wK5ftC8YJGmfi0ajPPbYY+kuQ5IkSZLSqr2zm2VrG1myuoGV65qIxeNkRjOIZkQSWzSDzIwIGdEImRkZRKMRon2/ZkTI3GZf4pzE/gwydnJ8U3M3Gza1kRmNJNtkbHPu3ghhumM9bNhm+lnya3LtoqbWbR8+VZCbSVV5AaOrijj60GHbrFU0dEgeWZnRfq9RqTFIkiRJkiRpL2tq7WTJ6gYWr2pgyeoGlqzZzOr1zfQkp2Tl5WSSGc2gp6eH7p44sVicWE8Pe201mofX7fRQRiTxxPDM7cKprSFVZIfHt4RXfV83t3ZRW9/Cxs1tvfcKkBmNMHRIIhiaNKp0m6lnw8rzKczP3ml9Si+DJEmSJEmS+kk8HqeuoT0RGq1uYMnqzSxZ3cD6TW29bSpKcjloZCnHHz6Sg0aWMGFkCZVD8nb4NLCenjixnjixWA+xnjjdsR56euJ0J4OmvsdisTjdPT3EYvFkm7cej/X0sGjJUkaPHps4f8t1kuf2xOK9nxPb7rP7tunuPbfP8Z44nV0xunvivW0KcrM49KDyREBUVtAbGJWV5BJ1+tmgZJAkSZIkSdIe6OmJs7auhSWrGlicDIyWrGmgoTkxTSsSgREVBQRjy3j/zJLe0KikMGcXV94qIznVrD+fJFbEeqqrx/bb9XRgMUiSJEmSJGkXurp7WFnbxJLVm1mcnKK2bG0DbR0xIDFVa0xVMcccOoyDRiZCo3HDi8nP9Qlh2r8YJEmSJEmS1EdbRzdL1yTXMkpOUVuxronuWOLJYbnZUcaPKOHk6WN6Q6Mxw4r7ddSQNFAZJPWTCy+8kFNPPZVzzz23d188Hufkk0/mxhtv5Oijj97pueeffz6f/vSnOemkk/je977HpEmTOP3009/S7uabb6a1tZWvfvWrb1vLAw88wJFHHsn48eMB+NOf/sS8efN2eZ4kSZIkHWgamjt6A6MtodGajc29i1wXF2Rz0MgSPnTiQb2h0fCKQtf30QHLIKmfzJkzhzvuuGObIOn5558nMzPzbUOk7X3pS196x7X89re/ZciQIb1B0sknn8zJJ5/8jq+bbt3d3WRm2mUlSZIk7b54PM6GzW1vCY02bt66CHblkDwOGlHCu48cyYRRpRw0soTyktwdLoItHaj2m9/Km159mqZX/rxXrl00bRZFh7/nbduccsopXHfddSxatIiJEycCiZFBZ511FgDPPfcc3/3ud2lrayMej3PJJZfwgQ984C3XueKKK5gyZQrnnXceTU1NXHXVVSxatIjhw4dTVlZGRUXFNtfr6OggFov1Xu/+++9nwYIFXH/99Xz3u9/lq1/9KuvWrePpp5/m+9//PgC33XYbDz/8MABTp07l6quvpqCggJtvvpmlS5fS1NTEypUrGTNmDN/73vfIy8t7S52XXXYZS5cupaurizFjxvDNb36TkpISAO677z5++ctfApCVlcWtt95KRUUFTz31FDfffDPd3d1kZGTw7W9/m8LCQubMmcPzzz8PwKpVq3rfb3l93nnnMXfuXD74wQ8ybty4Hd43QG1tLddffz3Lli0D4IwzzuDMM89kzpw5/OlPfyInJ7Gg3ZZzZs+enVoHkCRJkjSoxHrirNnQ3Ccw2syS1Y00tW5dBHvU0EIOG1/euwD2+JElFBf4yHlpV/abICndsrOzmT17Ng888ABf+cpXaG5u5sknn+Txxx8H4NBDD+Wuu+6ivb2dtrY2zjrrLE444YTe8GVHfvjDH1JQUMBjjz1GfX09Z511Fu9///u3uV40GmXjxo2915szZw4PPvhg71Q5SARaWzzzzDM8/PDD3HPPPRQUFPDVr36VH/3oR/z7v/87AAsWLOC+++6jqKiICy+8kEceeYRzzjnnLbVdddVVlJWVAfCd73yH22+/ncsvv5znn3+eW2+9lbvuuovKykpaWlrIzMxk6dKlXH311dx5552MGzeOzs5OOjs72bx589v+uW7evJkJEybwr//6rwA0NDTs8L5LSkq4/PLLefe7383NN98MQH19PWVlZRx99NE89thjfPjDH2b16tUsWLCgN1STJEmSNLh1dcdYvq6JxasaWJJ8ctrStY10dG5ZBDuDccOLOG7q8N7QaNzwYnJz/HVY2hP7zf85RYe/Z5ejhva2s88+m4suuogvf/nLPP7441RXV1NVVQUkQo0rr7ySpUuXkpWVRUNDA0uXLuWII47Y6fWef/55rr76agDKyso49dRTe49tud7y5cuJRqMpXQ8SI5lOP/10CgsLATjnnHP45je/2Xv8hBNOoLi4GIDDDz+cFStW7PA6Dz30EI888ghdXV20trYybtw4AJ5++mk+9KEPUVlZCUBBQQEAc+fO5cQTT+xtl52dTXZ29i6DpJycnN7w7O3ue9KkSbz88sv8/Oc/7227Jeg6//zz+da3vsWHP/xh7r77bubMmUN2tv/SIEmSJA0msZ44Gze3sXZjMytqm3pHG61Y10SsJ7GgUV5OJgeNLOG9M8Zy0IgSJowqYXRVEZlRF8GW+st+EyQNBIcccgiVlZX89a9/5f777+df/uVfeo9de+21zJo1ixtvvJHCwkLe97730dHR8bbXi29Z3W0HtlzvBz/4AZFIJKXrbbnm283v3TL9CyAaje7wmvPmzePuu+/mnnvuoaysjEceeYTf/OY3e3QvmZmZ2xzb/vPy8vK2qXdP7vuoo44iFotRU1PDgw8+yL333vu27SVJkiSlR1d3D+s3tbJ2Y0tiq2vpfV1b30J3bOvvDqWFORw0soTpk6t6F8EeVlZAhotgS3uVQVI/mzNnDjfffDNr1qxh1qxZvfubmpoYOXIkkUiEZ599luXLl+/yWscddxwPPPAA1dXVbNq0iSeffJLTTjttl9crKCigqalph9ecOXMmN910E+effz4FBQXcd999zJw5c7fusbGxkcLCQkpLS+ns7OT+++/vPXbSSSdx1VVXce6551JRUUFLSwtZWVmccMIJ/PjHP2bZsmXbTG2rqKigq6uL5cuXM3bsWB599NG3/eyd3XdBQQFHHnkkd9xxBxdddBGwdWobJEYlffnLX+aI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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"# # Create empty arays to keep the predictions and labels\n# df_preds = pd.DataFrame(columns=['label', 'pred', 'set'])\n# train_generator.reset()\n# valid_generator.reset()\n\n# # Add train predictions and labels\n# for i in range(STEP_SIZE_TRAIN + 1):\n#     im, lbl = next(train_generator)\n#     preds = model.predict(im, batch_size=train_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'train']\n\n# # Add validation predictions and labels\n# for i in range(STEP_SIZE_VALID + 1):\n#     im, lbl = next(valid_generator)\n#     preds = model.predict(im, batch_size=valid_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'validation']\n\n# df_preds['label'] = df_preds['label'].astype('int')\n\nlastFullTrainPred = np.empty((0, n_classes))\nlastFullTrainLabels = np.empty((0, n_classes))\nlastFullValPred = np.empty((0, n_classes))\nlastFullValLabels = np.empty((0, n_classes))\n\n# Add train predictions and labels\nfor i in range(STEP_SIZE_TRAIN+1):\n    im, lbl = next(train_generator)\n    scores = model.predict(im, batch_size=train_generator.batch_size)\n    lastFullTrainPred = np.append(lastFullTrainPred, scores, axis=0)\n    lastFullTrainLabels = np.append(lastFullTrainLabels, lbl, axis=0)\n\n# Add validation predictions and labels\nfor i in range(STEP_SIZE_VALID+1):\n    im, lbl = next(valid_generator)\n    scores = model.predict(im, batch_size=valid_generator.batch_size)\n    lastFullValPred = np.append(lastFullValPred, scores, axis=0)\n    lastFullValLabels = np.append(lastFullValLabels, lbl, axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:05:41.72945Z","iopub.execute_input":"2024-06-04T01:05:41.729835Z","iopub.status.idle":"2024-06-04T01:07:05.410083Z","shell.execute_reply.started":"2024-06-04T01:05:41.729776Z","shell.execute_reply":"2024-06-04T01:07:05.409239Z"},"trusted":true},"execution_count":14,"outputs":[]},{"cell_type":"code","source":"# def classify(x):\n#     if x < 0.5:\n#         return 0\n#     elif x < 1.5:\n#         return 1\n#     elif x < 2.5:\n#         return 2\n#     elif x < 3.5:\n#         return 3\n#     return 4\n\n# # Classify predictions\n# df_preds['predictions'] = df_preds['pred'].apply(lambda x: classify(x))\n\n# train_preds = df_preds[df_preds['set'] == 'train']\n# validation_preds = df_preds[df_preds['set'] == 'validation']\n\ntrain_preds = [np.argmax(pred) for pred in lastFullTrainPred]\ntrain_labels = [np.argmax(label) for label in lastFullTrainLabels]\nvalidation_preds = [np.argmax(pred) for pred in lastFullValPred]\nvalidation_labels = [np.argmax(label) for label in lastFullValLabels]","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:07:45.60911Z","iopub.execute_input":"2024-06-04T01:07:45.609432Z","iopub.status.idle":"2024-06-04T01:07:45.665315Z","shell.execute_reply.started":"2024-06-04T01:07:45.609387Z","shell.execute_reply":"2024-06-04T01:07:45.664506Z"},"trusted":true},"execution_count":15,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(1, 2, sharex='col', figsize=(24, 7))\nlabels = ['0 - No DR', '1 - Mild', '2 - Moderate', '3 - Severe', '4 - Proliferative DR']\ntrain_cnf_matrix = confusion_matrix(train_labels, train_preds)\nvalidation_cnf_matrix = confusion_matrix(validation_labels, validation_preds)\n\ntrain_cnf_matrix_norm = train_cnf_matrix.astype('float') / train_cnf_matrix.sum(axis=1)[:, np.newaxis]\nvalidation_cnf_matrix_norm = validation_cnf_matrix.astype('float') / validation_cnf_matrix.sum(axis=1)[:, np.newaxis]\n\ntrain_df_cm = pd.DataFrame(train_cnf_matrix_norm, index=labels, columns=labels)\nvalidation_df_cm = pd.DataFrame(validation_cnf_matrix_norm, index=labels, columns=labels)\n\nsns.heatmap(train_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax1).set_title('Train')\nsns.heatmap(validation_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax2).set_title('Validation')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:07:49.219652Z","iopub.execute_input":"2024-06-04T01:07:49.219964Z","iopub.status.idle":"2024-06-04T01:07:50.117121Z","shell.execute_reply.started":"2024-06-04T01:07:49.219908Z","shell.execute_reply":"2024-06-04T01:07:50.115706Z"},"trusted":true},"execution_count":16,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1728x504 with 4 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"print(\"Train Cohen Kappa score: %.3f\"% cohen_kappa_score(train_preds, train_labels, weights='quadratic'))\n\nprint(\"Validation   Cohen Kappa score: %.3f\" % cohen_kappa_score(validation_preds, validation_labels, weights='quadratic'))\n\nprint(\"Complete set Cohen Kappa score: %.3f\" % cohen_kappa_score(np.append(train_preds, validation_preds), np.append(train_labels, validation_labels), weights='quadratic'))","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:07:59.518659Z","iopub.execute_input":"2024-06-04T01:07:59.518952Z","iopub.status.idle":"2024-06-04T01:07:59.546657Z","shell.execute_reply.started":"2024-06-04T01:07:59.518911Z","shell.execute_reply":"2024-06-04T01:07:59.545889Z"},"trusted":true},"execution_count":17,"outputs":[{"name":"stdout","text":"Train Cohen Kappa score: 0.982\nValidation   Cohen Kappa score: 0.897\nComplete set Cohen Kappa score: 0.965\n","output_type":"stream"}]},{"cell_type":"code","source":"# def apply_tta(model, generator, steps=10):\n#     step_size = generator.n//generator.batch_size\n#     preds_tta = []\n#     for i in range(steps):\n#         generator.reset()\n#         preds = model.predict_generator(generator, steps=step_size)\n#         preds_tta.append(preds)\n\n#     return np.mean(preds_tta, axis=0)\n\n# preds = apply_tta(model, test_generator)\n# predictions = [classify(x) for x in preds]\n\n# results = pd.DataFrame({'id_code':test['id_code'], 'diagnosis':predictions})\n# results['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])\n\ntest_generator.reset()\nstep_test = test_generator.n//test_generator.batch_size\npreds = model.predict_generator(test_generator, steps=step_test)\npredictions = [np.argmax(pred) for pred in preds]\n\nfilenames = test_generator.filenames\nresults = pd.DataFrame({'id_code':filenames, 'diagnosis':predictions})\nresults['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:08:06.934496Z","iopub.execute_input":"2024-06-04T01:08:06.934841Z","iopub.status.idle":"2024-06-04T01:09:02.020227Z","shell.execute_reply.started":"2024-06-04T01:08:06.934795Z","shell.execute_reply":"2024-06-04T01:09:02.019393Z"},"trusted":true},"execution_count":18,"outputs":[]},{"cell_type":"code","source":"# # Cleaning created directories\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)","metadata":{"execution":{"iopub.status.busy":"2024-04-30T14:44:44.866885Z","iopub.execute_input":"2024-04-30T14:44:44.867364Z","iopub.status.idle":"2024-04-30T14:44:45.151694Z","shell.execute_reply.started":"2024-04-30T14:44:44.867175Z","shell.execute_reply":"2024-04-30T14:44:45.151028Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = plt.subplots(sharex='col', figsize=(24, 8.7))\nsns.countplot(x=\"diagnosis\", data=results).set_title('Test')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:09:57.192426Z","iopub.execute_input":"2024-06-04T01:09:57.192748Z","iopub.status.idle":"2024-06-04T01:09:57.567447Z","shell.execute_reply.started":"2024-06-04T01:09:57.192703Z","shell.execute_reply":"2024-06-04T01:09:57.566607Z"},"trusted":true},"execution_count":20,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1728x626.4 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"results.to_csv('submission.csv', index=False)\ndisplay(results.head())","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:10:00.051139Z","iopub.execute_input":"2024-06-04T01:10:00.051533Z","iopub.status.idle":"2024-06-04T01:10:00.394247Z","shell.execute_reply.started":"2024-06-04T01:10:00.051459Z","shell.execute_reply":"2024-06-04T01:10:00.393322Z"},"trusted":true},"execution_count":21,"outputs":[{"output_type":"display_data","data":{"text/plain":"        id_code  diagnosis\n0  0005cfc8afb6          2\n1  003f0afdcd15          2\n2  006efc72b638          2\n3  00836aaacf06          2\n4  009245722fa4          3","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>id_code</th>\n      <th>diagnosis</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0005cfc8afb6</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>003f0afdcd15</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>006efc72b638</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>00836aaacf06</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>009245722fa4</td>\n      <td>3</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"model.save_weights('../working/effNetB5cls_bs32_img224_fold2.h5')","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:10:06.453422Z","iopub.execute_input":"2024-06-04T01:10:06.453739Z","iopub.status.idle":"2024-06-04T01:12:56.60772Z","shell.execute_reply.started":"2024-06-04T01:10:06.453691Z","shell.execute_reply":"2024-06-04T01:12:56.606879Z"},"trusted":true},"execution_count":22,"outputs":[]},{"cell_type":"markdown","source":"# FOLD 3\n","metadata":{}},{"cell_type":"code","source":"import os\nimport sys\nimport cv2\nimport shutil\nimport random\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom tensorflow import set_random_seed\nfrom sklearn.utils import class_weight\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import confusion_matrix, cohen_kappa_score\nfrom keras import backend as K\nfrom keras.models import Model\nfrom keras.utils import to_categorical\nfrom keras import optimizers, applications\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.layers import Dense, Dropout, GlobalAveragePooling2D, Input\nfrom keras.callbacks import EarlyStopping, ReduceLROnPlateau, Callback, LearningRateScheduler\n\ndef seed_everything(seed=0):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    set_random_seed(0)\n\nseed = 0\nseed_everything(seed)\n%matplotlib inline\nsns.set(style=\"whitegrid\")\nwarnings.filterwarnings(\"ignore\")\nsys.path.append(os.path.abspath('../input/efficientnet/efficientnet-master/efficientnet-master/'))\nfrom efficientnet import *","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:39:40.314994Z","iopub.execute_input":"2024-06-04T01:39:40.315322Z","iopub.status.idle":"2024-06-04T01:39:40.33601Z","shell.execute_reply.started":"2024-06-04T01:39:40.315263Z","shell.execute_reply":"2024-06-04T01:39:40.335337Z"},"trusted":true},"execution_count":49,"outputs":[]},{"cell_type":"code","source":"fold_set = pd.read_csv('/kaggle/input/5-fold/5-fold.csv')\nX_train = fold_set[fold_set['fold_2'] == 'train']\nX_val = fold_set[fold_set['fold_2'] == 'validation']\ntest = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\nprint('Number of train samples: ', X_train.shape[0])\nprint('Number of validation samples: ', X_val.shape[0])\nprint('Number of test samples: ', test.shape[0])\n\n# Preprocecss data\nX_train[\"id_code\"] = X_train[\"id_code\"].apply(lambda x: x + \".png\")\nX_val[\"id_code\"] = X_val[\"id_code\"].apply(lambda x: x + \".png\")\ntest[\"id_code\"] = test[\"id_code\"].apply(lambda x: x + \".png\")\nX_train[\"diagnosis\"] = X_train[\"diagnosis\"].astype(\"str\")\nX_val[\"diagnosis\"] = X_val[\"diagnosis\"].astype(\"str\")\ndisplay(X_train.head())","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:39:43.365971Z","iopub.execute_input":"2024-06-04T01:39:43.366269Z","iopub.status.idle":"2024-06-04T01:39:47.109416Z","shell.execute_reply.started":"2024-06-04T01:39:43.36622Z","shell.execute_reply":"2024-06-04T01:39:47.108572Z"},"trusted":true},"execution_count":50,"outputs":[{"name":"stdout","text":"Number of train samples:  2930\nNumber of validation samples:  732\nNumber of test samples:  1928\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code diagnosis  height   width      fold_0 fold_1 fold_2  \\\n0  000c1434d8d7.png         2  2136.0  3216.0       train  train  train   \n1  001639a390f0.png         4  2136.0  3216.0       train  train  train   \n2  0024cdab0c1e.png         1  1736.0  2416.0  validation  train  train   \n3  002c21358ce6.png         0  1050.0  1050.0       train  train  train   \n4  005b95c28852.png         0  1536.0  2048.0  validation  train  train   \n\n       fold_3      fold_4  \n0  validation       train  \n1       train  validation  \n2       train       train  \n3  validation       train  \n4       train       train  ","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>id_code</th>\n      <th>diagnosis</th>\n      <th>height</th>\n      <th>width</th>\n      <th>fold_0</th>\n      <th>fold_1</th>\n      <th>fold_2</th>\n      <th>fold_3</th>\n      <th>fold_4</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000c1434d8d7.png</td>\n      <td>2</td>\n      <td>2136.0</td>\n      <td>3216.0</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>validation</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>001639a390f0.png</td>\n      <td>4</td>\n      <td>2136.0</td>\n      <td>3216.0</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>validation</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0024cdab0c1e.png</td>\n      <td>1</td>\n      <td>1736.0</td>\n      <td>2416.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>002c21358ce6.png</td>\n      <td>0</td>\n      <td>1050.0</td>\n      <td>1050.0</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>validation</td>\n      <td>train</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>005b95c28852.png</td>\n      <td>0</td>\n      <td>1536.0</td>\n      <td>2048.0</td>\n      <td>validation</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n      <td>train</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"# Model parameters\nFACTOR = 4\nBATCH_SIZE = 8 * FACTOR\nEPOCHS = 20\nWARMUP_EPOCHS = 5\nLEARNING_RATE = 1e-4 * FACTOR\nWARMUP_LEARNING_RATE = 1e-3 * FACTOR\nHEIGHT = 224\nWIDTH = 224\nCHANNELS = 3\nES_PATIENCE = 5\nRLROP_PATIENCE = 3\nDECAY_DROP = 0.5\nLR_WARMUP_EPOCHS_1st = 2\nLR_WARMUP_EPOCHS_2nd = 5\nSTEP_SIZE = len(X_train) // BATCH_SIZE\nTOTAL_STEPS_1st = WARMUP_EPOCHS * STEP_SIZE\nTOTAL_STEPS_2nd = EPOCHS * STEP_SIZE\nWARMUP_STEPS_1st = LR_WARMUP_EPOCHS_1st * STEP_SIZE\nWARMUP_STEPS_2nd = LR_WARMUP_EPOCHS_2nd * STEP_SIZE","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:39:52.9176Z","iopub.execute_input":"2024-06-04T01:39:52.917932Z","iopub.status.idle":"2024-06-04T01:39:52.925482Z","shell.execute_reply.started":"2024-06-04T01:39:52.917874Z","shell.execute_reply":"2024-06-04T01:39:52.924537Z"},"trusted":true},"execution_count":51,"outputs":[]},{"cell_type":"code","source":"# train_base_path = '../input/aptos2019-blindness-detection/train_images/'\n# test_base_path = '../input/aptos2019-blindness-detection/test_images/'\n# train_dest_path = 'base_dir/train_images/'\n# validation_dest_path = 'base_dir/validation_images/'\n# test_dest_path =  'base_dir/test_images/'\n\n# # Making sure directories don't exist\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)\n    \n# # Creating train, validation and test directories\n# os.makedirs(train_dest_path)\n# os.makedirs(validation_dest_path)\n# os.makedirs(test_dest_path)\n\n# def crop_image(img, tol=7):\n#     if img.ndim ==2:\n#         mask = img>tol\n#         return img[np.ix_(mask.any(1),mask.any(0))]\n#     elif img.ndim==3:\n#         gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)\n#         mask = gray_img>tol\n#         check_shape = img[:,:,0][np.ix_(mask.any(1),mask.any(0))].shape[0]\n#         if (check_shape == 0): # image is too dark so that we crop out everything,\n#             return img # return original image\n#         else:\n#             img1=img[:,:,0][np.ix_(mask.any(1),mask.any(0))]\n#             img2=img[:,:,1][np.ix_(mask.any(1),mask.any(0))]\n#             img3=img[:,:,2][np.ix_(mask.any(1),mask.any(0))]\n#             img = np.stack([img1,img2,img3],axis=-1)\n            \n#         return img\n\n# def circle_crop(img):\n#     img = crop_image(img)\n\n#     height, width, depth = img.shape\n#     largest_side = np.max((height, width))\n#     img = cv2.resize(img, (largest_side, largest_side))\n\n#     height, width, depth = img.shape\n\n#     x = width//2\n#     y = height//2\n#     r = np.amin((x, y))\n\n#     circle_img = np.zeros((height, width), np.uint8)\n#     cv2.circle(circle_img, (x, y), int(r), 1, thickness=-1)\n#     img = cv2.bitwise_and(img, img, mask=circle_img)\n#     img = crop_image(img)\n\n#     return img\n    \n# def preprocess_image(base_path, save_path, image_id, HEIGHT, WIDTH, sigmaX=10):\n#     image = cv2.imread(base_path + image_id)\n#     image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n#     image = circle_crop(image)\n#     image = cv2.resize(image, (HEIGHT, WIDTH))\n#     image = cv2.addWeighted(image, 4, cv2.GaussianBlur(image, (0,0), sigmaX), -4 , 128)\n#     cv2.imwrite(save_path + image_id, image)\n    \n# # Pre-procecss train set\n# for i, image_id in enumerate(X_train['id_code']):\n#     preprocess_image(train_base_path, train_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss validation set\n# for i, image_id in enumerate(X_val['id_code']):\n#     preprocess_image(train_base_path, validation_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss test set\n# for i, image_id in enumerate(test['id_code']):\n#     preprocess_image(test_base_path, test_dest_path, image_id, HEIGHT, WIDTH)","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:35:09.6711Z","iopub.execute_input":"2024-06-04T01:35:09.671425Z","iopub.status.idle":"2024-06-04T01:35:09.677435Z","shell.execute_reply.started":"2024-06-04T01:35:09.671369Z","shell.execute_reply":"2024-06-04T01:35:09.676677Z"},"trusted":true},"execution_count":41,"outputs":[]},{"cell_type":"code","source":"datagen=ImageDataGenerator(rescale=1./255, \n                           rotation_range=360,\n                           horizontal_flip=True,\n                           vertical_flip=True)\n\ntrain_generator=datagen.flow_from_dataframe(\n                        dataframe=X_train,\n                        directory=\"/kaggle/input/data-main-1/fold2/base_dir_2/train_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\nvalid_generator=datagen.flow_from_dataframe(\n                        dataframe=X_val,\n                        directory=\"/kaggle/input/data-main-1/fold2/base_dir_2/validation_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\ntest_generator=datagen.flow_from_dataframe(  \n                       dataframe=test,\n                       directory=\"/kaggle/input/data-main-1/fold2/base_dir_2/test_images\",\n                       x_col=\"id_code\",\n                       batch_size=1,\n                       class_mode=None,\n                       shuffle=False,\n                       target_size=(HEIGHT, WIDTH),\n                       seed=seed)","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:39:57.444478Z","iopub.execute_input":"2024-06-04T01:39:57.444794Z","iopub.status.idle":"2024-06-04T01:40:03.558033Z","shell.execute_reply.started":"2024-06-04T01:39:57.444755Z","shell.execute_reply":"2024-06-04T01:40:03.557029Z"},"trusted":true},"execution_count":52,"outputs":[{"name":"stdout","text":"Found 2930 validated image filenames belonging to 5 classes.\nFound 732 validated image filenames belonging to 5 classes.\nFound 1928 validated image filenames.\n","output_type":"stream"}]},{"cell_type":"code","source":"# def cosine_decay_with_warmup(global_step,\n#                              learning_rate_base,\n#                              total_steps,\n#                              warmup_learning_rate=0.0,\n#                              warmup_steps=0,\n#                              hold_base_rate_steps=0):\n#     \"\"\"\n#     Cosine decay schedule with warm up period.\n#     In this schedule, the learning rate grows linearly from warmup_learning_rate\n#     to learning_rate_base for warmup_steps, then transitions to a cosine decay\n#     schedule.\n#     :param global_step {int}: global step.\n#     :param learning_rate_base {float}: base learning rate.\n#     :param total_steps {int}: total number of training steps.\n#     :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#     :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#     :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#     :param global_step {int}: global step.\n#     :Returns : a float representing learning rate.\n#     :Raises ValueError: if warmup_learning_rate is larger than learning_rate_base, or if warmup_steps is larger than total_steps.\n#     \"\"\"\n\n#     if total_steps < warmup_steps:\n#         raise ValueError('total_steps must be larger or equal to warmup_steps.')\n#     learning_rate = 0.5 * learning_rate_base * (1 + np.cos(\n#         np.pi *\n#         (global_step - warmup_steps - hold_base_rate_steps\n#          ) / float(total_steps - warmup_steps - hold_base_rate_steps)))\n#     if hold_base_rate_steps > 0:\n#         learning_rate = np.where(global_step > warmup_steps + hold_base_rate_steps,\n#                                  learning_rate, learning_rate_base)\n#     if warmup_steps > 0:\n#         if learning_rate_base < warmup_learning_rate:\n#             raise ValueError('learning_rate_base must be larger or equal to warmup_learning_rate.')\n#         slope = (learning_rate_base - warmup_learning_rate) / warmup_steps\n#         warmup_rate = slope * global_step + warmup_learning_rate\n#         learning_rate = np.where(global_step < warmup_steps, warmup_rate,\n#                                  learning_rate)\n#     return np.where(global_step > total_steps, 0.0, learning_rate)\n\n\n# class WarmUpCosineDecayScheduler(Callback):\n#     \"\"\"Cosine decay with warmup learning rate scheduler\"\"\"\n\n#     def __init__(self,\n#                  learning_rate_base,\n#                  total_steps,\n#                  global_step_init=0,\n#                  warmup_learning_rate=0.0,\n#                  warmup_steps=0,\n#                  hold_base_rate_steps=0,\n#                  verbose=0):\n#         \"\"\"\n#         Constructor for cosine decay with warmup learning rate scheduler.\n#         :param learning_rate_base {float}: base learning rate.\n#         :param total_steps {int}: total number of training steps.\n#         :param global_step_init {int}: initial global step, e.g. from previous checkpoint.\n#         :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#         :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#         :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#         :param verbose {int}: quiet, 1: update messages. (default: {0}).\n#         \"\"\"\n\n#         super(WarmUpCosineDecayScheduler, self).__init__()\n#         self.learning_rate_base = learning_rate_base\n#         self.total_steps = total_steps\n#         self.global_step = global_step_init\n#         self.warmup_learning_rate = warmup_learning_rate\n#         self.warmup_steps = warmup_steps\n#         self.hold_base_rate_steps = hold_base_rate_steps\n#         self.verbose = verbose\n#         self.learning_rates = []\n\n#     def on_batch_end(self, batch, logs=None):\n#         self.global_step = self.global_step + 1\n#         lr = K.get_value(self.model.optimizer.lr)\n#         self.learning_rates.append(lr)\n\n#     def on_batch_begin(self, batch, logs=None):\n#         lr = cosine_decay_with_warmup(global_step=self.global_step,\n#                                       learning_rate_base=self.learning_rate_base,\n#                                       total_steps=self.total_steps,\n#                                       warmup_learning_rate=self.warmup_learning_rate,\n#                                       warmup_steps=self.warmup_steps,\n#                                       hold_base_rate_steps=self.hold_base_rate_steps)\n#         K.set_value(self.model.optimizer.lr, lr)\n#         if self.verbose > 0:\n#             print('\\nBatch %02d: setting learning rate to %s.' % (self.global_step + 1, lr))","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:13:36.830092Z","iopub.execute_input":"2024-04-30T15:13:36.830393Z","iopub.status.idle":"2024-04-30T15:13:36.849549Z","shell.execute_reply.started":"2024-04-30T15:13:36.830349Z","shell.execute_reply":"2024-04-30T15:13:36.848443Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df_path =  \"/kaggle/input/aptos2019-blindness-detection/train.csv\"\ntest_df_path = '/kaggle/input/aptos2019-blindness-detection/test.csv'\ntrain_img_path =  \"/kaggle/input/aptos2019-blindness-detection/train_images/\"\ntest_img_path =  '/kaggle/input/aptos2019-blindness-detection/test_images/'","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:40:08.701806Z","iopub.execute_input":"2024-06-04T01:40:08.702112Z","iopub.status.idle":"2024-06-04T01:40:08.706571Z","shell.execute_reply.started":"2024-06-04T01:40:08.70207Z","shell.execute_reply":"2024-06-04T01:40:08.705712Z"},"trusted":true},"execution_count":53,"outputs":[]},{"cell_type":"code","source":"train_df = pd.read_csv(train_df_path)\n\ntrain_df['id_code'] = train_df['id_code'] + \".png\"\nprint(f\"Training images: {train_df.shape[0]}\")\ndisplay(train_df.head())\n\ntest_df = pd.read_csv(test_df_path)\n\ntest_df['id_code'] = test_df['id_code'] + \".png\"\nprint(f\"Testing Images: {test_df.shape[0]}\")\ndisplay(test_df.head())","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:40:10.460881Z","iopub.execute_input":"2024-06-04T01:40:10.461238Z","iopub.status.idle":"2024-06-04T01:40:10.494269Z","shell.execute_reply.started":"2024-06-04T01:40:10.46119Z","shell.execute_reply":"2024-06-04T01:40:10.493369Z"},"trusted":true},"execution_count":54,"outputs":[{"name":"stdout","text":"Training images: 3662\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code  diagnosis\n0  000c1434d8d7.png          2\n1  001639a390f0.png          4\n2  0024cdab0c1e.png          1\n3  002c21358ce6.png          0\n4  005b95c28852.png          0","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>id_code</th>\n      <th>diagnosis</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>000c1434d8d7.png</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>001639a390f0.png</td>\n      <td>4</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0024cdab0c1e.png</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>002c21358ce6.png</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>005b95c28852.png</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}},{"name":"stdout","text":"Testing Images: 1928\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"            id_code\n0  0005cfc8afb6.png\n1  003f0afdcd15.png\n2  006efc72b638.png\n3  00836aaacf06.png\n4  009245722fa4.png","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>id_code</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0005cfc8afb6.png</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>003f0afdcd15.png</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>006efc72b638.png</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>00836aaacf06.png</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>009245722fa4.png</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"n_classes = train_df['diagnosis'].nunique()\nprint(n_classes)","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:40:13.378782Z","iopub.execute_input":"2024-06-04T01:40:13.379068Z","iopub.status.idle":"2024-06-04T01:40:13.384666Z","shell.execute_reply.started":"2024-06-04T01:40:13.379033Z","shell.execute_reply":"2024-06-04T01:40:13.383698Z"},"trusted":true},"execution_count":55,"outputs":[{"name":"stdout","text":"5\n","output_type":"stream"}]},{"cell_type":"code","source":"def create_model(input_shape, n_out):\n    input_tensor = Input(shape=input_shape)\n    base_model = EfficientNetB5(weights=None, \n                                include_top=False,\n                                input_tensor=input_tensor)\n    base_model.load_weights('../input/efficientnet-keras-weights-b0b5/efficientnet-b5_imagenet_1000_notop.h5')\n\n    x = GlobalAveragePooling2D()(base_model.output)\n    x = Dropout(0.5)(x)\n    x = Dense(2048, activation='relu')(x)\n    x = Dropout(0.5)(x)\n    final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n    model = Model(input_tensor, final_output)\n    \n    return model","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:40:17.598029Z","iopub.execute_input":"2024-06-04T01:40:17.598326Z","iopub.status.idle":"2024-06-04T01:40:17.605986Z","shell.execute_reply.started":"2024-06-04T01:40:17.598284Z","shell.execute_reply":"2024-06-04T01:40:17.605272Z"},"trusted":true},"execution_count":56,"outputs":[]},{"cell_type":"code","source":"model = create_model(input_shape=(HEIGHT, WIDTH, CHANNELS), n_out=n_classes)\n\nfor layer in model.layers:\n    layer.trainable = False\n\nfor i in range(-2, 0):\n    model.layers[i].trainable = True\n\n# cosine_lr_1st = WarmUpCosineDecayScheduler(learning_rate_base=WARMUP_LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_1st,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_1st,\n#                                            hold_base_rate_steps=(2 * STEP_SIZE))\n\n# metric_list = [\"accuracy\"]\n# callback_list = [cosine_lr_1st]\n# optimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:40:21.482696Z","iopub.execute_input":"2024-06-04T01:40:21.483044Z","iopub.status.idle":"2024-06-04T01:47:43.534674Z","shell.execute_reply.started":"2024-06-04T01:40:21.482985Z","shell.execute_reply":"2024-06-04T01:47:43.533118Z"},"trusted":true},"execution_count":57,"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m<ipython-input-57-b47b67e833a2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmodel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput_shape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mHEIGHT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mWIDTH\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mCHANNELS\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_out\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mlayer\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlayers\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m     \u001b[0mlayer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrainable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m<ipython-input-56-832c1352f977>\u001b[0m in \u001b[0;36mcreate_model\u001b[0;34m(input_shape, n_out)\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcreate_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput_shape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_out\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m     \u001b[0minput_tensor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mInput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minput_shape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      3\u001b[0m     base_model = EfficientNetB5(weights=None, \n\u001b[1;32m      4\u001b[0m                                 \u001b[0minclude_top\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m                                 input_tensor=input_tensor)\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/engine/input_layer.py\u001b[0m in \u001b[0;36mInput\u001b[0;34m(shape, batch_shape, name, dtype, sparse, tensor)\u001b[0m\n\u001b[1;32m    176\u001b[0m                              \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    177\u001b[0m                              \u001b[0msparse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msparse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 178\u001b[0;31m                              input_tensor=tensor)\n\u001b[0m\u001b[1;32m    179\u001b[0m     \u001b[0;31m# Return tensor including _keras_shape and _keras_history.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    180\u001b[0m     \u001b[0;31m# Note that in this case train_output and test_output are the same pointer.\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/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/input_layer.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, input_shape, batch_size, batch_input_shape, dtype, input_tensor, sparse, name)\u001b[0m\n\u001b[1;32m     85\u001b[0m                                          \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     86\u001b[0m                                          \u001b[0msparse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msparse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m                                          name=self.name)\n\u001b[0m\u001b[1;32m     88\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     89\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_placeholder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36mplaceholder\u001b[0;34m(shape, ndim, dtype, sparse, name)\u001b[0m\n\u001b[1;32m    515\u001b[0m         \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msparse_placeholder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    516\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 517\u001b[0;31m         \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplaceholder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    518\u001b[0m     \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_keras_shape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    519\u001b[0m     \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_uses_learning_phase\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py\u001b[0m in \u001b[0;36mplaceholder\u001b[0;34m(dtype, shape, name)\u001b[0m\n\u001b[1;32m   2141\u001b[0m                        \"eager execution.\")\n\u001b[1;32m   2142\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2143\u001b[0;31m   \u001b[0;32mreturn\u001b[0m \u001b[0mgen_array_ops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplaceholder\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2144\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py\u001b[0m in \u001b[0;36mplaceholder\u001b[0;34m(dtype, shape, name)\u001b[0m\n\u001b[1;32m   6260\u001b[0m   \u001b[0mshape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_execute\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmake_shape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"shape\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6261\u001b[0m   _, _, _op = _op_def_lib._apply_op_helper(\n\u001b[0;32m-> 6262\u001b[0;31m         \"Placeholder\", dtype=dtype, shape=shape, name=name)\n\u001b[0m\u001b[1;32m   6263\u001b[0m   \u001b[0m_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_op\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moutputs\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   6264\u001b[0m   \u001b[0m_inputs_flat\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_op\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py\u001b[0m in \u001b[0;36m_apply_op_helper\u001b[0;34m(self, op_type_name, name, **keywords)\u001b[0m\n\u001b[1;32m    786\u001b[0m         op = g.create_op(op_type_name, inputs, dtypes=None, name=scope,\n\u001b[1;32m    787\u001b[0m                          \u001b[0minput_types\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minput_types\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mattr_protos\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 788\u001b[0;31m                          op_def=op_def)\n\u001b[0m\u001b[1;32m    789\u001b[0m       \u001b[0;32mreturn\u001b[0m \u001b[0moutput_structure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop_def\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_stateful\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    790\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\u001b[0m in \u001b[0;36mnew_func\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    505\u001b[0m                 \u001b[0;34m'in a future version'\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdate\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m'after %s'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mdate\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    506\u001b[0m                 instructions)\n\u001b[0;32m--> 507\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    508\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    509\u001b[0m     doc = _add_deprecated_arg_notice_to_docstring(\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mcreate_op\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m   3605\u001b[0m     \u001b[0;31m# _create_op_helper mutates the new Operation. `_mutation_lock` ensures a\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3606\u001b[0m     \u001b[0;31m# Session.run call cannot occur between creating and mutating the op.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3607\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mutation_lock\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[0m\u001b[1;32m   3608\u001b[0m       ret = Operation(\n\u001b[1;32m   3609\u001b[0m           \u001b[0mnode_def\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/tensorflow/python/util/lock_util.py\u001b[0m in \u001b[0;36m__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    123\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__enter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 124\u001b[0;31m       \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_group_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    125\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    126\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__exit__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype_arg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue_arg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraceback_arg\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/tensorflow/python/util/lock_util.py\u001b[0m in \u001b[0;36macquire\u001b[0;34m(self, group_id)\u001b[0m\n\u001b[1;32m     88\u001b[0m     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_group_id\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     89\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 90\u001b[0;31m     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ready\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     91\u001b[0m     \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_another_group_active\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     92\u001b[0m       \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ready\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "],"ename":"KeyboardInterrupt","evalue":"","output_type":"error"}]},{"cell_type":"code","source":"STEP_SIZE_TRAIN = train_generator.n//train_generator.batch_size\nSTEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n\nmetric_list = [\"accuracy\"]\noptimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\nmodel.compile (optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])\n\nhistory_warmup = model.fit_generator(generator=train_generator,\n                                     steps_per_epoch=STEP_SIZE_TRAIN,\n                                     validation_data=valid_generator,\n                                     validation_steps=STEP_SIZE_VALID,\n                                     epochs=WARMUP_EPOCHS,\n#                                      callbacks=callback_list,\n                                     verbose=1).history","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:16:23.379846Z","iopub.execute_input":"2024-06-04T01:16:23.380156Z","iopub.status.idle":"2024-06-04T01:20:38.073728Z","shell.execute_reply.started":"2024-06-04T01:16:23.380115Z","shell.execute_reply":"2024-06-04T01:20:38.072722Z"},"trusted":true},"execution_count":32,"outputs":[{"name":"stdout","text":"Epoch 1/5\n91/91 [==============================] - 75s 823ms/step - loss: 1.1730 - acc: 0.5659 - val_loss: 1.1151 - val_acc: 0.6165\nEpoch 2/5\n91/91 [==============================] - 46s 500ms/step - loss: 1.0915 - acc: 0.6024 - val_loss: 1.1542 - val_acc: 0.6114\nEpoch 3/5\n91/91 [==============================] - 45s 494ms/step - loss: 1.0597 - acc: 0.6145 - val_loss: 1.2045 - val_acc: 0.6000\nEpoch 4/5\n91/91 [==============================] - 45s 492ms/step - loss: 1.0689 - acc: 0.6159 - val_loss: 1.1490 - val_acc: 0.5814\nEpoch 5/5\n91/91 [==============================] - 44s 487ms/step - loss: 1.0568 - acc: 0.6113 - val_loss: 1.2031 - val_acc: 0.6029\n","output_type":"stream"}]},{"cell_type":"code","source":"for layer in model.layers:\n    layer.trainable = True\n\n# es = EarlyStopping(monitor='val_loss', mode='min', patience=ES_PATIENCE, restore_best_weights=True, verbose=1)\n# cosine_lr_2nd = WarmUpCosineDecayScheduler(learning_rate_base=LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_2nd,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_2nd,\n#                                            hold_base_rate_steps=(3 * STEP_SIZE))\n\n# callback_list = [es, cosine_lr_2nd]\n# optimizer = optimizers.Adam(lr=LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\n# model.summary()\nrlrop = ReduceLROnPlateau(monitor='val_loss', mode='min', patience=3, factor=0.5, min_lr=1e-6, verbose=1)\n\ncallback_list = [rlrop]\noptimizer = optimizers.Adam(lr=LEARNING_RATE)\nmodel.compile(optimizer=optimizer, loss=\"categorical_crossentropy\",  metrics=[\"accuracy\"])\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:33:16.373854Z","iopub.execute_input":"2024-06-04T01:33:16.374194Z","iopub.status.idle":"2024-06-04T01:34:06.792399Z","shell.execute_reply.started":"2024-06-04T01:33:16.374137Z","shell.execute_reply":"2024-06-04T01:34:06.790772Z"},"trusted":true},"execution_count":37,"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m<ipython-input-37-bffdfd118f34>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     16\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     17\u001b[0m \u001b[0mcallback_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mrlrop\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m \u001b[0moptimizer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0moptimizers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mAdam\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mLEARNING_RATE\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     19\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moptimizer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moptimizer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"categorical_crossentropy\"\u001b[0m\u001b[0;34m,\u001b[0m  \u001b[0mmetrics\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"accuracy\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     20\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msummary\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/optimizers.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, lr, beta_1, beta_2, epsilon, decay, amsgrad, **kwargs)\u001b[0m\n\u001b[1;32m    460\u001b[0m         \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mAdam\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\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[1;32m    461\u001b[0m         \u001b[0;32mwith\u001b[0m \u001b[0mK\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname_scope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 462\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miterations\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mK\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'int64'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'iterations'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    463\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mK\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'lr'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    464\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbeta_1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mK\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbeta_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'beta_1'\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/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36mvariable\u001b[0;34m(value, dtype, name, constraint)\u001b[0m\n\u001b[1;32m    400\u001b[0m         \u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_uses_learning_phase\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    401\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 402\u001b[0;31m     \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mVariable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    403\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    404\u001b[0m         \u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_keras_shape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m    257\u001b[0m   \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\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[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    258\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mcls\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mVariableV1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 259\u001b[0;31m       \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_variable_v1_call\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    260\u001b[0m     \u001b[0;32melif\u001b[0m \u001b[0mcls\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mVariable\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    261\u001b[0m       \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_variable_v2_call\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[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m_variable_v1_call\u001b[0;34m(cls, initial_value, trainable, collections, validate_shape, caching_device, name, variable_def, dtype, expected_shape, import_scope, constraint, use_resource, synchronization, aggregation, shape)\u001b[0m\n\u001b[1;32m    218\u001b[0m         \u001b[0msynchronization\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msynchronization\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    219\u001b[0m         \u001b[0maggregation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maggregation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 220\u001b[0;31m         shape=shape)\n\u001b[0m\u001b[1;32m    221\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    222\u001b[0m   def _variable_v2_call(cls,\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(**kwargs)\u001b[0m\n\u001b[1;32m    196\u001b[0m                         shape=None):\n\u001b[1;32m    197\u001b[0m     \u001b[0;34m\"\"\"Call on Variable class. Useful to force the signature.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 198\u001b[0;31m     \u001b[0mprevious_getter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdefault_variable_creator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mNone\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    199\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgetter\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_default_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_variable_creator_stack\u001b[0m\u001b[0;34m:\u001b[0m  \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    200\u001b[0m       \u001b[0mprevious_getter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_make_getter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgetter\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprevious_getter\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/tensorflow/python/ops/variable_scope.py\u001b[0m in \u001b[0;36mdefault_variable_creator\u001b[0;34m(next_creator, **kwargs)\u001b[0m\n\u001b[1;32m   2509\u001b[0m         \u001b[0msynchronization\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msynchronization\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2510\u001b[0m         \u001b[0maggregation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maggregation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2511\u001b[0;31m         shape=shape)\n\u001b[0m\u001b[1;32m   2512\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2513\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m    261\u001b[0m       \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_variable_v2_call\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[1;32m    262\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 263\u001b[0;31m       \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mVariableMetaclass\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__call__\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    264\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    265\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, initial_value, trainable, collections, validate_shape, caching_device, name, variable_def, dtype, expected_shape, import_scope, constraint, synchronization, aggregation, shape)\u001b[0m\n\u001b[1;32m   1566\u001b[0m           \u001b[0msynchronization\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msynchronization\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1567\u001b[0m           \u001b[0maggregation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maggregation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1568\u001b[0;31m           shape=shape)\n\u001b[0m\u001b[1;32m   1569\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1570\u001b[0m   \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\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/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36m_init_from_args\u001b[0;34m(self, initial_value, trainable, collections, validate_shape, caching_device, name, dtype, expected_shape, constraint, synchronization, aggregation, shape)\u001b[0m\n\u001b[1;32m   1709\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1710\u001b[0m           self._initial_value = ops.convert_to_tensor(\n\u001b[0;32m-> 1711\u001b[0;31m               initial_value, name=\"initial_value\", dtype=dtype)\n\u001b[0m\u001b[1;32m   1712\u001b[0m           \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1713\u001b[0m           \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_initial_value\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_control_flow_context\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\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/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mconvert_to_tensor\u001b[0;34m(value, dtype, name, preferred_dtype, dtype_hint)\u001b[0m\n\u001b[1;32m   1085\u001b[0m   preferred_dtype = deprecation.deprecated_argument_lookup(\n\u001b[1;32m   1086\u001b[0m       \"dtype_hint\", dtype_hint, \"preferred_dtype\", preferred_dtype)\n\u001b[0;32m-> 1087\u001b[0;31m   \u001b[0;32mreturn\u001b[0m \u001b[0mconvert_to_tensor_v2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpreferred_dtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1088\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1089\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mconvert_to_tensor_v2\u001b[0;34m(value, dtype, dtype_hint, name)\u001b[0m\n\u001b[1;32m   1143\u001b[0m       \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1144\u001b[0m       \u001b[0mpreferred_dtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype_hint\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1145\u001b[0;31m       as_ref=False)\n\u001b[0m\u001b[1;32m   1146\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1147\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36minternal_convert_to_tensor\u001b[0;34m(value, dtype, name, as_ref, preferred_dtype, ctx, accept_symbolic_tensors, accept_composite_tensors)\u001b[0m\n\u001b[1;32m   1222\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1223\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mret\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-> 1224\u001b[0;31m       \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconversion_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mas_ref\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mas_ref\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1225\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1226\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNotImplemented\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/tensorflow/python/framework/constant_op.py\u001b[0m in \u001b[0;36m_constant_tensor_conversion_function\u001b[0;34m(v, dtype, name, as_ref)\u001b[0m\n\u001b[1;32m    303\u001b[0m                                          as_ref=False):\n\u001b[1;32m    304\u001b[0m   \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_ref\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 305\u001b[0;31m   \u001b[0;32mreturn\u001b[0m \u001b[0mconstant\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    306\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    307\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py\u001b[0m in \u001b[0;36mconstant\u001b[0;34m(value, dtype, shape, name)\u001b[0m\n\u001b[1;32m    244\u001b[0m   \"\"\"\n\u001b[1;32m    245\u001b[0m   return _constant_impl(value, dtype, shape, name, verify_shape=False,\n\u001b[0;32m--> 246\u001b[0;31m                         allow_broadcast=True)\n\u001b[0m\u001b[1;32m    247\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    248\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/constant_op.py\u001b[0m in \u001b[0;36m_constant_impl\u001b[0;34m(value, dtype, shape, name, verify_shape, allow_broadcast)\u001b[0m\n\u001b[1;32m    288\u001b[0m       attrs={\"value\": tensor_value,\n\u001b[1;32m    289\u001b[0m              \"dtype\": dtype_value},\n\u001b[0;32m--> 290\u001b[0;31m       name=name).outputs[0]\n\u001b[0m\u001b[1;32m    291\u001b[0m   \u001b[0;32mreturn\u001b[0m \u001b[0mconst_tensor\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    292\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\u001b[0m in \u001b[0;36mnew_func\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    505\u001b[0m                 \u001b[0;34m'in a future version'\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdate\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m'after %s'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mdate\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    506\u001b[0m                 instructions)\n\u001b[0;32m--> 507\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    508\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    509\u001b[0m     doc = _add_deprecated_arg_notice_to_docstring(\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mcreate_op\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m   3605\u001b[0m     \u001b[0;31m# _create_op_helper mutates the new Operation. `_mutation_lock` ensures a\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3606\u001b[0m     \u001b[0;31m# Session.run call cannot occur between creating and mutating the op.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3607\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mutation_lock\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[0m\u001b[1;32m   3608\u001b[0m       ret = Operation(\n\u001b[1;32m   3609\u001b[0m           \u001b[0mnode_def\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/tensorflow/python/util/lock_util.py\u001b[0m in \u001b[0;36m__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    123\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__enter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 124\u001b[0;31m       \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_group_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    125\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    126\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__exit__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype_arg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue_arg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraceback_arg\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/tensorflow/python/util/lock_util.py\u001b[0m in \u001b[0;36macquire\u001b[0;34m(self, group_id)\u001b[0m\n\u001b[1;32m     88\u001b[0m     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_group_id\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     89\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 90\u001b[0;31m     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ready\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     91\u001b[0m     \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_another_group_active\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     92\u001b[0m       \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ready\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "],"ename":"KeyboardInterrupt","evalue":"","output_type":"error"}]},{"cell_type":"code","source":"history = model.fit_generator(generator=train_generator,\n                              steps_per_epoch=STEP_SIZE_TRAIN,\n                              validation_data=valid_generator,\n                              validation_steps=STEP_SIZE_VALID,\n                              epochs=EPOCHS,\n                              callbacks=callback_list,\n                              verbose=1).history","metadata":{"execution":{"iopub.status.busy":"2024-06-04T01:31:40.292074Z","iopub.execute_input":"2024-06-04T01:31:40.292398Z","iopub.status.idle":"2024-06-04T01:33:12.068244Z","shell.execute_reply.started":"2024-06-04T01:31:40.292352Z","shell.execute_reply":"2024-06-04T01:33:12.066945Z"},"trusted":true},"execution_count":36,"outputs":[{"name":"stdout","text":"Epoch 1/20\n","output_type":"stream"},{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)","\u001b[0;32m<ipython-input-36-7776bd6bf492>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      5\u001b[0m                               \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mEPOCHS\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m                               \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcallback_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m                               verbose=1).history\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    215\u001b[0m                 outs = model.train_on_batch(x, y,\n\u001b[1;32m    216\u001b[0m                                             \u001b[0msample_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 217\u001b[0;31m                                             class_weight=class_weight)\n\u001b[0m\u001b[1;32m    218\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    219\u001b[0m                 \u001b[0mouts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mto_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mouts\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/engine/training.py\u001b[0m in \u001b[0;36mtrain_on_batch\u001b[0;34m(self, x, y, sample_weight, class_weight)\u001b[0m\n\u001b[1;32m   1215\u001b[0m             \u001b[0mins\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0msample_weights\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1216\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_train_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1217\u001b[0;31m         \u001b[0moutputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mins\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1218\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0munpack_singleton\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1219\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m   2695\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2696\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2697\u001b[0;31m         \u001b[0;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mget_session\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'_make_callable_from_options'\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   2698\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mpy_any\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mis_sparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2699\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0mpy_any\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mis_tensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0minputs\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/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36mget_session\u001b[0;34m()\u001b[0m\n\u001b[1;32m    197\u001b[0m                 \u001b[0;31m# not already marked as initialized.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    198\u001b[0m                 is_initialized = session.run(\n\u001b[0;32m--> 199\u001b[0;31m                     [tf.is_variable_initialized(v) for v in candidate_vars])\n\u001b[0m\u001b[1;32m    200\u001b[0m                 \u001b[0muninitialized_vars\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    201\u001b[0m                 \u001b[0;32mfor\u001b[0m \u001b[0mflag\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mis_initialized\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcandidate_vars\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/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m    197\u001b[0m                 \u001b[0;31m# not already marked as initialized.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    198\u001b[0m                 is_initialized = session.run(\n\u001b[0;32m--> 199\u001b[0;31m                     [tf.is_variable_initialized(v) for v in candidate_vars])\n\u001b[0m\u001b[1;32m    200\u001b[0m                 \u001b[0muninitialized_vars\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    201\u001b[0m                 \u001b[0;32mfor\u001b[0m \u001b[0mflag\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mis_initialized\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcandidate_vars\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/tensorflow/python/util/tf_should_use.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    191\u001b[0m   \"\"\"\n\u001b[1;32m    192\u001b[0m   \u001b[0;32mdef\u001b[0m \u001b[0mwrapped\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[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 193\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0m_add_should_use_warning\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\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[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    194\u001b[0m   return tf_decorator.make_decorator(\n\u001b[1;32m    195\u001b[0m       \u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'should_use_result'\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/tensorflow/python/ops/variables.py\u001b[0m in \u001b[0;36mis_variable_initialized\u001b[0;34m(variable)\u001b[0m\n\u001b[1;32m   3081\u001b[0m     \u001b[0minitialized\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;31m`\u001b[0m \u001b[0motherwise\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3082\u001b[0m   \"\"\"\n\u001b[0;32m-> 3083\u001b[0;31m   \u001b[0;32mreturn\u001b[0m \u001b[0mstate_ops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_variable_initialized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3084\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3085\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/state_ops.py\u001b[0m in \u001b[0;36mis_variable_initialized\u001b[0;34m(ref, name)\u001b[0m\n\u001b[1;32m    129\u001b[0m   \"\"\"\n\u001b[1;32m    130\u001b[0m   \u001b[0;32mif\u001b[0m \u001b[0mref\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_is_ref_dtype\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 131\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mgen_state_ops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_variable_initialized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mref\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mref\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    132\u001b[0m   \u001b[0;31m# Handle resource variables.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    133\u001b[0m   \u001b[0;32mreturn\u001b[0m \u001b[0mref\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_initialized\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\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/tensorflow/python/ops/gen_state_ops.py\u001b[0m in \u001b[0;36mis_variable_initialized\u001b[0;34m(ref, name)\u001b[0m\n\u001b[1;32m    282\u001b[0m   \u001b[0;31m# Add nodes to the TensorFlow graph.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    283\u001b[0m   _, _, _op = _op_def_lib._apply_op_helper(\n\u001b[0;32m--> 284\u001b[0;31m         \"IsVariableInitialized\", ref=ref, name=name)\n\u001b[0m\u001b[1;32m    285\u001b[0m   \u001b[0m_result\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_op\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moutputs\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    286\u001b[0m   \u001b[0m_inputs_flat\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_op\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py\u001b[0m in \u001b[0;36m_apply_op_helper\u001b[0;34m(self, op_type_name, name, **keywords)\u001b[0m\n\u001b[1;32m    786\u001b[0m         op = g.create_op(op_type_name, inputs, dtypes=None, name=scope,\n\u001b[1;32m    787\u001b[0m                          \u001b[0minput_types\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minput_types\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mattr_protos\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 788\u001b[0;31m                          op_def=op_def)\n\u001b[0m\u001b[1;32m    789\u001b[0m       \u001b[0;32mreturn\u001b[0m \u001b[0moutput_structure\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop_def\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_stateful\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    790\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\u001b[0m in \u001b[0;36mnew_func\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    505\u001b[0m                 \u001b[0;34m'in a future version'\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdate\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m'after %s'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mdate\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    506\u001b[0m                 instructions)\n\u001b[0;32m--> 507\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    508\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    509\u001b[0m     doc = _add_deprecated_arg_notice_to_docstring(\n","\u001b[0;32m/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36mcreate_op\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m   3605\u001b[0m     \u001b[0;31m# _create_op_helper mutates the new Operation. `_mutation_lock` ensures a\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3606\u001b[0m     \u001b[0;31m# Session.run call cannot occur between creating and mutating the op.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3607\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mutation_lock\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[0m\u001b[1;32m   3608\u001b[0m       ret = Operation(\n\u001b[1;32m   3609\u001b[0m           \u001b[0mnode_def\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/tensorflow/python/util/lock_util.py\u001b[0m in \u001b[0;36m__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    123\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__enter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 124\u001b[0;31m       \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_group_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    125\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    126\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__exit__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype_arg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue_arg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraceback_arg\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/tensorflow/python/util/lock_util.py\u001b[0m in \u001b[0;36macquire\u001b[0;34m(self, group_id)\u001b[0m\n\u001b[1;32m     88\u001b[0m     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_group_id\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     89\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 90\u001b[0;31m     \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ready\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     91\u001b[0m     \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_another_group_active\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     92\u001b[0m       \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ready\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mKeyboardInterrupt\u001b[0m: "],"ename":"KeyboardInterrupt","evalue":"","output_type":"error"}]},{"cell_type":"code","source":"# fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 6))\n\n# ax1.plot(cosine_lr_1st.learning_rates)\n# ax1.set_title('Warm up learning rates')\n\n# ax2.plot(cosine_lr_2nd.learning_rates)\n# ax2.set_title('Fine-tune learning rates')\n\n# plt.xlabel('Steps')\n# plt.ylabel('Learning rate')\n# sns.despine()\n# plt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:51:13.648849Z","iopub.execute_input":"2024-04-30T15:51:13.649234Z","iopub.status.idle":"2024-04-30T15:51:14.112199Z","shell.execute_reply.started":"2024-04-30T15:51:13.649182Z","shell.execute_reply":"2024-04-30T15:51:14.111118Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 14))\n\nax1.plot(history['loss'], label='Train loss')\nax1.plot(history['val_loss'], label='Validation loss')\nax1.legend(loc='best')\nax1.set_title('Loss')\n\nax2.plot(history['acc'], label='Train accuracy')\nax2.plot(history['val_acc'], label='Validation accuracy')\nax2.legend(loc='best')\nax2.set_title('Accuracy')\n\nplt.xlabel('Epochs')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:51:17.8811Z","iopub.execute_input":"2024-04-30T15:51:17.881497Z","iopub.status.idle":"2024-04-30T15:51:18.509429Z","shell.execute_reply.started":"2024-04-30T15:51:17.881438Z","shell.execute_reply":"2024-04-30T15:51:18.508629Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# # Create empty arays to keep the predictions and labels\n# df_preds = pd.DataFrame(columns=['label', 'pred', 'set'])\n# train_generator.reset()\n# valid_generator.reset()\n\n# # Add train predictions and labels\n# for i in range(STEP_SIZE_TRAIN + 1):\n#     im, lbl = next(train_generator)\n#     preds = model.predict(im, batch_size=train_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'train']\n\n# # Add validation predictions and labels\n# for i in range(STEP_SIZE_VALID + 1):\n#     im, lbl = next(valid_generator)\n#     preds = model.predict(im, batch_size=valid_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'validation']\n\n# df_preds['label'] = df_preds['label'].astype('int')\n\nlastFullTrainPred = np.empty((0, n_classes))\nlastFullTrainLabels = np.empty((0, n_classes))\nlastFullValPred = np.empty((0, n_classes))\nlastFullValLabels = np.empty((0, n_classes))\n\n# Add train predictions and labels\nfor i in range(STEP_SIZE_TRAIN+1):\n    im, lbl = next(train_generator)\n    scores = model.predict(im, batch_size=train_generator.batch_size)\n    lastFullTrainPred = np.append(lastFullTrainPred, scores, axis=0)\n    lastFullTrainLabels = np.append(lastFullTrainLabels, lbl, axis=0)\n\n# Add validation predictions and labels\nfor i in range(STEP_SIZE_VALID+1):\n    im, lbl = next(valid_generator)\n    scores = model.predict(im, batch_size=valid_generator.batch_size)\n    lastFullValPred = np.append(lastFullValPred, scores, axis=0)\n    lastFullValLabels = np.append(lastFullValLabels, lbl, axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:51:22.095495Z","iopub.execute_input":"2024-04-30T15:51:22.095794Z","iopub.status.idle":"2024-04-30T15:52:42.002829Z","shell.execute_reply.started":"2024-04-30T15:51:22.095752Z","shell.execute_reply":"2024-04-30T15:52:42.001875Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# def classify(x):\n#     if x < 0.5:\n#         return 0\n#     elif x < 1.5:\n#         return 1\n#     elif x < 2.5:\n#         return 2\n#     elif x < 3.5:\n#         return 3\n#     return 4\n\n# # Classify predictions\n# df_preds['predictions'] = df_preds['pred'].apply(lambda x: classify(x))\n\n# train_preds = df_preds[df_preds['set'] == 'train']\n# validation_preds = df_preds[df_preds['set'] == 'validation']\n\ntrain_preds = [np.argmax(pred) for pred in lastFullTrainPred]\ntrain_labels = [np.argmax(label) for label in lastFullTrainLabels]\nvalidation_preds = [np.argmax(pred) for pred in lastFullValPred]\nvalidation_labels = [np.argmax(label) for label in lastFullValLabels]","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:54:57.165948Z","iopub.execute_input":"2024-04-30T15:54:57.166297Z","iopub.status.idle":"2024-04-30T15:54:57.183138Z","shell.execute_reply.started":"2024-04-30T15:54:57.166253Z","shell.execute_reply":"2024-04-30T15:54:57.182375Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(1, 2, sharex='col', figsize=(24, 7))\nlabels = ['0 - No DR', '1 - Mild', '2 - Moderate', '3 - Severe', '4 - Proliferative DR']\ntrain_cnf_matrix = confusion_matrix(train_labels, train_preds)\nvalidation_cnf_matrix = confusion_matrix(validation_labels, validation_preds)\n\ntrain_cnf_matrix_norm = train_cnf_matrix.astype('float') / train_cnf_matrix.sum(axis=1)[:, np.newaxis]\nvalidation_cnf_matrix_norm = validation_cnf_matrix.astype('float') / validation_cnf_matrix.sum(axis=1)[:, np.newaxis]\n\ntrain_df_cm = pd.DataFrame(train_cnf_matrix_norm, index=labels, columns=labels)\nvalidation_df_cm = pd.DataFrame(validation_cnf_matrix_norm, index=labels, columns=labels)\n\nsns.heatmap(train_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax1).set_title('Train')\nsns.heatmap(validation_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax2).set_title('Validation')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:55:01.126851Z","iopub.execute_input":"2024-04-30T15:55:01.127195Z","iopub.status.idle":"2024-04-30T15:55:01.729608Z","shell.execute_reply.started":"2024-04-30T15:55:01.127135Z","shell.execute_reply":"2024-04-30T15:55:01.728407Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"Train Cohen Kappa score: %.3f\"% cohen_kappa_score(train_preds, train_labels, weights='quadratic'))\n\nprint(\"Validation   Cohen Kappa score: %.3f\" % cohen_kappa_score(validation_preds, validation_labels, weights='quadratic'))\n\nprint(\"Complete set Cohen Kappa score: %.3f\" % cohen_kappa_score(np.append(train_preds, validation_preds), np.append(train_labels, validation_labels), weights='quadratic'))","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:55:07.680208Z","iopub.execute_input":"2024-04-30T15:55:07.680551Z","iopub.status.idle":"2024-04-30T15:55:07.705104Z","shell.execute_reply.started":"2024-04-30T15:55:07.680475Z","shell.execute_reply":"2024-04-30T15:55:07.704402Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# def apply_tta(model, generator, steps=10):\n#     step_size = generator.n//generator.batch_size\n#     preds_tta = []\n#     for i in range(steps):\n#         generator.reset()\n#         preds = model.predict_generator(generator, steps=step_size)\n#         preds_tta.append(preds)\n\n#     return np.mean(preds_tta, axis=0)\n\n# preds = apply_tta(model, test_generator)\n# predictions = [classify(x) for x in preds]\n\n# results = pd.DataFrame({'id_code':test['id_code'], 'diagnosis':predictions})\n# results['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])\n\ntest_generator.reset()\nstep_test = test_generator.n//test_generator.batch_size\npreds = model.predict_generator(test_generator, steps=step_test)\npredictions = [np.argmax(pred) for pred in preds]\n\nfilenames = test_generator.filenames\nresults = pd.DataFrame({'id_code':filenames, 'diagnosis':predictions})\nresults['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])# def apply_tta(model, generator, steps=10):\n#     step_size = generator.n//generator.batch_size\n#     preds_tta = []\n#     for i in range(steps):\n#         generator.reset()\n#         preds = model.predict_generator(generator, steps=step_size)\n#         preds_tta.append(preds)\n\n#     return np.mean(preds_tta, axis=0)\n\n# preds = apply_tta(model, test_generator)\n# predictions = [classify(x) for x in preds]\n\n# results = pd.DataFrame({'id_code':test['id_code'], 'diagnosis':predictions})\n# results['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])\n\ntest_generator.reset()\nstep_test = test_generator.n//test_generator.batch_size\npreds = model.predict_generator(test_generator, steps=step_test)\npredictions = [np.argmax(pred) for pred in preds]\n\nfilenames = test_generator.filenames\nresults = pd.DataFrame({'id_code':filenames, 'diagnosis':predictions})\nresults['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])","metadata":{"execution":{"iopub.status.busy":"2024-04-30T15:55:10.571966Z","iopub.execute_input":"2024-04-30T15:55:10.572319Z","iopub.status.idle":"2024-04-30T16:07:18.81302Z","shell.execute_reply.started":"2024-04-30T15:55:10.572258Z","shell.execute_reply":"2024-04-30T16:07:18.812356Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# # Cleaning created directories\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)","metadata":{"execution":{"iopub.status.busy":"2024-04-30T16:12:47.523613Z","iopub.execute_input":"2024-04-30T16:12:47.523926Z","iopub.status.idle":"2024-04-30T16:12:47.787494Z","shell.execute_reply.started":"2024-04-30T16:12:47.52388Z","shell.execute_reply":"2024-04-30T16:12:47.786868Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = plt.subplots(sharex='col', figsize=(24, 8.7))\nsns.countplot(x=\"diagnosis\", data=results, palette=\"GnBu_d\").set_title('Test')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-04-30T16:12:49.692719Z","iopub.execute_input":"2024-04-30T16:12:49.692998Z","iopub.status.idle":"2024-04-30T16:12:49.918614Z","shell.execute_reply.started":"2024-04-30T16:12:49.692961Z","shell.execute_reply":"2024-04-30T16:12:49.917696Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"results.to_csv('submission.csv', index=False)\ndisplay(results.head())","metadata":{"execution":{"iopub.status.busy":"2024-04-30T16:12:52.494662Z","iopub.execute_input":"2024-04-30T16:12:52.494986Z","iopub.status.idle":"2024-04-30T16:12:52.517281Z","shell.execute_reply.started":"2024-04-30T16:12:52.494939Z","shell.execute_reply":"2024-04-30T16:12:52.516289Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_weights('../working/effNetB5cls_bs32_img224_fold3.h5')","metadata":{"execution":{"iopub.status.busy":"2024-04-30T16:12:56.47281Z","iopub.execute_input":"2024-04-30T16:12:56.473137Z","iopub.status.idle":"2024-04-30T16:22:02.797622Z","shell.execute_reply.started":"2024-04-30T16:12:56.473086Z","shell.execute_reply":"2024-04-30T16:22:02.796674Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# FOLD_4","metadata":{}},{"cell_type":"code","source":"import os\nimport sys\nimport cv2\nimport shutil\nimport random\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom tensorflow import set_random_seed\nfrom sklearn.utils import class_weight\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import confusion_matrix, cohen_kappa_score\nfrom keras import backend as K\nfrom keras.models import Model\nfrom keras.utils import to_categorical\nfrom keras import optimizers, applications\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.layers import Dense, Dropout, GlobalAveragePooling2D, Input\nfrom keras.callbacks import EarlyStopping, ReduceLROnPlateau, Callback, LearningRateScheduler\n\ndef seed_everything(seed=0):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    set_random_seed(0)\n\nseed = 0\nseed_everything(seed)\n%matplotlib inline\nsns.set(style=\"whitegrid\")\nwarnings.filterwarnings(\"ignore\")\nsys.path.append(os.path.abspath('../input/efficientnet/efficientnet-master/efficientnet-master/'))\nfrom efficientnet import *","metadata":{"execution":{"iopub.status.busy":"2024-04-30T23:58:42.487094Z","iopub.execute_input":"2024-04-30T23:58:42.487371Z","iopub.status.idle":"2024-04-30T23:58:47.477419Z","shell.execute_reply.started":"2024-04-30T23:58:42.487329Z","shell.execute_reply":"2024-04-30T23:58:47.476732Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fold_set = pd.read_csv('/kaggle/input/5-fold/5-fold.csv')\nX_train = fold_set[fold_set['fold_1'] == 'train']\nX_val = fold_set[fold_set['fold_1'] == 'validation']\ntest = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\nprint('Number of train samples: ', X_train.shape[0])\nprint('Number of validation samples: ', X_val.shape[0])\nprint('Number of test samples: ', test.shape[0])\n\n# Preprocecss data\nX_train[\"id_code\"] = X_train[\"id_code\"].apply(lambda x: x + \".png\")\nX_val[\"id_code\"] = X_val[\"id_code\"].apply(lambda x: x + \".png\")\ntest[\"id_code\"] = test[\"id_code\"].apply(lambda x: x + \".png\")\nX_train[\"diagnosis\"] = X_train[\"diagnosis\"].astype(\"str\")\nX_val[\"diagnosis\"] = X_val[\"diagnosis\"].astype(\"str\")\ndisplay(X_train.head())","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:02:05.375367Z","iopub.execute_input":"2024-05-01T00:02:05.375729Z","iopub.status.idle":"2024-05-01T00:02:05.616832Z","shell.execute_reply.started":"2024-05-01T00:02:05.375672Z","shell.execute_reply":"2024-05-01T00:02:05.616115Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Model parameters\nFACTOR = 4\nBATCH_SIZE = 8 * FACTOR\nEPOCHS = 20\nWARMUP_EPOCHS = 5\nLEARNING_RATE = 1e-4 * FACTOR\nWARMUP_LEARNING_RATE = 1e-3 * FACTOR\nHEIGHT = 224\nWIDTH = 224\nCHANNELS = 3\nES_PATIENCE = 5\nRLROP_PATIENCE = 3\nDECAY_DROP = 0.5\nLR_WARMUP_EPOCHS_1st = 2\nLR_WARMUP_EPOCHS_2nd = 5\nSTEP_SIZE = len(X_train) // BATCH_SIZE\nTOTAL_STEPS_1st = WARMUP_EPOCHS * STEP_SIZE\nTOTAL_STEPS_2nd = EPOCHS * STEP_SIZE\nWARMUP_STEPS_1st = LR_WARMUP_EPOCHS_1st * STEP_SIZE\nWARMUP_STEPS_2nd = LR_WARMUP_EPOCHS_2nd * STEP_SIZE","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:02:07.581429Z","iopub.execute_input":"2024-05-01T00:02:07.581721Z","iopub.status.idle":"2024-05-01T00:02:07.588803Z","shell.execute_reply.started":"2024-05-01T00:02:07.581678Z","shell.execute_reply":"2024-05-01T00:02:07.58791Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# train_base_path = '../input/aptos2019-blindness-detection/train_images/'\n# test_base_path = '../input/aptos2019-blindness-detection/test_images/'\n# train_dest_path = 'base_dir/train_images/'\n# validation_dest_path = 'base_dir/validation_images/'\n# test_dest_path =  'base_dir/test_images/'\n\n# # Making sure directories don't exist\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)\n    \n# # Creating train, validation and test directories\n# os.makedirs(train_dest_path)\n# os.makedirs(validation_dest_path)\n# os.makedirs(test_dest_path)\n\n# def crop_image(img, tol=7):\n#     if img.ndim ==2:\n#         mask = img>tol\n#         return img[np.ix_(mask.any(1),mask.any(0))]\n#     elif img.ndim==3:\n#         gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)\n#         mask = gray_img>tol\n#         check_shape = img[:,:,0][np.ix_(mask.any(1),mask.any(0))].shape[0]\n#         if (check_shape == 0): # image is too dark so that we crop out everything,\n#             return img # return original image\n#         else:\n#             img1=img[:,:,0][np.ix_(mask.any(1),mask.any(0))]\n#             img2=img[:,:,1][np.ix_(mask.any(1),mask.any(0))]\n#             img3=img[:,:,2][np.ix_(mask.any(1),mask.any(0))]\n#             img = np.stack([img1,img2,img3],axis=-1)\n            \n#         return img\n\n# def circle_crop(img):\n#     img = crop_image(img)\n\n#     height, width, depth = img.shape\n#     largest_side = np.max((height, width))\n#     img = cv2.resize(img, (largest_side, largest_side))\n\n#     height, width, depth = img.shape\n\n#     x = width//2\n#     y = height//2\n#     r = np.amin((x, y))\n\n#     circle_img = np.zeros((height, width), np.uint8)\n#     cv2.circle(circle_img, (x, y), int(r), 1, thickness=-1)\n#     img = cv2.bitwise_and(img, img, mask=circle_img)\n#     img = crop_image(img)\n\n#     return img\n    \n# def preprocess_image(base_path, save_path, image_id, HEIGHT, WIDTH, sigmaX=10):\n#     image = cv2.imread(base_path + image_id)\n#     image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n#     image = circle_crop(image)\n#     image = cv2.resize(image, (HEIGHT, WIDTH))\n#     image = cv2.addWeighted(image, 4, cv2.GaussianBlur(image, (0,0), sigmaX), -4 , 128)\n#     cv2.imwrite(save_path + image_id, image)\n    \n# # Pre-procecss train set\n# for i, image_id in enumerate(X_train['id_code']):\n#     preprocess_image(train_base_path, train_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss validation set\n# for i, image_id in enumerate(X_val['id_code']):\n#     preprocess_image(train_base_path, validation_dest_path, image_id, HEIGHT, WIDTH)\n    \n# # Pre-procecss test set\n# for i, image_id in enumerate(test['id_code']):\n#     preprocess_image(test_base_path, test_dest_path, image_id, HEIGHT, WIDTH)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:02:09.958098Z","iopub.execute_input":"2024-05-01T00:02:09.958586Z","iopub.status.idle":"2024-05-01T00:24:54.9682Z","shell.execute_reply.started":"2024-05-01T00:02:09.95836Z","shell.execute_reply":"2024-05-01T00:24:54.967342Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datagen=ImageDataGenerator(rescale=1./255, \n                           rotation_range=360,\n                           horizontal_flip=True,\n                           vertical_flip=True)\n\ntrain_generator=datagen.flow_from_dataframe(\n                        dataframe=X_train,\n                        directory=\"/kaggle/input/data-main-1/fold1/base_dir_1/train_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\nvalid_generator=datagen.flow_from_dataframe(\n                        dataframe=X_val,\n                        directory=\"/kaggle/input/data-main-1/fold1/base_dir_1/validation_images\",\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"categorical\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\ntest_generator=datagen.flow_from_dataframe(  \n                       dataframe=test,\n                       directory=\"/kaggle/input/data-main-1/fold1/base_dir_1/test_images\",\n                       x_col=\"id_code\",\n                       batch_size=1,\n                       class_mode=None,\n                       shuffle=False,\n                       target_size=(HEIGHT, WIDTH),\n                       seed=seed)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:36:46.017266Z","iopub.execute_input":"2024-05-01T00:36:46.017587Z","iopub.status.idle":"2024-05-01T00:36:46.099816Z","shell.execute_reply.started":"2024-05-01T00:36:46.017545Z","shell.execute_reply":"2024-05-01T00:36:46.098879Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# def cosine_decay_with_warmup(global_step,\n#                              learning_rate_base,\n#                              total_steps,\n#                              warmup_learning_rate=0.0,\n#                              warmup_steps=0,\n#                              hold_base_rate_steps=0):\n#     \"\"\"\n#     Cosine decay schedule with warm up period.\n#     In this schedule, the learning rate grows linearly from warmup_learning_rate\n#     to learning_rate_base for warmup_steps, then transitions to a cosine decay\n#     schedule.\n#     :param global_step {int}: global step.\n#     :param learning_rate_base {float}: base learning rate.\n#     :param total_steps {int}: total number of training steps.\n#     :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#     :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#     :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#     :param global_step {int}: global step.\n#     :Returns : a float representing learning rate.\n#     :Raises ValueError: if warmup_learning_rate is larger than learning_rate_base, or if warmup_steps is larger than total_steps.\n#     \"\"\"\n\n#     if total_steps < warmup_steps:\n#         raise ValueError('total_steps must be larger or equal to warmup_steps.')\n#     learning_rate = 0.5 * learning_rate_base * (1 + np.cos(\n#         np.pi *\n#         (global_step - warmup_steps - hold_base_rate_steps\n#          ) / float(total_steps - warmup_steps - hold_base_rate_steps)))\n#     if hold_base_rate_steps > 0:\n#         learning_rate = np.where(global_step > warmup_steps + hold_base_rate_steps,\n#                                  learning_rate, learning_rate_base)\n#     if warmup_steps > 0:\n#         if learning_rate_base < warmup_learning_rate:\n#             raise ValueError('learning_rate_base must be larger or equal to warmup_learning_rate.')\n#         slope = (learning_rate_base - warmup_learning_rate) / warmup_steps\n#         warmup_rate = slope * global_step + warmup_learning_rate\n#         learning_rate = np.where(global_step < warmup_steps, warmup_rate,\n#                                  learning_rate)\n#     return np.where(global_step > total_steps, 0.0, learning_rate)\n\n\n# class WarmUpCosineDecayScheduler(Callback):\n#     \"\"\"Cosine decay with warmup learning rate scheduler\"\"\"\n\n#     def __init__(self,\n#                  learning_rate_base,\n#                  total_steps,\n#                  global_step_init=0,\n#                  warmup_learning_rate=0.0,\n#                  warmup_steps=0,\n#                  hold_base_rate_steps=0,\n#                  verbose=0):\n#         \"\"\"\n#         Constructor for cosine decay with warmup learning rate scheduler.\n#         :param learning_rate_base {float}: base learning rate.\n#         :param total_steps {int}: total number of training steps.\n#         :param global_step_init {int}: initial global step, e.g. from previous checkpoint.\n#         :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n#         :param warmup_steps {int}: number of warmup steps. (default: {0}).\n#         :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n#         :param verbose {int}: quiet, 1: update messages. (default: {0}).\n#         \"\"\"\n\n#         super(WarmUpCosineDecayScheduler, self).__init__()\n#         self.learning_rate_base = learning_rate_base\n#         self.total_steps = total_steps\n#         self.global_step = global_step_init\n#         self.warmup_learning_rate = warmup_learning_rate\n#         self.warmup_steps = warmup_steps\n#         self.hold_base_rate_steps = hold_base_rate_steps\n#         self.verbose = verbose\n#         self.learning_rates = []\n\n#     def on_batch_end(self, batch, logs=None):\n#         self.global_step = self.global_step + 1\n#         lr = K.get_value(self.model.optimizer.lr)\n#         self.learning_rates.append(lr)\n\n#     def on_batch_begin(self, batch, logs=None):\n#         lr = cosine_decay_with_warmup(global_step=self.global_step,\n#                                       learning_rate_base=self.learning_rate_base,\n#                                       total_steps=self.total_steps,\n#                                       warmup_learning_rate=self.warmup_learning_rate,\n#                                       warmup_steps=self.warmup_steps,\n#                                       hold_base_rate_steps=self.hold_base_rate_steps)\n#         K.set_value(self.model.optimizer.lr, lr)\n#         if self.verbose > 0:\n#             print('\\nBatch %02d: setting learning rate to %s.' % (self.global_step + 1, lr))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:36:49.142869Z","iopub.execute_input":"2024-05-01T00:36:49.143148Z","iopub.status.idle":"2024-05-01T00:36:49.162765Z","shell.execute_reply.started":"2024-05-01T00:36:49.143107Z","shell.execute_reply":"2024-05-01T00:36:49.161813Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df_path =  \"/kaggle/input/aptos2019-blindness-detection/train.csv\"\ntest_df_path = '/kaggle/input/aptos2019-blindness-detection/test.csv'\ntrain_img_path =  \"/kaggle/input/aptos2019-blindness-detection/train_images/\"\ntest_img_path =  '/kaggle/input/aptos2019-blindness-detection/test_images/'","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df = pd.read_csv(train_df_path)\n\ntrain_df['id_code'] = train_df['id_code'] + \".png\"\nprint(f\"Training images: {train_df.shape[0]}\")\ndisplay(train_df.head())\n\ntest_df = pd.read_csv(test_df_path)\n\ntest_df['id_code'] = test_df['id_code'] + \".png\"\nprint(f\"Testing Images: {test_df.shape[0]}\")\ndisplay(test_df.head())","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"n_classes = train_df['diagnosis'].nunique()\nprint(n_classes)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def create_model(input_shape, n_out):\n    input_tensor = Input(shape=input_shape)\n    base_model = EfficientNetB5(weights=None, \n                                include_top=False,\n                                input_tensor=input_tensor)\n    base_model.load_weights('../input/efficientnet-keras-weights-b0b5/efficientnet-b5_imagenet_1000_notop.h5')\n\n    x = GlobalAveragePooling2D()(base_model.output)\n    x = Dropout(0.5)(x)\n    x = Dense(2048, activation='relu')(x)\n    x = Dropout(0.5)(x)\n    final_output = Dense(n_out, activation='softmax', name='final_output')(x)\n    model = Model(input_tensor, final_output)\n    \n    return model","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:36:52.839316Z","iopub.execute_input":"2024-05-01T00:36:52.839621Z","iopub.status.idle":"2024-05-01T00:36:52.845451Z","shell.execute_reply.started":"2024-05-01T00:36:52.839578Z","shell.execute_reply":"2024-05-01T00:36:52.844711Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = create_model(input_shape=(HEIGHT, WIDTH, CHANNELS), n_out=n_classes)\n\nfor layer in model.layers:\n    layer.trainable = False\n\nfor i in range(-2, 0):\n    model.layers[i].trainable = True\n\n# cosine_lr_1st = WarmUpCosineDecayScheduler(learning_rate_base=WARMUP_LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_1st,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_1st,\n#                                            hold_base_rate_steps=(2 * STEP_SIZE))\n\n# metric_list = [\"accuracy\"]\n# callback_list = [cosine_lr_1st]\n# optimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:36:55.306584Z","iopub.execute_input":"2024-05-01T00:36:55.306959Z","iopub.status.idle":"2024-05-01T00:37:23.067592Z","shell.execute_reply.started":"2024-05-01T00:36:55.306898Z","shell.execute_reply":"2024-05-01T00:37:23.066567Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"STEP_SIZE_TRAIN = train_generator.n//train_generator.batch_size\nSTEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n\nmetric_list = [\"accuracy\"]\noptimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\nmodel.compile (optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])\n\nhistory_warmup = model.fit_generator(generator=train_generator,\n                                     steps_per_epoch=STEP_SIZE_TRAIN,\n                                     validation_data=valid_generator,\n                                     validation_steps=STEP_SIZE_VALID,\n                                     epochs=WARMUP_EPOCHS,\n#                                      callbacks=callback_list,\n                                     verbose=1).history","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:37:37.426345Z","iopub.execute_input":"2024-05-01T00:37:37.426698Z","iopub.status.idle":"2024-05-01T00:40:53.862884Z","shell.execute_reply.started":"2024-05-01T00:37:37.426647Z","shell.execute_reply":"2024-05-01T00:40:53.86207Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for layer in model.layers:\n    layer.trainable = True\n\n# es = EarlyStopping(monitor='val_loss', mode='min', patience=ES_PATIENCE, restore_best_weights=True, verbose=1)\n# cosine_lr_2nd = WarmUpCosineDecayScheduler(learning_rate_base=LEARNING_RATE,\n#                                            total_steps=TOTAL_STEPS_2nd,\n#                                            warmup_learning_rate=0.0,\n#                                            warmup_steps=WARMUP_STEPS_2nd,\n#                                            hold_base_rate_steps=(3 * STEP_SIZE))\n\n# callback_list = [es, cosine_lr_2nd]\n# optimizer = optimizers.Adam(lr=LEARNING_RATE)\n# model.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\n# model.summary()\nrlrop = ReduceLROnPlateau(monitor='val_loss', mode='min', patience=3, factor=0.5, min_lr=1e-6, verbose=1)\n\ncallback_list = [rlrop]\noptimizer = optimizers.Adam(lr=LEARNING_RATE)\nmodel.compile(optimizer=optimizer, loss=\"categorical_crossentropy\",  metrics=[\"accuracy\"])\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:41:12.833636Z","iopub.execute_input":"2024-05-01T00:41:12.833937Z","iopub.status.idle":"2024-05-01T00:41:13.064294Z","shell.execute_reply.started":"2024-05-01T00:41:12.833893Z","shell.execute_reply":"2024-05-01T00:41:13.063527Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"history = model.fit_generator(generator=train_generator,\n                              steps_per_epoch=STEP_SIZE_TRAIN,\n                              validation_data=valid_generator,\n                              validation_steps=STEP_SIZE_VALID,\n                              epochs=EPOCHS,\n                              callbacks=callback_list,\n                              verbose=1).history","metadata":{"execution":{"iopub.status.busy":"2024-05-01T00:41:27.129633Z","iopub.execute_input":"2024-05-01T00:41:27.130183Z","iopub.status.idle":"2024-05-01T01:07:06.228585Z","shell.execute_reply.started":"2024-05-01T00:41:27.129988Z","shell.execute_reply":"2024-05-01T01:07:06.227218Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 6))\n\n# ax1.plot(cosine_lr_1st.learning_rates)\n# ax1.set_title('Warm up learning rates')\n\n# ax2.plot(cosine_lr_2nd.learning_rates)\n# ax2.set_title('Fine-tune learning rates')\n\n# plt.xlabel('Steps')\n# plt.ylabel('Learning rate')\n# sns.despine()\n# plt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:12:51.47616Z","iopub.execute_input":"2024-05-01T01:12:51.476543Z","iopub.status.idle":"2024-05-01T01:12:51.876821Z","shell.execute_reply.started":"2024-05-01T01:12:51.476476Z","shell.execute_reply":"2024-05-01T01:12:51.876078Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 14))\n\nax1.plot(history['loss'], label='Train loss')\nax1.plot(history['val_loss'], label='Validation loss')\nax1.legend(loc='best')\nax1.set_title('Loss')\n\nax2.plot(history['acc'], label='Train accuracy')\nax2.plot(history['val_acc'], label='Validation accuracy')\nax2.legend(loc='best')\nax2.set_title('Accuracy')\n\nplt.xlabel('Epochs')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:12:54.298926Z","iopub.execute_input":"2024-05-01T01:12:54.299391Z","iopub.status.idle":"2024-05-01T01:12:54.933117Z","shell.execute_reply.started":"2024-05-01T01:12:54.299303Z","shell.execute_reply":"2024-05-01T01:12:54.932201Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# # Create empty arays to keep the predictions and labels\n# df_preds = pd.DataFrame(columns=['label', 'pred', 'set'])\n# train_generator.reset()\n# valid_generator.reset()\n\n# # Add train predictions and labels\n# for i in range(STEP_SIZE_TRAIN + 1):\n#     im, lbl = next(train_generator)\n#     preds = model.predict(im, batch_size=train_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'train']\n\n# # Add validation predictions and labels\n# for i in range(STEP_SIZE_VALID + 1):\n#     im, lbl = next(valid_generator)\n#     preds = model.predict(im, batch_size=valid_generator.batch_size)\n#     for index in range(len(preds)):\n#         df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'validation']\n\n# df_preds['label'] = df_preds['label'].astype('int')\n\nlastFullTrainPred = np.empty((0, n_classes))\nlastFullTrainLabels = np.empty((0, n_classes))\nlastFullValPred = np.empty((0, n_classes))\nlastFullValLabels = np.empty((0, n_classes))\n\n# Add train predictions and labels\nfor i in range(STEP_SIZE_TRAIN+1):\n    im, lbl = next(train_generator)\n    scores = model.predict(im, batch_size=train_generator.batch_size)\n    lastFullTrainPred = np.append(lastFullTrainPred, scores, axis=0)\n    lastFullTrainLabels = np.append(lastFullTrainLabels, lbl, axis=0)\n\n# Add validation predictions and labels\nfor i in range(STEP_SIZE_VALID+1):\n    im, lbl = next(valid_generator)\n    scores = model.predict(im, batch_size=valid_generator.batch_size)\n    lastFullValPred = np.append(lastFullValPred, scores, axis=0)\n    lastFullValLabels = np.append(lastFullValLabels, lbl, axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:12:57.442258Z","iopub.execute_input":"2024-05-01T01:12:57.442591Z","iopub.status.idle":"2024-05-01T01:14:11.099648Z","shell.execute_reply.started":"2024-05-01T01:12:57.442541Z","shell.execute_reply":"2024-05-01T01:14:11.09899Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# def classify(x):\n#     if x < 0.5:\n#         return 0\n#     elif x < 1.5:\n#         return 1\n#     elif x < 2.5:\n#         return 2\n#     elif x < 3.5:\n#         return 3\n#     return 4\n\n# # Classify predictions\n# df_preds['predictions'] = df_preds['pred'].apply(lambda x: classify(x))\n\n# train_preds = df_preds[df_preds['set'] == 'train']\n# validation_preds = df_preds[df_preds['set'] == 'validation']\n\ntrain_preds = [np.argmax(pred) for pred in lastFullTrainPred]\ntrain_labels = [np.argmax(label) for label in lastFullTrainLabels]\nvalidation_preds = [np.argmax(pred) for pred in lastFullValPred]\nvalidation_labels = [np.argmax(label) for label in lastFullValLabels]","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:19:43.040021Z","iopub.execute_input":"2024-05-01T01:19:43.040348Z","iopub.status.idle":"2024-05-01T01:19:43.058095Z","shell.execute_reply.started":"2024-05-01T01:19:43.040304Z","shell.execute_reply":"2024-05-01T01:19:43.057415Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(1, 2, sharex='col', figsize=(24, 7))\nlabels = ['0 - No DR', '1 - Mild', '2 - Moderate', '3 - Severe', '4 - Proliferative DR']\ntrain_cnf_matrix = confusion_matrix(train_labels, train_preds)\nvalidation_cnf_matrix = confusion_matrix(validation_labels, validation_preds)\n\ntrain_cnf_matrix_norm = train_cnf_matrix.astype('float') / train_cnf_matrix.sum(axis=1)[:, np.newaxis]\nvalidation_cnf_matrix_norm = validation_cnf_matrix.astype('float') / validation_cnf_matrix.sum(axis=1)[:, np.newaxis]\n\ntrain_df_cm = pd.DataFrame(train_cnf_matrix_norm, index=labels, columns=labels)\nvalidation_df_cm = pd.DataFrame(validation_cnf_matrix_norm, index=labels, columns=labels)\n\nsns.heatmap(train_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax1).set_title('Train')\nsns.heatmap(validation_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax2).set_title('Validation')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:19:46.319247Z","iopub.execute_input":"2024-05-01T01:19:46.319616Z","iopub.status.idle":"2024-05-01T01:19:46.95272Z","shell.execute_reply.started":"2024-05-01T01:19:46.319562Z","shell.execute_reply":"2024-05-01T01:19:46.951768Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"Train Cohen Kappa score: %.3f\"% cohen_kappa_score(train_preds, train_labels, weights='quadratic'))\n\nprint(\"Validation   Cohen Kappa score: %.3f\" % cohen_kappa_score(validation_preds, validation_labels, weights='quadratic'))\n\nprint(\"Complete set Cohen Kappa score: %.3f\" % cohen_kappa_score(np.append(train_preds, validation_preds), np.append(train_labels, validation_labels), weights='quadratic'))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:19:50.704566Z","iopub.execute_input":"2024-05-01T01:19:50.704919Z","iopub.status.idle":"2024-05-01T01:19:50.728722Z","shell.execute_reply.started":"2024-05-01T01:19:50.704871Z","shell.execute_reply":"2024-05-01T01:19:50.727995Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# def apply_tta(model, generator, steps=10):\n#     step_size = generator.n//generator.batch_size\n#     preds_tta = []\n#     for i in range(steps):\n#         generator.reset()\n#         preds = model.predict_generator(generator, steps=step_size)\n#         preds_tta.append(preds)\n\n#     return np.mean(preds_tta, axis=0)\n\n# preds = apply_tta(model, test_generator)\n# predictions = [classify(x) for x in preds]\n\n# results = pd.DataFrame({'id_code':test['id_code'], 'diagnosis':predictions})\n# results['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])\n\ntest_generator.reset()\nstep_test = test_generator.n//test_generator.batch_size\npreds = model.predict_generator(test_generator, steps=step_test)\npredictions = [np.argmax(pred) for pred in preds]\n\nfilenames = test_generator.filenames\nresults = pd.DataFrame({'id_code':filenames, 'diagnosis':predictions})\nresults['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:19:52.556213Z","iopub.execute_input":"2024-05-01T01:19:52.556535Z","iopub.status.idle":"2024-05-01T01:30:31.895283Z","shell.execute_reply.started":"2024-05-01T01:19:52.556492Z","shell.execute_reply":"2024-05-01T01:30:31.894574Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# # Cleaning created directories\n# if os.path.exists(train_dest_path):\n#     shutil.rmtree(train_dest_path)\n# if os.path.exists(validation_dest_path):\n#     shutil.rmtree(validation_dest_path)\n# if os.path.exists(test_dest_path):\n#     shutil.rmtree(test_dest_path)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:37:32.354468Z","iopub.execute_input":"2024-05-01T01:37:32.35483Z","iopub.status.idle":"2024-05-01T01:37:32.619021Z","shell.execute_reply.started":"2024-05-01T01:37:32.354769Z","shell.execute_reply":"2024-05-01T01:37:32.618388Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = plt.subplots(sharex='col', figsize=(24, 8.7))\nsns.countplot(x=\"diagnosis\", data=results).set_title('Test')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:37:34.342638Z","iopub.execute_input":"2024-05-01T01:37:34.343063Z","iopub.status.idle":"2024-05-01T01:37:34.708422Z","shell.execute_reply.started":"2024-05-01T01:37:34.342993Z","shell.execute_reply":"2024-05-01T01:37:34.707544Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"results.to_csv('submission.csv', index=False)\ndisplay(results.head())","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:37:36.908815Z","iopub.execute_input":"2024-05-01T01:37:36.909111Z","iopub.status.idle":"2024-05-01T01:37:37.068116Z","shell.execute_reply.started":"2024-05-01T01:37:36.909068Z","shell.execute_reply":"2024-05-01T01:37:37.067218Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_weights('../working/effNetB5cls_bs32_img224_fold4.h5')","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:37:39.069282Z","iopub.execute_input":"2024-05-01T01:37:39.069645Z","iopub.status.idle":"2024-05-01T01:40:18.58719Z","shell.execute_reply.started":"2024-05-01T01:37:39.069582Z","shell.execute_reply":"2024-05-01T01:40:18.586201Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"FOLD_5","metadata":{}},{"cell_type":"code","source":"import os\nimport sys\nimport cv2\nimport shutil\nimport random\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom tensorflow import set_random_seed\nfrom sklearn.utils import class_weight\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import confusion_matrix, cohen_kappa_score\nfrom keras import backend as K\nfrom keras.models import Model\nfrom keras.utils import to_categorical\nfrom keras import optimizers, applications\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.layers import Dense, Dropout, GlobalAveragePooling2D, Input\nfrom keras.callbacks import EarlyStopping, ReduceLROnPlateau, Callback, LearningRateScheduler\n\ndef seed_everything(seed=0):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    set_random_seed(0)\n\nseed = 0\nseed_everything(seed)\n%matplotlib inline\nsns.set(style=\"whitegrid\")\nwarnings.filterwarnings(\"ignore\")\nsys.path.append(os.path.abspath('../input/efficientnet/efficientnet-master/efficientnet-master/'))\nfrom efficientnet import *","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fold_set = pd.read_csv('/kaggle/input/5-fold/5-fold.csv')\nX_train = fold_set[fold_set['fold_4'] == 'train']\nX_val = fold_set[fold_set['fold_4'] == 'validation']\ntest = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\nprint('Number of train samples: ', X_train.shape[0])\nprint('Number of validation samples: ', X_val.shape[0])\nprint('Number of test samples: ', test.shape[0])\n\n# Preprocecss data\nX_train[\"id_code\"] = X_train[\"id_code\"].apply(lambda x: x + \".png\")\nX_val[\"id_code\"] = X_val[\"id_code\"].apply(lambda x: x + \".png\")\ntest[\"id_code\"] = test[\"id_code\"].apply(lambda x: x + \".png\")\ndisplay(X_train.head())","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:43:58.230989Z","iopub.execute_input":"2024-05-01T01:43:58.231322Z","iopub.status.idle":"2024-05-01T01:43:59.210807Z","shell.execute_reply.started":"2024-05-01T01:43:58.231275Z","shell.execute_reply":"2024-05-01T01:43:59.210053Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Model parameters\nFACTOR = 4\nBATCH_SIZE = 8 * FACTOR\nEPOCHS = 20\nWARMUP_EPOCHS = 5\nLEARNING_RATE = 1e-4 * FACTOR\nWARMUP_LEARNING_RATE = 1e-3 * FACTOR\nHEIGHT = 224\nWIDTH = 224\nCHANNELS = 3\nES_PATIENCE = 5\nRLROP_PATIENCE = 3\nDECAY_DROP = 0.5\nLR_WARMUP_EPOCHS_1st = 2\nLR_WARMUP_EPOCHS_2nd = 5\nSTEP_SIZE = len(X_train) // BATCH_SIZE\nTOTAL_STEPS_1st = WARMUP_EPOCHS * STEP_SIZE\nTOTAL_STEPS_2nd = EPOCHS * STEP_SIZE\nWARMUP_STEPS_1st = LR_WARMUP_EPOCHS_1st * STEP_SIZE\nWARMUP_STEPS_2nd = LR_WARMUP_EPOCHS_2nd * STEP_SIZE","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:44:00.919821Z","iopub.execute_input":"2024-05-01T01:44:00.920119Z","iopub.status.idle":"2024-05-01T01:44:00.927784Z","shell.execute_reply.started":"2024-05-01T01:44:00.920077Z","shell.execute_reply":"2024-05-01T01:44:00.926765Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_base_path = '../input/aptos2019-blindness-detection/train_images/'\ntest_base_path = '../input/aptos2019-blindness-detection/test_images/'\ntrain_dest_path = 'base_dir/train_images/'\nvalidation_dest_path = 'base_dir/validation_images/'\ntest_dest_path =  'base_dir/test_images/'\n\n# Making sure directories don't exist\nif os.path.exists(train_dest_path):\n    shutil.rmtree(train_dest_path)\nif os.path.exists(validation_dest_path):\n    shutil.rmtree(validation_dest_path)\nif os.path.exists(test_dest_path):\n    shutil.rmtree(test_dest_path)\n    \n# Creating train, validation and test directories\nos.makedirs(train_dest_path)\nos.makedirs(validation_dest_path)\nos.makedirs(test_dest_path)\n\ndef crop_image(img, tol=7):\n    if img.ndim ==2:\n        mask = img>tol\n        return img[np.ix_(mask.any(1),mask.any(0))]\n    elif img.ndim==3:\n        gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)\n        mask = gray_img>tol\n        check_shape = img[:,:,0][np.ix_(mask.any(1),mask.any(0))].shape[0]\n        if (check_shape == 0): # image is too dark so that we crop out everything,\n            return img # return original image\n        else:\n            img1=img[:,:,0][np.ix_(mask.any(1),mask.any(0))]\n            img2=img[:,:,1][np.ix_(mask.any(1),mask.any(0))]\n            img3=img[:,:,2][np.ix_(mask.any(1),mask.any(0))]\n            img = np.stack([img1,img2,img3],axis=-1)\n            \n        return img\n\ndef circle_crop(img):\n    img = crop_image(img)\n\n    height, width, depth = img.shape\n    largest_side = np.max((height, width))\n    img = cv2.resize(img, (largest_side, largest_side))\n\n    height, width, depth = img.shape\n\n    x = width//2\n    y = height//2\n    r = np.amin((x, y))\n\n    circle_img = np.zeros((height, width), np.uint8)\n    cv2.circle(circle_img, (x, y), int(r), 1, thickness=-1)\n    img = cv2.bitwise_and(img, img, mask=circle_img)\n    img = crop_image(img)\n\n    return img\n    \ndef preprocess_image(base_path, save_path, image_id, HEIGHT, WIDTH, sigmaX=10):\n    image = cv2.imread(base_path + image_id)\n    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n    image = circle_crop(image)\n    image = cv2.resize(image, (HEIGHT, WIDTH))\n    image = cv2.addWeighted(image, 4, cv2.GaussianBlur(image, (0,0), sigmaX), -4 , 128)\n    cv2.imwrite(save_path + image_id, image)\n    \n# Pre-procecss train set\nfor i, image_id in enumerate(X_train['id_code']):\n    preprocess_image(train_base_path, train_dest_path, image_id, HEIGHT, WIDTH)\n    \n# Pre-procecss validation set\nfor i, image_id in enumerate(X_val['id_code']):\n    preprocess_image(train_base_path, validation_dest_path, image_id, HEIGHT, WIDTH)\n    \n# Pre-procecss test set\nfor i, image_id in enumerate(test['id_code']):\n    preprocess_image(test_base_path, test_dest_path, image_id, HEIGHT, WIDTH)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T01:44:02.664542Z","iopub.execute_input":"2024-05-01T01:44:02.664847Z","iopub.status.idle":"2024-05-01T02:02:22.194964Z","shell.execute_reply.started":"2024-05-01T01:44:02.664804Z","shell.execute_reply":"2024-05-01T02:02:22.194233Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datagen=ImageDataGenerator(rescale=1./255, \n                           rotation_range=360,\n                           horizontal_flip=True,\n                           vertical_flip=True)\n\ntrain_generator=datagen.flow_from_dataframe(\n                        dataframe=X_train,\n                        directory=train_dest_path,\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"raw\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\nvalid_generator=datagen.flow_from_dataframe(\n                        dataframe=X_val,\n                        directory=validation_dest_path,\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"raw\",\n                        batch_size=BATCH_SIZE,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\ntest_generator=datagen.flow_from_dataframe(  \n                       dataframe=test,\n                       directory=test_dest_path,\n                       x_col=\"id_code\",\n                       batch_size=1,\n                       class_mode=None,\n                       shuffle=False,\n                       target_size=(HEIGHT, WIDTH),\n                       seed=seed)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:08:15.985433Z","iopub.execute_input":"2024-05-01T02:08:15.985754Z","iopub.status.idle":"2024-05-01T02:08:16.06421Z","shell.execute_reply.started":"2024-05-01T02:08:15.985711Z","shell.execute_reply":"2024-05-01T02:08:16.063462Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def cosine_decay_with_warmup(global_step,\n                             learning_rate_base,\n                             total_steps,\n                             warmup_learning_rate=0.0,\n                             warmup_steps=0,\n                             hold_base_rate_steps=0):\n    \"\"\"\n    Cosine decay schedule with warm up period.\n    In this schedule, the learning rate grows linearly from warmup_learning_rate\n    to learning_rate_base for warmup_steps, then transitions to a cosine decay\n    schedule.\n    :param global_step {int}: global step.\n    :param learning_rate_base {float}: base learning rate.\n    :param total_steps {int}: total number of training steps.\n    :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n    :param warmup_steps {int}: number of warmup steps. (default: {0}).\n    :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n    :param global_step {int}: global step.\n    :Returns : a float representing learning rate.\n    :Raises ValueError: if warmup_learning_rate is larger than learning_rate_base, or if warmup_steps is larger than total_steps.\n    \"\"\"\n\n    if total_steps < warmup_steps:\n        raise ValueError('total_steps must be larger or equal to warmup_steps.')\n    learning_rate = 0.5 * learning_rate_base * (1 + np.cos(\n        np.pi *\n        (global_step - warmup_steps - hold_base_rate_steps\n         ) / float(total_steps - warmup_steps - hold_base_rate_steps)))\n    if hold_base_rate_steps > 0:\n        learning_rate = np.where(global_step > warmup_steps + hold_base_rate_steps,\n                                 learning_rate, learning_rate_base)\n    if warmup_steps > 0:\n        if learning_rate_base < warmup_learning_rate:\n            raise ValueError('learning_rate_base must be larger or equal to warmup_learning_rate.')\n        slope = (learning_rate_base - warmup_learning_rate) / warmup_steps\n        warmup_rate = slope * global_step + warmup_learning_rate\n        learning_rate = np.where(global_step < warmup_steps, warmup_rate,\n                                 learning_rate)\n    return np.where(global_step > total_steps, 0.0, learning_rate)\n\n\nclass WarmUpCosineDecayScheduler(Callback):\n    \"\"\"Cosine decay with warmup learning rate scheduler\"\"\"\n\n    def __init__(self,\n                 learning_rate_base,\n                 total_steps,\n                 global_step_init=0,\n                 warmup_learning_rate=0.0,\n                 warmup_steps=0,\n                 hold_base_rate_steps=0,\n                 verbose=0):\n        \"\"\"\n        Constructor for cosine decay with warmup learning rate scheduler.\n        :param learning_rate_base {float}: base learning rate.\n        :param total_steps {int}: total number of training steps.\n        :param global_step_init {int}: initial global step, e.g. from previous checkpoint.\n        :param warmup_learning_rate {float}: initial learning rate for warm up. (default: {0.0}).\n        :param warmup_steps {int}: number of warmup steps. (default: {0}).\n        :param hold_base_rate_steps {int}: Optional number of steps to hold base learning rate before decaying. (default: {0}).\n        :param verbose {int}: quiet, 1: update messages. (default: {0}).\n        \"\"\"\n\n        super(WarmUpCosineDecayScheduler, self).__init__()\n        self.learning_rate_base = learning_rate_base\n        self.total_steps = total_steps\n        self.global_step = global_step_init\n        self.warmup_learning_rate = warmup_learning_rate\n        self.warmup_steps = warmup_steps\n        self.hold_base_rate_steps = hold_base_rate_steps\n        self.verbose = verbose\n        self.learning_rates = []\n\n    def on_batch_end(self, batch, logs=None):\n        self.global_step = self.global_step + 1\n        lr = K.get_value(self.model.optimizer.lr)\n        self.learning_rates.append(lr)\n\n    def on_batch_begin(self, batch, logs=None):\n        lr = cosine_decay_with_warmup(global_step=self.global_step,\n                                      learning_rate_base=self.learning_rate_base,\n                                      total_steps=self.total_steps,\n                                      warmup_learning_rate=self.warmup_learning_rate,\n                                      warmup_steps=self.warmup_steps,\n                                      hold_base_rate_steps=self.hold_base_rate_steps)\n        K.set_value(self.model.optimizer.lr, lr)\n        if self.verbose > 0:\n            print('\\nBatch %02d: setting learning rate to %s.' % (self.global_step + 1, lr))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:08:24.042482Z","iopub.execute_input":"2024-05-01T02:08:24.042777Z","iopub.status.idle":"2024-05-01T02:08:24.061343Z","shell.execute_reply.started":"2024-05-01T02:08:24.042734Z","shell.execute_reply":"2024-05-01T02:08:24.060571Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def create_model(input_shape):\n    input_tensor = Input(shape=input_shape)\n    base_model = EfficientNetB5(weights=None, \n                                include_top=False,\n                                input_tensor=input_tensor)\n    base_model.load_weights('../input/efficientnet-keras-weights-b0b5/efficientnet-b5_imagenet_1000_notop.h5')\n\n    x = GlobalAveragePooling2D()(base_model.output)\n    final_output = Dense(1, activation='linear', name='final_output')(x)\n    model = Model(input_tensor, final_output)\n    \n    return model","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:08:40.756946Z","iopub.execute_input":"2024-05-01T02:08:40.757239Z","iopub.status.idle":"2024-05-01T02:08:40.763533Z","shell.execute_reply.started":"2024-05-01T02:08:40.757197Z","shell.execute_reply":"2024-05-01T02:08:40.762674Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = create_model(input_shape=(HEIGHT, WIDTH, CHANNELS))\n\nfor layer in model.layers:\n    layer.trainable = False\n\nfor i in range(-2, 0):\n    model.layers[i].trainable = True\n\ncosine_lr_1st = WarmUpCosineDecayScheduler(learning_rate_base=WARMUP_LEARNING_RATE,\n                                           total_steps=TOTAL_STEPS_1st,\n                                           warmup_learning_rate=0.0,\n                                           warmup_steps=WARMUP_STEPS_1st,\n                                           hold_base_rate_steps=(2 * STEP_SIZE))\n\nmetric_list = [\"accuracy\"]\ncallback_list = [cosine_lr_1st]\noptimizer = optimizers.Adam(lr=WARMUP_LEARNING_RATE)\nmodel.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:08:48.179542Z","iopub.execute_input":"2024-05-01T02:08:48.179831Z","iopub.status.idle":"2024-05-01T02:09:19.128154Z","shell.execute_reply.started":"2024-05-01T02:08:48.179791Z","shell.execute_reply":"2024-05-01T02:09:19.127402Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"STEP_SIZE_TRAIN = train_generator.n//train_generator.batch_size\nSTEP_SIZE_VALID = valid_generator.n//valid_generator.batch_size\n\nhistory_warmup = model.fit_generator(generator=train_generator,\n                                     steps_per_epoch=STEP_SIZE_TRAIN,\n                                     validation_data=valid_generator,\n                                     validation_steps=STEP_SIZE_VALID,\n                                     epochs=WARMUP_EPOCHS,\n                                     callbacks=callback_list,\n                                     verbose=2).history","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:09:36.429335Z","iopub.execute_input":"2024-05-01T02:09:36.429655Z","iopub.status.idle":"2024-05-01T02:12:56.166422Z","shell.execute_reply.started":"2024-05-01T02:09:36.429611Z","shell.execute_reply":"2024-05-01T02:12:56.165135Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for layer in model.layers:\n    layer.trainable = True\n\nes = EarlyStopping(monitor='val_loss', mode='min', patience=ES_PATIENCE, restore_best_weights=True, verbose=1)\ncosine_lr_2nd = WarmUpCosineDecayScheduler(learning_rate_base=LEARNING_RATE,\n                                           total_steps=TOTAL_STEPS_2nd,\n                                           warmup_learning_rate=0.0,\n                                           warmup_steps=WARMUP_STEPS_2nd,\n                                           hold_base_rate_steps=(3 * STEP_SIZE))\n\ncallback_list = [es, cosine_lr_2nd]\noptimizer = optimizers.Adam(lr=LEARNING_RATE)\nmodel.compile(optimizer=optimizer, loss='mean_squared_error', metrics=metric_list)\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:21:50.916234Z","iopub.execute_input":"2024-05-01T02:21:50.916589Z","iopub.status.idle":"2024-05-01T02:21:51.157954Z","shell.execute_reply.started":"2024-05-01T02:21:50.916533Z","shell.execute_reply":"2024-05-01T02:21:51.157269Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"history = model.fit_generator(generator=train_generator,\n                              steps_per_epoch=STEP_SIZE_TRAIN,\n                              validation_data=valid_generator,\n                              validation_steps=STEP_SIZE_VALID,\n                              epochs=EPOCHS,\n                              callbacks=callback_list,\n                              verbose=2).history","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:22:12.200535Z","iopub.execute_input":"2024-05-01T02:22:12.200841Z","iopub.status.idle":"2024-05-01T02:43:46.530152Z","shell.execute_reply.started":"2024-05-01T02:22:12.200799Z","shell.execute_reply":"2024-05-01T02:43:46.529188Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 6))\n\nax1.plot(cosine_lr_1st.learning_rates)\nax1.set_title('Warm up learning rates')\n\nax2.plot(cosine_lr_2nd.learning_rates)\nax2.set_title('Fine-tune learning rates')\n\nplt.xlabel('Steps')\nplt.ylabel('Learning rate')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:46:06.723577Z","iopub.execute_input":"2024-05-01T02:46:06.723901Z","iopub.status.idle":"2024-05-01T02:46:07.190409Z","shell.execute_reply.started":"2024-05-01T02:46:06.723864Z","shell.execute_reply":"2024-05-01T02:46:07.189542Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, (ax1, ax2) = plt.subplots(2, 1, sharex='col', figsize=(20, 14))\n\nax1.plot(history['loss'], label='Train loss')\nax1.plot(history['val_loss'], label='Validation loss')\nax1.legend(loc='best')\nax1.set_title('Loss')\n\nax2.plot(history['acc'], label='Train accuracy')\nax2.plot(history['val_acc'], label='Validation accuracy')\nax2.legend(loc='best')\nax2.set_title('Accuracy')\n\nplt.xlabel('Epochs')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:46:09.65628Z","iopub.execute_input":"2024-05-01T02:46:09.656606Z","iopub.status.idle":"2024-05-01T02:46:10.309454Z","shell.execute_reply.started":"2024-05-01T02:46:09.656564Z","shell.execute_reply":"2024-05-01T02:46:10.308712Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Create empty arays to keep the predictions and labels\ndf_preds = pd.DataFrame(columns=['label', 'pred', 'set'])\ntrain_generator.reset()\nvalid_generator.reset()\n\n# Add train predictions and labels\nfor i in range(STEP_SIZE_TRAIN + 1):\n    im, lbl = next(train_generator)\n    preds = model.predict(im, batch_size=train_generator.batch_size)\n    for index in range(len(preds)):\n        df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'train']\n\n# Add validation predictions and labels\nfor i in range(STEP_SIZE_VALID + 1):\n    im, lbl = next(valid_generator)\n    preds = model.predict(im, batch_size=valid_generator.batch_size)\n    for index in range(len(preds)):\n        df_preds.loc[len(df_preds)] = [lbl[index], preds[index][0], 'validation']\n\ndf_preds['label'] = df_preds['label'].astype('int')","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:46:43.742447Z","iopub.execute_input":"2024-05-01T02:46:43.7428Z","iopub.status.idle":"2024-05-01T02:48:02.109891Z","shell.execute_reply.started":"2024-05-01T02:46:43.742739Z","shell.execute_reply":"2024-05-01T02:48:02.108774Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def classify(x):\n    if x < 0.5:\n        return 0\n    elif x < 1.5:\n        return 1\n    elif x < 2.5:\n        return 2\n    elif x < 3.5:\n        return 3\n    return 4\n\n# Classify predictions\ndf_preds['predictions'] = df_preds['pred'].apply(lambda x: classify(x))\n\ntrain_preds = df_preds[df_preds['set'] == 'train']\nvalidation_preds = df_preds[df_preds['set'] == 'validation']","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:49:01.268061Z","iopub.execute_input":"2024-05-01T02:49:01.268391Z","iopub.status.idle":"2024-05-01T02:49:01.285778Z","shell.execute_reply.started":"2024-05-01T02:49:01.268333Z","shell.execute_reply":"2024-05-01T02:49:01.284904Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"labels = ['0 - No DR', '1 - Mild', '2 - Moderate', '3 - Severe', '4 - Proliferative DR']\ndef plot_confusion_matrix(train, validation, labels=labels):\n    train_labels, train_preds = train\n    validation_labels, validation_preds = validation\n    fig, (ax1, ax2) = plt.subplots(1, 2, sharex='col', figsize=(24, 7))\n    train_cnf_matrix = confusion_matrix(train_labels, train_preds)\n    validation_cnf_matrix = confusion_matrix(validation_labels, validation_preds)\n\n    train_cnf_matrix_norm = train_cnf_matrix.astype('float') / train_cnf_matrix.sum(axis=1)[:, np.newaxis]\n    validation_cnf_matrix_norm = validation_cnf_matrix.astype('float') / validation_cnf_matrix.sum(axis=1)[:, np.newaxis]\n\n    train_df_cm = pd.DataFrame(train_cnf_matrix_norm, index=labels, columns=labels)\n    validation_df_cm = pd.DataFrame(validation_cnf_matrix_norm, index=labels, columns=labels)\n\n    sns.heatmap(train_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax1).set_title('Train')\n    sns.heatmap(validation_df_cm, annot=True, fmt='.2f', cmap=sns.cubehelix_palette(8),ax=ax2).set_title('Validation')\n    plt.show()\n\nplot_confusion_matrix((train_preds['label'], train_preds['predictions']), (validation_preds['label'], validation_preds['predictions']))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:49:04.380504Z","iopub.execute_input":"2024-05-01T02:49:04.380846Z","iopub.status.idle":"2024-05-01T02:49:05.367817Z","shell.execute_reply.started":"2024-05-01T02:49:04.38079Z","shell.execute_reply":"2024-05-01T02:49:05.366724Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def evaluate_model(train, validation):\n    train_labels, train_preds = train\n    validation_labels, validation_preds = validation\n    print(\"Train        Cohen Kappa score: %.3f\" % cohen_kappa_score(train_preds, train_labels, weights='quadratic'))\n    print(\"Validation   Cohen Kappa score: %.3f\" % cohen_kappa_score(validation_preds, validation_labels, weights='quadratic'))\n    print(\"Complete set Cohen Kappa score: %.3f\" % cohen_kappa_score(np.append(train_preds, validation_preds), np.append(train_labels, validation_labels), weights='quadratic'))\n    \nevaluate_model((train_preds['label'], train_preds['predictions']), (validation_preds['label'], validation_preds['predictions']))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:49:07.683363Z","iopub.execute_input":"2024-05-01T02:49:07.683687Z","iopub.status.idle":"2024-05-01T02:49:07.70819Z","shell.execute_reply.started":"2024-05-01T02:49:07.683641Z","shell.execute_reply":"2024-05-01T02:49:07.707492Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def apply_tta(model, generator, steps=10):\n    step_size = generator.n//generator.batch_size\n    preds_tta = []\n    for i in range(steps):\n        generator.reset()\n        preds = model.predict_generator(generator, steps=step_size)\n        preds_tta.append(preds)\n\n    return np.mean(preds_tta, axis=0)\n\npreds = apply_tta(model, test_generator)\npredictions = [classify(x) for x in preds]\n\nresults = pd.DataFrame({'id_code':test['id_code'], 'diagnosis':predictions})\nresults['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])","metadata":{"execution":{"iopub.status.busy":"2024-05-01T02:49:09.397481Z","iopub.execute_input":"2024-05-01T02:49:09.397807Z","iopub.status.idle":"2024-05-01T03:01:09.85612Z","shell.execute_reply.started":"2024-05-01T02:49:09.397763Z","shell.execute_reply":"2024-05-01T03:01:09.855451Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Cleaning created directories\nif os.path.exists(train_dest_path):\n    shutil.rmtree(train_dest_path)\nif os.path.exists(validation_dest_path):\n    shutil.rmtree(validation_dest_path)\nif os.path.exists(test_dest_path):\n    shutil.rmtree(test_dest_path)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T03:06:29.306829Z","iopub.execute_input":"2024-05-01T03:06:29.307181Z","iopub.status.idle":"2024-05-01T03:06:29.588973Z","shell.execute_reply.started":"2024-05-01T03:06:29.307123Z","shell.execute_reply":"2024-05-01T03:06:29.588042Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = plt.subplots(sharex='col', figsize=(24, 8.7))\nsns.countplot(x=\"diagnosis\", data=results).set_title('Test')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T03:06:31.521047Z","iopub.execute_input":"2024-05-01T03:06:31.521414Z","iopub.status.idle":"2024-05-01T03:06:31.887991Z","shell.execute_reply.started":"2024-05-01T03:06:31.521337Z","shell.execute_reply":"2024-05-01T03:06:31.887176Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"results.to_csv('submission.csv', index=False)\ndisplay(results.head())","metadata":{"execution":{"iopub.status.busy":"2024-05-01T03:06:34.176364Z","iopub.execute_input":"2024-05-01T03:06:34.176677Z","iopub.status.idle":"2024-05-01T03:06:34.195659Z","shell.execute_reply.started":"2024-05-01T03:06:34.176633Z","shell.execute_reply":"2024-05-01T03:06:34.194619Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.save_weights('../working/effNetB5_bs32_img224_fold5.h5')","metadata":{"execution":{"iopub.status.busy":"2024-05-01T03:06:37.544908Z","iopub.execute_input":"2024-05-01T03:06:37.545224Z","iopub.status.idle":"2024-05-01T03:12:34.883774Z","shell.execute_reply.started":"2024-05-01T03:06:37.545183Z","shell.execute_reply":"2024-05-01T03:12:34.882982Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"5_FOLD","metadata":{}},{"cell_type":"code","source":"import os\nimport sys\nimport cv2\nimport shutil\nimport random\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom tensorflow import set_random_seed\nfrom sklearn.metrics import confusion_matrix, cohen_kappa_score\nfrom keras.models import Model\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.layers import Dense, GlobalAveragePooling2D, Input\n\ndef seed_everything(seed=0):\n    random.seed(seed)\n    os.environ['PYTHONHASHSEED'] = str(seed)\n    np.random.seed(seed)\n    set_random_seed(0)\n\nseed = 0\nseed_everything(seed)\n%matplotlib inline\nsns.set(style=\"whitegrid\")\nwarnings.filterwarnings(\"ignore\")\nsys.path.append(os.path.abspath('../input/efficientnet/efficientnet-master/efficientnet-master/'))\nfrom efficientnet import *","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:20:15.448882Z","iopub.execute_input":"2024-05-01T13:20:15.449215Z","iopub.status.idle":"2024-05-01T13:20:20.786335Z","shell.execute_reply.started":"2024-05-01T13:20:15.449165Z","shell.execute_reply":"2024-05-01T13:20:20.785453Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"hold_out_set = pd.read_csv('/kaggle/input/5-fold/hold-out.csv')\nX_train = hold_out_set[hold_out_set['set'] == 'train']\nX_val = hold_out_set[hold_out_set['set'] == 'validation']\ntest = pd.read_csv('../input/aptos2019-blindness-detection/test.csv')\nprint('Number of train samples: ', X_train.shape[0])\nprint('Number of validation samples: ', X_val.shape[0])\nprint('Number of test samples: ', test.shape[0])\n\n# Preprocecss data\nX_train[\"id_code\"] = X_train[\"id_code\"].apply(lambda x: x + \".png\")\nX_val[\"id_code\"] = X_val[\"id_code\"].apply(lambda x: x + \".png\")\ntest[\"id_code\"] = test[\"id_code\"].apply(lambda x: x + \".png\")\ndisplay(X_train.head())","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:20:20.788524Z","iopub.execute_input":"2024-05-01T13:20:20.788785Z","iopub.status.idle":"2024-05-01T13:20:21.063654Z","shell.execute_reply.started":"2024-05-01T13:20:20.788741Z","shell.execute_reply":"2024-05-01T13:20:21.062849Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Model parameters\nHEIGHT = 224\nWIDTH = 224\nCHANNELS = 3\n\nweights_paths = ['/kaggle/input/effnet/effNetB5_bs32_img224_fold1.h5', '/kaggle/input/effnet/effNetB5_bs32_img224_fold4.h5', \n                 '/kaggle/input/effnet/effNetB5_bs32_img224_fold2.h5', '/kaggle/input/effnet/effNetB5_bs32_img224_fold5.h5', \n                 '/kaggle/input/effnet/effNetB5_bs32_img224_fold3.h5']\nn_folds = len(weights_paths)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:20:21.065057Z","iopub.execute_input":"2024-05-01T13:20:21.065323Z","iopub.status.idle":"2024-05-01T13:20:21.069986Z","shell.execute_reply.started":"2024-05-01T13:20:21.065281Z","shell.execute_reply":"2024-05-01T13:20:21.069232Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"labels = ['0 - No DR', '1 - Mild', '2 - Moderate', '3 - Severe', '4 - Proliferative DR']\ndef plot_confusion_matrix(train, validation, labels=labels):\n    train_labels, train_preds = train\n    validation_labels, validation_preds = validation\n    fig, (ax1, ax2) = plt.subplots(1, 2, sharex='col', figsize=(24, 7))\n    train_cnf_matrix = confusion_matrix(train_labels, train_preds)\n    validation_cnf_matrix = confusion_matrix(validation_labels, validation_preds)\n\n    train_cnf_matrix_norm = train_cnf_matrix.astype('float') / train_cnf_matrix.sum(axis=1)[:, np.newaxis]\n    validation_cnf_matrix_norm = validation_cnf_matrix.astype('float') / validation_cnf_matrix.sum(axis=1)[:, np.newaxis]\n\n    train_df_cm = pd.DataFrame(train_cnf_matrix_norm, index=labels, columns=labels)\n    validation_df_cm = pd.DataFrame(validation_cnf_matrix_norm, index=labels, columns=labels)\n\n    sns.heatmap(train_df_cm, annot=True, fmt='.2f', cmap=\"Blues\",ax=ax1).set_title('Train')\n    sns.heatmap(validation_df_cm, annot=True, fmt='.2f', cmap=sns.cubehelix_palette(8),ax=ax2).set_title('Validation')\n    plt.show()\n    \ndef evaluate_model(train, validation):\n    train_labels, train_preds = train\n    validation_labels, validation_preds = validation\n    print(\"Train        Cohen Kappa score: %.3f\" % cohen_kappa_score(train_preds, train_labels, weights='quadratic'))\n    print(\"Validation   Cohen Kappa score: %.3f\" % cohen_kappa_score(validation_preds, validation_labels, weights='quadratic'))\n    print(\"Complete set Cohen Kappa score: %.3f\" % cohen_kappa_score(np.append(train_preds, validation_preds), np.append(train_labels, validation_labels), weights='quadratic'))\n\ndef classify(x):\n    if x < 0.5:\n        return 0\n    elif x < 1.5:\n        return 1\n    elif x < 2.5:\n        return 2\n    elif x < 3.5:\n        return 3\n    return 4\n\ndef ensemble_preds(model_list, generator):\n    preds_ensemble = []\n    for model in model_list:\n        generator.reset()\n        preds = model.predict_generator(generator, steps=generator.n)\n        preds_ensemble.append(preds)\n\n    return np.mean(preds_ensemble, axis=0)\n\ndef apply_tta(model, generator, steps=10):\n    step_size = generator.n//generator.batch_size\n    preds_tta = []\n    for i in range(steps):\n        generator.reset()\n        preds = model.predict_generator(generator, steps=step_size)\n        preds_tta.append(preds)\n\n    return np.mean(preds_tta, axis=0)\n\ndef test_ensemble_preds(model_list, generator):\n    preds_ensemble = []\n    for model in model_list:\n        preds = apply_tta(model, generator)\n        preds_ensemble.append(preds)\n\n    return np.mean(preds_ensemble, axis=0)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:20:21.071848Z","iopub.execute_input":"2024-05-01T13:20:21.072175Z","iopub.status.idle":"2024-05-01T13:20:21.094775Z","shell.execute_reply.started":"2024-05-01T13:20:21.072116Z","shell.execute_reply":"2024-05-01T13:20:21.093925Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_base_path = '../input/aptos2019-blindness-detection/train_images/'\ntest_base_path = '../input/aptos2019-blindness-detection/test_images/'\ntrain_dest_path = 'base_dir/train_images/'\nvalidation_dest_path = 'base_dir/validation_images/'\ntest_dest_path =  'base_dir/test_images/'\n\n# Making sure directories don't exist\nif os.path.exists(train_dest_path):\n    shutil.rmtree(train_dest_path)\nif os.path.exists(validation_dest_path):\n    shutil.rmtree(validation_dest_path)\nif os.path.exists(test_dest_path):\n    shutil.rmtree(test_dest_path)\n    \n# Creating train, validation and test directories\nos.makedirs(train_dest_path)\nos.makedirs(validation_dest_path)\nos.makedirs(test_dest_path)\n\ndef crop_image(img, tol=7):\n    if img.ndim ==2:\n        mask = img>tol\n        return img[np.ix_(mask.any(1),mask.any(0))]\n    elif img.ndim==3:\n        gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)\n        mask = gray_img>tol\n        check_shape = img[:,:,0][np.ix_(mask.any(1),mask.any(0))].shape[0]\n        if (check_shape == 0): # image is too dark so that we crop out everything,\n            return img # return original image\n        else:\n            img1=img[:,:,0][np.ix_(mask.any(1),mask.any(0))]\n            img2=img[:,:,1][np.ix_(mask.any(1),mask.any(0))]\n            img3=img[:,:,2][np.ix_(mask.any(1),mask.any(0))]\n            img = np.stack([img1,img2,img3],axis=-1)\n            \n        return img\n\ndef circle_crop(img):\n    img = crop_image(img)\n\n    height, width, depth = img.shape\n    largest_side = np.max((height, width))\n    img = cv2.resize(img, (largest_side, largest_side))\n\n    height, width, depth = img.shape\n\n    x = width//2\n    y = height//2\n    r = np.amin((x, y))\n\n    circle_img = np.zeros((height, width), np.uint8)\n    cv2.circle(circle_img, (x, y), int(r), 1, thickness=-1)\n    img = cv2.bitwise_and(img, img, mask=circle_img)\n    img = crop_image(img)\n\n    return img\n    \ndef preprocess_image(base_path, save_path, image_id, HEIGHT, WIDTH, sigmaX=10):\n    image = cv2.imread(base_path + image_id)\n    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n    image = circle_crop(image)\n    image = cv2.resize(image, (HEIGHT, WIDTH))\n    image = cv2.addWeighted(image, 4, cv2.GaussianBlur(image, (0,0), sigmaX), -4 , 128)\n    cv2.imwrite(save_path + image_id, image)\n    \n# Pre-procecss train set\nfor i, image_id in enumerate(X_train['id_code']):\n    preprocess_image(train_base_path, train_dest_path, image_id, HEIGHT, WIDTH)\n    \n# Pre-procecss validation set\nfor i, image_id in enumerate(X_val['id_code']):\n    preprocess_image(train_base_path, validation_dest_path, image_id, HEIGHT, WIDTH)\n    \n# Pre-procecss test set\nfor i, image_id in enumerate(test['id_code']):\n    preprocess_image(test_base_path, test_dest_path, image_id, HEIGHT, WIDTH)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:20:21.097781Z","iopub.execute_input":"2024-05-01T13:20:21.098032Z","iopub.status.idle":"2024-05-01T13:44:43.324957Z","shell.execute_reply.started":"2024-05-01T13:20:21.097991Z","shell.execute_reply":"2024-05-01T13:44:43.324237Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datagen=ImageDataGenerator(rescale=1./255, \n                           rotation_range=360,\n                           horizontal_flip=True,\n                           vertical_flip=True)\n\ntrain_generator=datagen.flow_from_dataframe(\n                        dataframe=X_train,\n                        directory=train_dest_path,\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"raw\",\n                        batch_size=1,\n                        shuffle=False,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\nvalid_generator=datagen.flow_from_dataframe(\n                        dataframe=X_val,\n                        directory=validation_dest_path,\n                        x_col=\"id_code\",\n                        y_col=\"diagnosis\",\n                        class_mode=\"raw\",\n                        batch_size=1,\n                        shuffle=False,\n                        target_size=(HEIGHT, WIDTH),\n                        seed=seed)\n\ntest_generator=datagen.flow_from_dataframe(  \n                       dataframe=test,\n                       directory=test_dest_path,\n                       x_col=\"id_code\",\n                       batch_size=1,\n                       class_mode=None,\n                       shuffle=False,\n                       target_size=(HEIGHT, WIDTH),\n                       seed=seed)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:44:43.329183Z","iopub.execute_input":"2024-05-01T13:44:43.329441Z","iopub.status.idle":"2024-05-01T13:44:43.408534Z","shell.execute_reply.started":"2024-05-01T13:44:43.3294Z","shell.execute_reply":"2024-05-01T13:44:43.40759Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def create_model(input_shape, weights_path):\n    input_tensor = Input(shape=input_shape)\n    base_model = EfficientNetB5(weights=None, \n                                include_top=False,\n                                input_tensor=input_tensor)\n\n    x = GlobalAveragePooling2D()(base_model.output)\n    final_output = Dense(1, activation='linear', name='final_output')(x)\n    model = Model(input_tensor, final_output)\n    model.load_weights(weights_path)\n    \n    return model","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:44:43.409992Z","iopub.execute_input":"2024-05-01T13:44:43.410296Z","iopub.status.idle":"2024-05-01T13:44:43.416219Z","shell.execute_reply.started":"2024-05-01T13:44:43.410249Z","shell.execute_reply":"2024-05-01T13:44:43.415411Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model_list = []\n\nfor weights_path in weights_paths:\n    model_list.append(create_model(input_shape=(HEIGHT, WIDTH, CHANNELS), weights_path=weights_path))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:44:43.417433Z","iopub.execute_input":"2024-05-01T13:44:43.417748Z","iopub.status.idle":"2024-05-01T13:47:25.941085Z","shell.execute_reply.started":"2024-05-01T13:44:43.417647Z","shell.execute_reply":"2024-05-01T13:47:25.940375Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Train predictions\npreds_ensemble = ensemble_preds(model_list, train_generator)\npreds_ensemble = [classify(x) for x in preds_ensemble]\ntrain_preds = pd.DataFrame({'label':train_generator.labels, 'pred':preds_ensemble})\n\n# Validation predictions\npreds_ensemble = ensemble_preds(model_list, valid_generator)\npreds_ensemble = [classify(x) for x in preds_ensemble]\nvalidation_preds = pd.DataFrame({'label':valid_generator.labels, 'pred':preds_ensemble})","metadata":{"execution":{"iopub.status.busy":"2024-05-01T13:47:25.94237Z","iopub.execute_input":"2024-05-01T13:47:25.942642Z","iopub.status.idle":"2024-05-01T14:00:17.378982Z","shell.execute_reply.started":"2024-05-01T13:47:25.942592Z","shell.execute_reply":"2024-05-01T14:00:17.378192Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_confusion_matrix((train_preds['label'], train_preds['pred']), (validation_preds['label'], validation_preds['pred']))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T14:00:17.380517Z","iopub.execute_input":"2024-05-01T14:00:17.380857Z","iopub.status.idle":"2024-05-01T14:00:18.445797Z","shell.execute_reply.started":"2024-05-01T14:00:17.380789Z","shell.execute_reply":"2024-05-01T14:00:18.444511Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"evaluate_model((train_preds['label'], train_preds['pred']), (validation_preds['label'], validation_preds['pred']))","metadata":{"execution":{"iopub.status.busy":"2024-05-01T14:00:18.447871Z","iopub.execute_input":"2024-05-01T14:00:18.448589Z","iopub.status.idle":"2024-05-01T14:00:18.47741Z","shell.execute_reply.started":"2024-05-01T14:00:18.44851Z","shell.execute_reply":"2024-05-01T14:00:18.476656Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds = test_ensemble_preds(model_list, test_generator)\npredictions = [classify(x) for x in preds]\n\nresults = pd.DataFrame({'id_code':test['id_code'], 'diagnosis':predictions})\nresults['id_code'] = results['id_code'].map(lambda x: str(x)[:-4])","metadata":{"execution":{"iopub.status.busy":"2024-05-01T14:00:18.478797Z","iopub.execute_input":"2024-05-01T14:00:18.47909Z","iopub.status.idle":"2024-05-01T15:03:49.067262Z","shell.execute_reply.started":"2024-05-01T14:00:18.479023Z","shell.execute_reply":"2024-05-01T15:03:49.066412Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Cleaning created directories\nif os.path.exists(train_dest_path):\n    shutil.rmtree(train_dest_path)\nif os.path.exists(validation_dest_path):\n    shutil.rmtree(validation_dest_path)\nif os.path.exists(test_dest_path):\n    shutil.rmtree(test_dest_path)","metadata":{"execution":{"iopub.status.busy":"2024-05-01T15:03:49.068717Z","iopub.execute_input":"2024-05-01T15:03:49.068962Z","iopub.status.idle":"2024-05-01T15:03:49.341266Z","shell.execute_reply.started":"2024-05-01T15:03:49.068922Z","shell.execute_reply":"2024-05-01T15:03:49.340545Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig = plt.subplots(sharex='col', figsize=(24, 8.7))\nsns.countplot(x=\"diagnosis\", data=results).set_title('Test')\nsns.despine()\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-05-01T15:03:49.342868Z","iopub.execute_input":"2024-05-01T15:03:49.343234Z","iopub.status.idle":"2024-05-01T15:03:49.715376Z","shell.execute_reply.started":"2024-05-01T15:03:49.343173Z","shell.execute_reply":"2024-05-01T15:03:49.714446Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"results.to_csv('submission.csv', index=False)\ndisplay(results.head())","metadata":{"execution":{"iopub.status.busy":"2024-05-01T15:03:49.716865Z","iopub.execute_input":"2024-05-01T15:03:49.71722Z","iopub.status.idle":"2024-05-01T15:03:49.8747Z","shell.execute_reply.started":"2024-05-01T15:03:49.717152Z","shell.execute_reply":"2024-05-01T15:03:49.873923Z"},"trusted":true},"execution_count":null,"outputs":[]}]}