{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport cv2\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.metrics import confusion_matrix\nimport itertools\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\nimport random\nimport os,shutil\n\nin_path=\"../input\"\n\nprint(os.listdir(in_path))","execution_count":1,"outputs":[{"output_type":"stream","text":"['test1', 'sampleSubmission.csv', 'train']\n","name":"stdout"}]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"IMAGE_SIZE=80\nBATCH_SIZE=128\n\n\nlabel=[]\ndata=[]\ncounter=0\npath=\"../input/train/train\"\nfor file in os.listdir(path):\n    image_data=cv2.imread(os.path.join(path,file), cv2.IMREAD_COLOR)\n    image_data=cv2.resize(image_data,(IMAGE_SIZE,IMAGE_SIZE))\n    if file.startswith(\"cat\"):\n        label.append(0)\n    elif file.startswith(\"dog\"):\n        label.append(1)\n    try:\n        data.append(image_data/255)\n    except:\n        label=label[:len(label)-1]\n    counter+=1\n    if counter%1000==0:\n         print (counter,\" image data retreived\")\n\ndata=np.array(data)\ndata=data.reshape((data.shape)[0],(data.shape)[1],(data.shape)[2],3)\nlabel=np.array(label)\nprint (data.shape)\nprint (label.shape)","execution_count":2,"outputs":[{"output_type":"stream","text":"1000  image data retreived\n2000  image data retreived\n3000  image data retreived\n4000  image data retreived\n5000  image data retreived\n6000  image data retreived\n7000  image data retreived\n8000  image data retreived\n9000  image data retreived\n10000  image data retreived\n11000  image data retreived\n12000  image data retreived\n13000  image data retreived\n14000  image data retreived\n15000  image data retreived\n16000  image data retreived\n17000  image data retreived\n18000  image data retreived\n19000  image data retreived\n20000  image data retreived\n21000  image data retreived\n22000  image data retreived\n23000  image data retreived\n24000  image data retreived\n25000  image data retreived\n(25000, 80, 80, 3)\n(25000,)\n","name":"stdout"}]},{"metadata":{"trusted":true,"_uuid":"2753112b09a4cc0044eb192aa61c2f44ff4509b7"},"cell_type":"code","source":"sns.countplot(label)","execution_count":3,"outputs":[{"output_type":"execute_result","execution_count":3,"data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7f915a9ef198>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true,"_uuid":"09da20457226ff24e20aa9a88ca67e66ac5abcb9"},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\ntrain_data, valid_data, train_label, valid_label = train_test_split(\n    data, label, test_size=0.2, random_state=42)\nprint(train_data.shape)\nprint(train_label.shape)\nprint(valid_data.shape)\nprint(valid_label.shape)","execution_count":4,"outputs":[{"output_type":"stream","text":"(20000, 80, 80, 3)\n(20000,)\n(5000, 80, 80, 3)\n(5000,)\n","name":"stdout"}]},{"metadata":{"trusted":true,"_uuid":"bcd450c706c4f6b797ea4c9d760614568345e5ec"},"cell_type":"code","source":"from keras import Sequential\nfrom keras.layers import *\nimport keras.optimizers as optimizers\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.callbacks import *\nimport keras.backend as K","execution_count":5,"outputs":[{"output_type":"stream","text":"Using TensorFlow backend.\n","name":"stderr"}]},{"metadata":{"trusted":true,"_uuid":"15cea3d8764c00b0d5dbca8095265655f27f8322"},"cell_type":"code","source":"from tensorflow.python.keras.applications import ResNet50\nfrom tensorflow.python.keras.models import Sequential\nfrom tensorflow.python.keras.layers import Dense, Flatten, GlobalAveragePooling2D\n\n\n\n","execution_count":6,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0d348028bfa58d60a05aaf8c4340cd95a80214c0"},"cell_type":"code","source":"from keras import applications\nresnet_model = applications.ResNet50(weights='imagenet',\n                               include_top=False,\n                               input_shape=(80, 80, 3))\n\nresnet_model.summary()","execution_count":7,"outputs":[{"output_type":"stream","text":"WARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nColocations handled automatically by placer.\n","name":"stdout"},{"output_type":"stream","text":"/opt/conda/lib/python3.6/site-packages/keras_applications/resnet50.py:265: UserWarning: The output shape of `ResNet50(include_top=False)` has been changed since Keras 2.2.0.\n  warnings.warn('The output shape of `ResNet50(include_top=False)` '\n","name":"stderr"},{"output_type":"stream","text":"Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5\n94658560/94653016 [==============================] - 2s 0us/step\n__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_1 (InputLayer)            (None, 80, 80, 3)    0                                            \n__________________________________________________________________________________________________\nconv1_pad (ZeroPadding2D)       (None, 86, 86, 3)    0           input_1[0][0]                    \n__________________________________________________________________________________________________\nconv1 (Conv2D)                  (None, 40, 40, 64)   9472        conv1_pad[0][0]                  \n__________________________________________________________________________________________________\nbn_conv1 (BatchNormalization)   (None, 40, 40, 64)   256         conv1[0][0]                      \n__________________________________________________________________________________________________\nactivation_1 (Activation)       (None, 40, 40, 64)   0           bn_conv1[0][0]                   \n__________________________________________________________________________________________________\npool1_pad (ZeroPadding2D)       (None, 42, 42, 64)   0           activation_1[0][0]               \n__________________________________________________________________________________________________\nmax_pooling2d_1 (MaxPooling2D)  (None, 20, 20, 64)   0           pool1_pad[0][0]                  \n__________________________________________________________________________________________________\nres2a_branch2a (Conv2D)         (None, 20, 20, 64)   4160        max_pooling2d_1[0][0]            \n__________________________________________________________________________________________________\nbn2a_branch2a (BatchNormalizati (None, 20, 20, 64)   256         res2a_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_2 (Activation)       (None, 20, 20, 64)   0           bn2a_branch2a[0][0]              \n__________________________________________________________________________________________________\nres2a_branch2b (Conv2D)         (None, 20, 20, 64)   36928       activation_2[0][0]               \n__________________________________________________________________________________________________\nbn2a_branch2b (BatchNormalizati (None, 20, 20, 64)   256         res2a_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_3 (Activation)       (None, 20, 20, 64)   0           bn2a_branch2b[0][0]              \n__________________________________________________________________________________________________\nres2a_branch2c (Conv2D)         (None, 20, 20, 256)  16640       activation_3[0][0]               \n__________________________________________________________________________________________________\nres2a_branch1 (Conv2D)          (None, 20, 20, 256)  16640       max_pooling2d_1[0][0]            \n__________________________________________________________________________________________________\nbn2a_branch2c (BatchNormalizati (None, 20, 20, 256)  1024        res2a_branch2c[0][0]             \n__________________________________________________________________________________________________\nbn2a_branch1 (BatchNormalizatio (None, 20, 20, 256)  1024        res2a_branch1[0][0]              \n__________________________________________________________________________________________________\nadd_1 (Add)                     (None, 20, 20, 256)  0           bn2a_branch2c[0][0]              \n                                                                 bn2a_branch1[0][0]               \n__________________________________________________________________________________________________\nactivation_4 (Activation)       (None, 20, 20, 256)  0           add_1[0][0]                      \n__________________________________________________________________________________________________\nres2b_branch2a (Conv2D)         (None, 20, 20, 64)   16448       activation_4[0][0]               \n__________________________________________________________________________________________________\nbn2b_branch2a (BatchNormalizati (None, 20, 20, 64)   256         res2b_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_5 (Activation)       (None, 20, 20, 64)   0           bn2b_branch2a[0][0]              \n__________________________________________________________________________________________________\nres2b_branch2b (Conv2D)         (None, 20, 20, 64)   36928       activation_5[0][0]               \n__________________________________________________________________________________________________\nbn2b_branch2b (BatchNormalizati (None, 20, 20, 64)   256         res2b_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_6 (Activation)       (None, 20, 20, 64)   0           bn2b_branch2b[0][0]              \n__________________________________________________________________________________________________\nres2b_branch2c (Conv2D)         (None, 20, 20, 256)  16640       activation_6[0][0]               \n__________________________________________________________________________________________________\nbn2b_branch2c (BatchNormalizati (None, 20, 20, 256)  1024        res2b_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_2 (Add)                     (None, 20, 20, 256)  0           bn2b_branch2c[0][0]              \n                                                                 activation_4[0][0]               \n__________________________________________________________________________________________________\nactivation_7 (Activation)       (None, 20, 20, 256)  0           add_2[0][0]                      \n__________________________________________________________________________________________________\nres2c_branch2a (Conv2D)         (None, 20, 20, 64)   16448       activation_7[0][0]               \n__________________________________________________________________________________________________\nbn2c_branch2a (BatchNormalizati (None, 20, 20, 64)   256         res2c_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_8 (Activation)       (None, 20, 20, 64)   0           bn2c_branch2a[0][0]              \n__________________________________________________________________________________________________\nres2c_branch2b (Conv2D)         (None, 20, 20, 64)   36928       activation_8[0][0]               \n__________________________________________________________________________________________________\nbn2c_branch2b (BatchNormalizati (None, 20, 20, 64)   256         res2c_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_9 (Activation)       (None, 20, 20, 64)   0           bn2c_branch2b[0][0]              \n__________________________________________________________________________________________________\nres2c_branch2c (Conv2D)         (None, 20, 20, 256)  16640       activation_9[0][0]               \n__________________________________________________________________________________________________\nbn2c_branch2c (BatchNormalizati (None, 20, 20, 256)  1024        res2c_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_3 (Add)                     (None, 20, 20, 256)  0           bn2c_branch2c[0][0]              \n                                                                 activation_7[0][0]               \n__________________________________________________________________________________________________\nactivation_10 (Activation)      (None, 20, 20, 256)  0           add_3[0][0]                      \n__________________________________________________________________________________________________\nres3a_branch2a (Conv2D)         (None, 10, 10, 128)  32896       activation_10[0][0]              \n__________________________________________________________________________________________________\nbn3a_branch2a (BatchNormalizati (None, 10, 10, 128)  512         res3a_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_11 (Activation)      (None, 10, 10, 128)  0           bn3a_branch2a[0][0]              \n__________________________________________________________________________________________________\nres3a_branch2b (Conv2D)         (None, 10, 10, 128)  147584      activation_11[0][0]              \n__________________________________________________________________________________________________\nbn3a_branch2b (BatchNormalizati (None, 10, 10, 128)  512         res3a_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_12 (Activation)      (None, 10, 10, 128)  0           bn3a_branch2b[0][0]              \n__________________________________________________________________________________________________\nres3a_branch2c (Conv2D)         (None, 10, 10, 512)  66048       activation_12[0][0]              \n__________________________________________________________________________________________________\nres3a_branch1 (Conv2D)          (None, 10, 10, 512)  131584      activation_10[0][0]              \n__________________________________________________________________________________________________\nbn3a_branch2c (BatchNormalizati (None, 10, 10, 512)  2048        res3a_branch2c[0][0]             \n__________________________________________________________________________________________________\nbn3a_branch1 (BatchNormalizatio (None, 10, 10, 512)  2048        res3a_branch1[0][0]              \n__________________________________________________________________________________________________\nadd_4 (Add)                     (None, 10, 10, 512)  0           bn3a_branch2c[0][0]              \n                                                                 bn3a_branch1[0][0]               \n__________________________________________________________________________________________________\nactivation_13 (Activation)      (None, 10, 10, 512)  0           add_4[0][0]                      \n__________________________________________________________________________________________________\nres3b_branch2a (Conv2D)         (None, 10, 10, 128)  65664       activation_13[0][0]              \n__________________________________________________________________________________________________\nbn3b_branch2a (BatchNormalizati (None, 10, 10, 128)  512         res3b_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_14 (Activation)      (None, 10, 10, 128)  0           bn3b_branch2a[0][0]              \n__________________________________________________________________________________________________\nres3b_branch2b (Conv2D)         (None, 10, 10, 128)  147584      activation_14[0][0]              \n__________________________________________________________________________________________________\nbn3b_branch2b (BatchNormalizati (None, 10, 10, 128)  512         res3b_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_15 (Activation)      (None, 10, 10, 128)  0           bn3b_branch2b[0][0]              \n__________________________________________________________________________________________________\nres3b_branch2c (Conv2D)         (None, 10, 10, 512)  66048       activation_15[0][0]              \n__________________________________________________________________________________________________\nbn3b_branch2c (BatchNormalizati (None, 10, 10, 512)  2048        res3b_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_5 (Add)                     (None, 10, 10, 512)  0           bn3b_branch2c[0][0]              \n                                                                 activation_13[0][0]              \n__________________________________________________________________________________________________\nactivation_16 (Activation)      (None, 10, 10, 512)  0           add_5[0][0]                      \n__________________________________________________________________________________________________\nres3c_branch2a (Conv2D)         (None, 10, 10, 128)  65664       activation_16[0][0]              \n__________________________________________________________________________________________________\nbn3c_branch2a (BatchNormalizati (None, 10, 10, 128)  512         res3c_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_17 (Activation)      (None, 10, 10, 128)  0           bn3c_branch2a[0][0]              \n__________________________________________________________________________________________________\nres3c_branch2b (Conv2D)         (None, 10, 10, 128)  147584      activation_17[0][0]              \n__________________________________________________________________________________________________\nbn3c_branch2b (BatchNormalizati (None, 10, 10, 128)  512         res3c_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_18 (Activation)      (None, 10, 10, 128)  0           bn3c_branch2b[0][0]              \n__________________________________________________________________________________________________\nres3c_branch2c (Conv2D)         (None, 10, 10, 512)  66048       activation_18[0][0]              \n__________________________________________________________________________________________________\nbn3c_branch2c (BatchNormalizati (None, 10, 10, 512)  2048        res3c_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_6 (Add)                     (None, 10, 10, 512)  0           bn3c_branch2c[0][0]              \n                                                                 activation_16[0][0]              \n__________________________________________________________________________________________________\nactivation_19 (Activation)      (None, 10, 10, 512)  0           add_6[0][0]                      \n__________________________________________________________________________________________________\nres3d_branch2a (Conv2D)         (None, 10, 10, 128)  65664       activation_19[0][0]              \n__________________________________________________________________________________________________\nbn3d_branch2a (BatchNormalizati (None, 10, 10, 128)  512         res3d_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_20 (Activation)      (None, 10, 10, 128)  0           bn3d_branch2a[0][0]              \n__________________________________________________________________________________________________\nres3d_branch2b (Conv2D)         (None, 10, 10, 128)  147584      activation_20[0][0]              \n__________________________________________________________________________________________________\nbn3d_branch2b (BatchNormalizati (None, 10, 10, 128)  512         res3d_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_21 (Activation)      (None, 10, 10, 128)  0           bn3d_branch2b[0][0]              \n__________________________________________________________________________________________________\nres3d_branch2c (Conv2D)         (None, 10, 10, 512)  66048       activation_21[0][0]              \n__________________________________________________________________________________________________\nbn3d_branch2c (BatchNormalizati (None, 10, 10, 512)  2048        res3d_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_7 (Add)                     (None, 10, 10, 512)  0           bn3d_branch2c[0][0]              \n                                                                 activation_19[0][0]              \n__________________________________________________________________________________________________\nactivation_22 (Activation)      (None, 10, 10, 512)  0           add_7[0][0]                      \n__________________________________________________________________________________________________\nres4a_branch2a (Conv2D)         (None, 5, 5, 256)    131328      activation_22[0][0]              \n__________________________________________________________________________________________________\nbn4a_branch2a (BatchNormalizati (None, 5, 5, 256)    1024        res4a_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_23 (Activation)      (None, 5, 5, 256)    0           bn4a_branch2a[0][0]              \n__________________________________________________________________________________________________\nres4a_branch2b (Conv2D)         (None, 5, 5, 256)    590080      activation_23[0][0]              \n__________________________________________________________________________________________________\nbn4a_branch2b (BatchNormalizati (None, 5, 5, 256)    1024        res4a_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_24 (Activation)      (None, 5, 5, 256)    0           bn4a_branch2b[0][0]              \n__________________________________________________________________________________________________\nres4a_branch2c (Conv2D)         (None, 5, 5, 1024)   263168      activation_24[0][0]              \n__________________________________________________________________________________________________\nres4a_branch1 (Conv2D)          (None, 5, 5, 1024)   525312      activation_22[0][0]              \n__________________________________________________________________________________________________\nbn4a_branch2c (BatchNormalizati (None, 5, 5, 1024)   4096        res4a_branch2c[0][0]             \n__________________________________________________________________________________________________\nbn4a_branch1 (BatchNormalizatio (None, 5, 5, 1024)   4096        res4a_branch1[0][0]              \n__________________________________________________________________________________________________\nadd_8 (Add)                     (None, 5, 5, 1024)   0           bn4a_branch2c[0][0]              \n                                                                 bn4a_branch1[0][0]               \n__________________________________________________________________________________________________\nactivation_25 (Activation)      (None, 5, 5, 1024)   0           add_8[0][0]                      \n__________________________________________________________________________________________________\nres4b_branch2a (Conv2D)         (None, 5, 5, 256)    262400      activation_25[0][0]              \n__________________________________________________________________________________________________\nbn4b_branch2a (BatchNormalizati (None, 5, 5, 256)    1024        res4b_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_26 (Activation)      (None, 5, 5, 256)    0           bn4b_branch2a[0][0]              \n__________________________________________________________________________________________________\nres4b_branch2b (Conv2D)         (None, 5, 5, 256)    590080      activation_26[0][0]              \n__________________________________________________________________________________________________\nbn4b_branch2b (BatchNormalizati (None, 5, 5, 256)    1024        res4b_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_27 (Activation)      (None, 5, 5, 256)    0           bn4b_branch2b[0][0]              \n__________________________________________________________________________________________________\nres4b_branch2c (Conv2D)         (None, 5, 5, 1024)   263168      activation_27[0][0]              \n__________________________________________________________________________________________________\nbn4b_branch2c (BatchNormalizati (None, 5, 5, 1024)   4096        res4b_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_9 (Add)                     (None, 5, 5, 1024)   0           bn4b_branch2c[0][0]              \n                                                                 activation_25[0][0]              \n__________________________________________________________________________________________________\nactivation_28 (Activation)      (None, 5, 5, 1024)   0           add_9[0][0]                      \n__________________________________________________________________________________________________\nres4c_branch2a (Conv2D)         (None, 5, 5, 256)    262400      activation_28[0][0]              \n__________________________________________________________________________________________________\nbn4c_branch2a (BatchNormalizati (None, 5, 5, 256)    1024        res4c_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_29 (Activation)      (None, 5, 5, 256)    0           bn4c_branch2a[0][0]              \n__________________________________________________________________________________________________\nres4c_branch2b (Conv2D)         (None, 5, 5, 256)    590080      activation_29[0][0]              \n__________________________________________________________________________________________________\nbn4c_branch2b (BatchNormalizati (None, 5, 5, 256)    1024        res4c_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_30 (Activation)      (None, 5, 5, 256)    0           bn4c_branch2b[0][0]              \n__________________________________________________________________________________________________\nres4c_branch2c (Conv2D)         (None, 5, 5, 1024)   263168      activation_30[0][0]              \n__________________________________________________________________________________________________\nbn4c_branch2c (BatchNormalizati (None, 5, 5, 1024)   4096        res4c_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_10 (Add)                    (None, 5, 5, 1024)   0           bn4c_branch2c[0][0]              \n                                                                 activation_28[0][0]              \n__________________________________________________________________________________________________\nactivation_31 (Activation)      (None, 5, 5, 1024)   0           add_10[0][0]                     \n__________________________________________________________________________________________________\nres4d_branch2a (Conv2D)         (None, 5, 5, 256)    262400      activation_31[0][0]              \n__________________________________________________________________________________________________\nbn4d_branch2a (BatchNormalizati (None, 5, 5, 256)    1024        res4d_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_32 (Activation)      (None, 5, 5, 256)    0           bn4d_branch2a[0][0]              \n__________________________________________________________________________________________________\nres4d_branch2b (Conv2D)         (None, 5, 5, 256)    590080      activation_32[0][0]              \n__________________________________________________________________________________________________\nbn4d_branch2b (BatchNormalizati (None, 5, 5, 256)    1024        res4d_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_33 (Activation)      (None, 5, 5, 256)    0           bn4d_branch2b[0][0]              \n__________________________________________________________________________________________________\nres4d_branch2c (Conv2D)         (None, 5, 5, 1024)   263168      activation_33[0][0]              \n__________________________________________________________________________________________________\nbn4d_branch2c (BatchNormalizati (None, 5, 5, 1024)   4096        res4d_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_11 (Add)                    (None, 5, 5, 1024)   0           bn4d_branch2c[0][0]              \n                                                                 activation_31[0][0]              \n__________________________________________________________________________________________________\nactivation_34 (Activation)      (None, 5, 5, 1024)   0           add_11[0][0]                     \n__________________________________________________________________________________________________\nres4e_branch2a (Conv2D)         (None, 5, 5, 256)    262400      activation_34[0][0]              \n__________________________________________________________________________________________________\nbn4e_branch2a (BatchNormalizati (None, 5, 5, 256)    1024        res4e_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_35 (Activation)      (None, 5, 5, 256)    0           bn4e_branch2a[0][0]              \n__________________________________________________________________________________________________\nres4e_branch2b (Conv2D)         (None, 5, 5, 256)    590080      activation_35[0][0]              \n__________________________________________________________________________________________________\nbn4e_branch2b (BatchNormalizati (None, 5, 5, 256)    1024        res4e_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_36 (Activation)      (None, 5, 5, 256)    0           bn4e_branch2b[0][0]              \n__________________________________________________________________________________________________\nres4e_branch2c (Conv2D)         (None, 5, 5, 1024)   263168      activation_36[0][0]              \n__________________________________________________________________________________________________\nbn4e_branch2c (BatchNormalizati (None, 5, 5, 1024)   4096        res4e_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_12 (Add)                    (None, 5, 5, 1024)   0           bn4e_branch2c[0][0]              \n                                                                 activation_34[0][0]              \n__________________________________________________________________________________________________\nactivation_37 (Activation)      (None, 5, 5, 1024)   0           add_12[0][0]                     \n__________________________________________________________________________________________________\nres4f_branch2a (Conv2D)         (None, 5, 5, 256)    262400      activation_37[0][0]              \n__________________________________________________________________________________________________\nbn4f_branch2a (BatchNormalizati (None, 5, 5, 256)    1024        res4f_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_38 (Activation)      (None, 5, 5, 256)    0           bn4f_branch2a[0][0]              \n__________________________________________________________________________________________________\nres4f_branch2b (Conv2D)         (None, 5, 5, 256)    590080      activation_38[0][0]              \n__________________________________________________________________________________________________\nbn4f_branch2b (BatchNormalizati (None, 5, 5, 256)    1024        res4f_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_39 (Activation)      (None, 5, 5, 256)    0           bn4f_branch2b[0][0]              \n__________________________________________________________________________________________________\nres4f_branch2c (Conv2D)         (None, 5, 5, 1024)   263168      activation_39[0][0]              \n__________________________________________________________________________________________________\nbn4f_branch2c (BatchNormalizati (None, 5, 5, 1024)   4096        res4f_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_13 (Add)                    (None, 5, 5, 1024)   0           bn4f_branch2c[0][0]              \n                                                                 activation_37[0][0]              \n__________________________________________________________________________________________________\nactivation_40 (Activation)      (None, 5, 5, 1024)   0           add_13[0][0]                     \n__________________________________________________________________________________________________\nres5a_branch2a (Conv2D)         (None, 3, 3, 512)    524800      activation_40[0][0]              \n__________________________________________________________________________________________________\nbn5a_branch2a (BatchNormalizati (None, 3, 3, 512)    2048        res5a_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_41 (Activation)      (None, 3, 3, 512)    0           bn5a_branch2a[0][0]              \n__________________________________________________________________________________________________\nres5a_branch2b (Conv2D)         (None, 3, 3, 512)    2359808     activation_41[0][0]              \n__________________________________________________________________________________________________\nbn5a_branch2b (BatchNormalizati (None, 3, 3, 512)    2048        res5a_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_42 (Activation)      (None, 3, 3, 512)    0           bn5a_branch2b[0][0]              \n__________________________________________________________________________________________________\nres5a_branch2c (Conv2D)         (None, 3, 3, 2048)   1050624     activation_42[0][0]              \n__________________________________________________________________________________________________\nres5a_branch1 (Conv2D)          (None, 3, 3, 2048)   2099200     activation_40[0][0]              \n__________________________________________________________________________________________________\nbn5a_branch2c (BatchNormalizati (None, 3, 3, 2048)   8192        res5a_branch2c[0][0]             \n__________________________________________________________________________________________________\nbn5a_branch1 (BatchNormalizatio (None, 3, 3, 2048)   8192        res5a_branch1[0][0]              \n__________________________________________________________________________________________________\nadd_14 (Add)                    (None, 3, 3, 2048)   0           bn5a_branch2c[0][0]              \n                                                                 bn5a_branch1[0][0]               \n__________________________________________________________________________________________________\nactivation_43 (Activation)      (None, 3, 3, 2048)   0           add_14[0][0]                     \n__________________________________________________________________________________________________\nres5b_branch2a (Conv2D)         (None, 3, 3, 512)    1049088     activation_43[0][0]              \n__________________________________________________________________________________________________\nbn5b_branch2a (BatchNormalizati (None, 3, 3, 512)    2048        res5b_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_44 (Activation)      (None, 3, 3, 512)    0           bn5b_branch2a[0][0]              \n__________________________________________________________________________________________________\nres5b_branch2b (Conv2D)         (None, 3, 3, 512)    2359808     activation_44[0][0]              \n__________________________________________________________________________________________________\nbn5b_branch2b (BatchNormalizati (None, 3, 3, 512)    2048        res5b_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_45 (Activation)      (None, 3, 3, 512)    0           bn5b_branch2b[0][0]              \n__________________________________________________________________________________________________\nres5b_branch2c (Conv2D)         (None, 3, 3, 2048)   1050624     activation_45[0][0]              \n__________________________________________________________________________________________________\nbn5b_branch2c (BatchNormalizati (None, 3, 3, 2048)   8192        res5b_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_15 (Add)                    (None, 3, 3, 2048)   0           bn5b_branch2c[0][0]              \n                                                                 activation_43[0][0]              \n__________________________________________________________________________________________________\nactivation_46 (Activation)      (None, 3, 3, 2048)   0           add_15[0][0]                     \n__________________________________________________________________________________________________\nres5c_branch2a (Conv2D)         (None, 3, 3, 512)    1049088     activation_46[0][0]              \n__________________________________________________________________________________________________\nbn5c_branch2a (BatchNormalizati (None, 3, 3, 512)    2048        res5c_branch2a[0][0]             \n__________________________________________________________________________________________________\nactivation_47 (Activation)      (None, 3, 3, 512)    0           bn5c_branch2a[0][0]              \n__________________________________________________________________________________________________\nres5c_branch2b (Conv2D)         (None, 3, 3, 512)    2359808     activation_47[0][0]              \n__________________________________________________________________________________________________\nbn5c_branch2b (BatchNormalizati (None, 3, 3, 512)    2048        res5c_branch2b[0][0]             \n__________________________________________________________________________________________________\nactivation_48 (Activation)      (None, 3, 3, 512)    0           bn5c_branch2b[0][0]              \n__________________________________________________________________________________________________\nres5c_branch2c (Conv2D)         (None, 3, 3, 2048)   1050624     activation_48[0][0]              \n__________________________________________________________________________________________________\nbn5c_branch2c (BatchNormalizati (None, 3, 3, 2048)   8192        res5c_branch2c[0][0]             \n__________________________________________________________________________________________________\nadd_16 (Add)                    (None, 3, 3, 2048)   0           bn5c_branch2c[0][0]              \n                                                                 activation_46[0][0]              \n__________________________________________________________________________________________________\nactivation_49 (Activation)      (None, 3, 3, 2048)   0           add_16[0][0]                     \n==================================================================================================\nTotal params: 23,587,712\nTrainable params: 23,534,592\nNon-trainable params: 53,120\n__________________________________________________________________________________________________\n","name":"stdout"}]},{"metadata":{"trusted":true,"_uuid":"69ec645cb1a7bfac4656a8ea32a70c29b03ab1b4"},"cell_type":"code","source":"from keras import layers\nfrom keras import models\nmodel = models.Sequential()\nmodel.add(resnet_model)\nmodel.add(layers.Flatten())\nmodel.add(layers.Dense(256, activation  = 'relu'))\nmodel.add(layers.Dense(1, activation = 'sigmoid'))\n","execution_count":8,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"26353492c6b6260d13ccdec266f357c79caa0f78"},"cell_type":"code","source":"model.summary()","execution_count":9,"outputs":[{"output_type":"stream","text":"_________________________________________________________________\nLayer (type)                 Output Shape              Param #   \n=================================================================\nresnet50 (Model)             (None, 3, 3, 2048)        23587712  \n_________________________________________________________________\nflatten_1 (Flatten)          (None, 18432)             0         \n_________________________________________________________________\ndense_1 (Dense)              (None, 256)               4718848   \n_________________________________________________________________\ndense_2 (Dense)              (None, 1)                 257       \n=================================================================\nTotal params: 28,306,817\nTrainable params: 28,253,697\nNon-trainable params: 53,120\n_________________________________________________________________\n","name":"stdout"}]},{"metadata":{"trusted":true,"_uuid":"9c940bdaa24de3e9a5421f7ded82a4befa826751"},"cell_type":"code","source":"from keras import backend as K\nK.set_image_dim_ordering('th')\nK.set_image_data_format('channels_last')\nfrom keras import layers\nfrom keras import models\nfrom keras import optimizers\nfrom keras.layers import GlobalAveragePooling2D\n\nmodel.compile(loss='binary_crossentropy',optimizer=optimizers.adam(lr=1e-4),metrics=['acc'])\n# vgg_model.summary()\n# train_history=vgg_model.fit(train_data,train_label,validation_data=(valid_data,valid_label),epochs=40,batch_size=BATCH_SIZE)\n","execution_count":10,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9693c98ac103d728a19cae8e09715ec59af7f5ff"},"cell_type":"code","source":"train_history=model.fit(train_data,train_label,validation_data=(valid_data,valid_label),epochs=20,batch_size=BATCH_SIZE)","execution_count":11,"outputs":[{"output_type":"stream","text":"WARNING:tensorflow:From /opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\nInstructions for updating:\nUse tf.cast instead.\nTrain on 20000 samples, validate on 5000 samples\nEpoch 1/20\n20000/20000 [==============================] - 42s 2ms/step - loss: 0.2754 - acc: 0.8838 - val_loss: 0.1759 - val_acc: 0.9286\nEpoch 2/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0319 - acc: 0.9906 - val_loss: 0.1995 - val_acc: 0.9336\nEpoch 3/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0037 - acc: 0.9992 - val_loss: 0.2389 - val_acc: 0.9350\nEpoch 4/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0017 - acc: 0.9997 - val_loss: 0.2619 - val_acc: 0.9348\nEpoch 5/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0222 - acc: 0.9925 - val_loss: 0.2726 - val_acc: 0.9300\nEpoch 6/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0234 - acc: 0.9923 - val_loss: 0.2239 - val_acc: 0.9224\nEpoch 7/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0174 - acc: 0.9939 - val_loss: 0.2576 - val_acc: 0.9354\nEpoch 8/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0122 - acc: 0.9960 - val_loss: 0.2792 - val_acc: 0.9328\nEpoch 9/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0071 - acc: 0.9979 - val_loss: 0.3019 - val_acc: 0.9324\nEpoch 10/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0174 - acc: 0.9936 - val_loss: 0.3335 - val_acc: 0.9298\nEpoch 11/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0131 - acc: 0.9963 - val_loss: 0.2869 - val_acc: 0.9340\nEpoch 12/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0045 - acc: 0.9985 - val_loss: 0.2854 - val_acc: 0.9346\nEpoch 13/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0074 - acc: 0.9971 - val_loss: 0.2717 - val_acc: 0.9414\nEpoch 14/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0040 - acc: 0.9988 - val_loss: 0.3139 - val_acc: 0.9384\nEpoch 15/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0079 - acc: 0.9975 - val_loss: 0.2880 - val_acc: 0.9380\nEpoch 16/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0125 - acc: 0.9955 - val_loss: 0.2834 - val_acc: 0.9372\nEpoch 17/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0076 - acc: 0.9977 - val_loss: 0.2837 - val_acc: 0.9362\nEpoch 18/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0059 - acc: 0.9979 - val_loss: 0.2705 - val_acc: 0.9402\nEpoch 19/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0078 - acc: 0.9975 - val_loss: 0.2908 - val_acc: 0.9326\nEpoch 20/20\n20000/20000 [==============================] - 28s 1ms/step - loss: 0.0075 - acc: 0.9978 - val_loss: 0.2825 - val_acc: 0.9372\n","name":"stdout"}]},{"metadata":{"trusted":true,"_uuid":"f640ce2ac2a61c1aac56b47ee0c02f419ea5b581"},"cell_type":"code","source":"import matplotlib.pyplot as plt\nacc = train_history.history['acc']\nval_acc = train_history.history['val_acc']\nloss = train_history.history['loss']\nval_loss = train_history.history['val_loss']\nepochs = range(1, len(acc) + 1)\nplt.plot(epochs, acc, 'blue', label='Training acc')\nplt.plot(epochs, val_acc, 'red', label='Validation acc')\nplt.title('Training and validation accuracy')\nplt.legend()\nplt.figure()\nplt.plot(epochs, loss, 'blue', label='Training loss')\nplt.plot(epochs, val_loss, 'red', label='Validation loss')\nplt.title('Training and validation loss')\nplt.legend()\nplt.show()","execution_count":12,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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X/9KamoqaWlpzJ49m1WrVh22zO7du+nXrx9paWmcfvrpTJwYvqZZVVm4cCHjxo1j7NixAIwfP57mzZuzatUq/vSnP7FkyZKwy95+++0sWrSI5cuXs3v3bmbNmgXAsGHDuPPOO0lLS+Prr7+mWbNmfPzxx8ycOZOFCxeSlpbGXXfdFaW9E7m4Lelb0jembEpTIi9PJ5xwAikpKYfeT5kyhddee43c3Fw2b97MqlWr6NChcA8xtWrVYuDAgQB0796dL774Iuy6hwwZcmieDRs2APDll1/yxz/+EYAuXbrQsWPHsMvOmTOHcePGceDAAbZt20b37t3p1asX27Zt4+KLLwZcgyqAzz77jOuvv55atWoB0Lhx49LsijKJu6SfkQF16rjBGBM/6gT9U69bt45nn32WhQsX0rBhQ6655pqw964HX/hNSEggNzc37Lpr1qxZ4jzh7N+/n1GjRvHdd9/RokULRo8eXelbM8dd9Y7do29M/NuzZw/16tWjfv36bNmyhU8+iX7zn969ezNt2jQAli9fHrb6KDs7m2rVqpGcnMzevXt59913AWjUqBFNmzbl448/Blyjt/3793PeeecxceJEsrOzAdixo1zvYA8rLkv6VrVjTHzr1q0bHTp0oH379hx33HH07t076tu49dZbGT58OB06dDg0NGjQoNA8TZo04dprr6VDhw4cffTR9OxZ0C3ZW2+9xY033siDDz5IjRo1ePfdd7noootIS0sjJSWFxMRELr74Yh555JGox14cUS1zVzdRlZKSoqmpqaVevnNnOP54+OCDKAZljE+sXr2ak08+OdZhVAq5ubnk5uaSlJTEunXrOP/881m3bh3VK0H3veG+JxFZrKopRSxySOyjj7KMDOjVK9ZRGGOquqysLM455xxyc3NRVV5++eVKkfDLqup/giB5eZCZaXX6xpiya9iwIYsXL451GFEXVxdyd+yA/Hyr0zfGmKLEVdK31rjGGFO8uEz6VtI3xpjw4irpWw+bxhhTvLhK+lbSN6ZqO+ussw5raPXMM89w8803F7tc3bp1Adi8eTOXXXZZ2HnOPPNMSrod/JlnnmH//v2H3l9wwQXs2rUrktCrjLhK+hkZUL06NGoU60iMMaUxbNgwpk6dWmjc1KlTGTZsWETLH3PMMUyfHvbRHhEJTfozZsygYcOGpV5fZRRXt2ymp0PTplBE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\n"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true,"_uuid":"d12d26dce8824f891ea19b813222a08893342b0a"},"cell_type":"code","source":"from keras import Sequential\nfrom keras.layers import *\nimport keras.optimizers as optimizers\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.callbacks import *\nimport keras.backend as K\ntest_datagen = ImageDataGenerator(rescale=1./255)\n\ntest_generator = test_datagen.flow_from_directory(\"../input/test1\",target_size=(80, 80),batch_size=32,class_mode='binary')","execution_count":13,"outputs":[{"output_type":"stream","text":"Found 12500 images belonging to 1 classes.\n","name":"stdout"}]},{"metadata":{"trusted":true,"_uuid":"0b9a8e3e12e1f0f5be112530298a2e1b1b5d5e77"},"cell_type":"code","source":"from tensorflow.python.keras.models import Sequential\nfrom keras.models import load_model\n\nprint(\"-- Evaluate --\")\n\nscores = model.evaluate_generator(\n            test_generator, \n            steps = 100)\n\nprint(\"%s: %.2f%%\" %(model.metrics_names[1], scores[1]*100))","execution_count":14,"outputs":[{"output_type":"stream","text":"-- Evaluate --\nacc: 50.44%\n","name":"stdout"}]},{"metadata":{"trusted":true,"_uuid":"28e62559dedb88ca2017a85426b061fe701f95ed"},"cell_type":"code","source":"Y_pred = model.predict(valid_data)\npredicted_label=np.round(Y_pred,decimals=2)","execution_count":15,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"290b019fc4efa884f0c8f0f7b84e7aadd013a0a9"},"cell_type":"code","source":"import matplotlib.pyplot as plt\n%matplotlib inline\nfrom mlxtend.plotting import plot_confusion_matrix\n\n# Get the confusion matrix\n\nCM = confusion_matrix(valid_label, Y_pred.round())\nfig, ax = plot_confusion_matrix(conf_mat=CM ,  figsize=(12, 12))\nplt.xticks(range(2), ['Cat', 'Dog'], fontsize=16)\nplt.yticks(range(2), ['Cat', 'Dog'], fontsize=16)\nplt.show()","execution_count":16,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 864x864 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAtMAAALCCAYAAAAcfl8PAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xv85nOd//HnCznmNBlyaJCVoVZCiqwOS7JUKhXRRkmLjbb9tRJSW9vRr12UpP39ftXanJNESkJindVoa1CRHHNYa3KevH9/XNfMjmnGfL2b7/c739zvt9v3dp0+13W9rtutvvPw+b6vz6daawEAAJ66xcZ7AAAAmKjENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ2WGO8BxkMtsUyrJZcf7zEAFhmbbDhlvEcAWKTc/Oubcvfdd9eCtnt6xvSSy2epDd4y3mMALDJ+eMlR4z0CwCJlm622GNF2lnkAAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQSUwDAEAnMQ0AAJ3ENAAAdBLTAADQadxiuqq2rKqTq+q2qnq0qu6pqnOr6h1VtfhTeJ2dq+r9ozkrAADMy7jEdFW9L8nFSSYlOSjJtknemeT6JF9MstNTeLmdk4hpFglrrbZSzjnugFx92iG56tRDsv9ur0iSfHi/HXP5SQfn0hM/mDOP2T+rT17xCc/bbKMpmXHFkXnDtpvMvm/3174k157x4Vx7xoez+2tfMpYfA2BU7LvPu7Luc56dLTbdePZ979hj12y1xabZaotN8/znPTdbbbFpkuSxxx7LPu/aMy/Z7IXZ7IXPzxGf+dQ4TQ1PbomxfsOq2ibJ55J8vrV2wFwPn1FVn0uy3FjPBQvDzN8/ng9+7hv58fRb8sxll8olXz8o5102Pf/81fPyj8eclSTZb7eX5+B9dsgB/3RikmSxxSofP/D1+f6l02e/zsorLJtD9tkhL9v9M2mt5ZKvH5SzLpiW+2Y8NC6fC2Bh2P3t78h79t0/+7xrz9n3ffX4E2dfP/ig/5UVVxjsbDj9tFPy6KOP5LKrfpIHH3wwL97kBXnzW3bN2uusM7ZDwwKMx57pg5Lcm+Qf5vVga+2XrbVpVTW5qr5UVddX1YNV9Zuq+npVrTlr26r6SpJ3JFmzqtrw56ax+BAwL3fcfX9+PP2WJMnvHnwk02+8I2tMXikzHnh49jbLLrNUWmuzb++368vzzfN+krvunTH7vu222jDnXTo9/3X/g7lvxkM579LpefXLNhq7DwIwCrb+i22y8sqT5vlYay2nn3pKdnnrrkmSqsoDDzyQmTNn5qGHHsozllwyy6+wwliOCyMypjE9XAv9yiTfa609vIDNJyV5OMnBSV6T5ANJ1k9ycVUtPdzmY0nOTnJXki2HP28YhdHhKZuy+qRsssFaueKnNyVJPrL/a3PDdz6WXXfYPB/74mAv9RqTV8zrXvXCHHfKRU947hqTV8otd/7X7Nu3/va+rDF5pTGbHWCsXfyji7Lqaqvlz/5s/STJzm/cJcstt1z+bJ01s9H66+SA970/kybNO8RhPI31nulVkiyT5NcL2rC1dl1r7cDW2mmttR8mOSXJG5OsnWSH4Ta/zCCkH22tXTr8uWb0xoeRWW6ZJXPCEXvnA0ecNnuv9Ee+cGbW3+GwnPidK/M3b90mSfLZD7wphx55xhP2VAM8HZ168onZ5S27zr595RWXZ/HFFs8NN96Sn07/ZY4+8p9z469+NY4TwryN+Zrpp6Kq9k3yN0nWyxPXUW/Q8Vr7JNknSfKMZy6M8WCellhisZxwxLtz0neuzBk/+MkfPH7S2Vfk9KP3zcePPTubbjQlX/vUXkmSZ630zGy/9fMzc+bjue2u+/IXm60/+zlrrrpSLrrqhjH7DABjaebMmfnWGafnokuumH3fKSedkG1fvX2e8YxnZPKqq+alW26Va66+Mus+97njOCn8obHeM31Pkocy2Lv8pKrqvUmOSfL9DPZIb5HkpcOHl57f8+antXZca23z1trmtcQyT/XpMGLHHr57rrvxjhx1/A9m37felMmzr+/0io1z/U13Jkk23Okjmbrj4Zm64+E5/fvX5H2fPClnXjAt517y82y75dSstPwyWWn5ZbLtllNz7iU/H/PPAjAWzv/B9/O8503NmmutNfu+tZ4zJRdecH6S5IEHHsgVl1+W520wdbxGhPka0z3TrbWZVXVBku2qaqnW2iNPsvmuSc5rrf39rDuqat3RnhH+GFtt8tzsvtNLcu31t+bSEz+YJDn889/KnjtvlfXXXjWPP95y8+33zj6Sx/z81/0P5pNfPic/On7wPd1PHHdO/uv+B0d9foDRtNfb35aLLrow99x9dzZYb0o+dOjhecde78qpJ5+UN7/1rU/Ydp+/2S/77vPOvPhFf57WWvb46z3zgj/feD6vDOOnxnqt5vDQeBckObq1duA8Hl83yfJJvprkjtbaDnM89o9JDkvy0dbaR4b3fSnJLq21Z410hsWWXbUttcFb/piPAfAn5a5LjxrvEQAWKdtstUWuvurKWtB2Y75murX2w+EZCz9XVRsl+UqSm5OsnOQvk+yd5G1JzklyUFV9KMnlSV6VZJd5vOTPkkwarq++MsnDrbVrR/2DAADwtDcuX0Bsrf1LVV2e5O+SHJHBUT5mZBDD70lyZpLvJVlpuM3SSS5Msn2Sub/K+68ZrKX+xHD7XydZZ9Q/BAAAT3vjdjSP1tolSS55kk0eSrLv8GdOT9jd3lp7IMluC3c6AABYsPE4AyIAAPxJENMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBJTAMAQCcxDQAAncQ0AAB0EtMAANBpifk9UFUzkrRZN4eXbXi9tdZWGOXZAABgkTbfmG6tLT+WgwAAwEQzomUeVbV1Ve01vL5KVa07umMBAMCib4ExXVWHJzkoycHDu5ZMcvxoDgUAABPBSPZMvyHJ65I8kCSttduSWAICAMDT3khi+tHWWsvwy4hVtdzojgQAABPDSGL65Kr6UpKVqurdSb6f5MujOxYAACz65ns0j1laa0dU1XZJ7k/yvCQfbq2dO+qTAQDAIm6BMT10bZJlMljqce3ojQMAABPHSI7msXeSy5O8MckuSS6tqneO9mAAALCoG8me6Q8keVFr7Z4kqapnJbkkyf8dzcEAAGBRN5IvIN6TZMYct2cM7wMAgKe1+e6Zrqr3D6/+IsllVXVGBmumX59k2hjMBgAAi7QnW+Yx68Qsvxz+zHLG6I0DAAATx3xjurX20bEcBAAAJpoFfgGxqiYn+Yckz0+y9Kz7W2uvGsW5AABgkTeSLyD+e5LpSdZN8tEkNyW5YhRnAgCACWEkMf2s1tr/SfJYa+3C1to7k9grDQDA095IjjP92PDy9qraMcltSSaN3kgAADAxjCSmP15VKyb5+yRHJ1khyd+N6lQAADABLDCmW2vfHl797ySvHN1xAABg4niyk7YcncFJWuaptXbAqEw0Bl604ZRcfNnnx3sMgEXGyi/+2/EeAWCR8sh1N49ouyfbM33lwhkFAAD+ND3ZSVu+OpaDAADARDOSQ+MBAADzIKYBAKCTmAYAgE4LjOmqel5VnVdVPx3e3riqDh390QAAYNE2kj3TX05ycIZnQmytTUuy62gOBQAAE8FIYnrZ1trlc903czSGAQCAiWQkMX13Va2X4QlcqmqXJLeP6lQAADABLPB04kn2T3JckqlVdWuSG5PsMapTAQDABLDAmG6t/SrJtlW1XJLFWmszRn8sAABY9C0wpqvqw3PdTpK01v5xlGYCAIAJYSTLPB6Y4/rSSXZK8vPRGQcAACaOkSzz+N9z3q6qI5J8d9QmAgCACaLnDIjLJllrYQ8CAAATzUjWTF+b4WHxkiyeZHIS66UBAHjaG8ma6Z3muD4zyZ2tNSdtAQDgae9JY7qqFk/y3dba1DGaBwAAJownXTPdWvt9kuuqasoYzQMAABPGSJZ5rJzkP6vq8sxxmLzW2utGbSoAAJgARhLTh436FAAAMAGNJKb/qrV20Jx3VNWnk1w4OiMBAMDEMJLjTG83j/t2WNiDAADARDPfPdNVtW+S/ZI8t6qmzfHQ8kkuHu3BAABgUfdkyzy+nuQ7ST6Z5INz3D+jtXbvqE4FAAATwHxjurX230n+O8luYzcOAABMHCNZMw0AAMyDmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOolpAADoJKYBAKCTmAYAgE5iGgAAOo1qTFfVnlXV5vh5oKpuqqrTq+otVVWj+f4AADCaxmrP9JuTbJnkr5IcluSRJCckObeqlhmjGWBMvWfvd2bKGqtms01eMPu+jx5+WF78oo3zks02yU47vDq33Xbb7Md+eOEFeclmm2TTFz4/273q5eMxMsBCt9ZqK+Wc4w7I1acdkqtOPST77/aKJMmH99sxl590cC498YM585j9s/rkFZ/wvM02mpIZVxyZN2y7yez7nvPslXPmMfvnmtMOzdWnHZIpq08ay48C81SttdF78ao9k/y/JOu31n4x12NvSnJKki+01t47akPMw2abbd4uvuzKsXxLnoZ+dNEPs9xyz8ze7/zrXPXjnyZJ7r///qywwgpJki8cfVSm//xnOfqYY3PfffflldtslTO+fU6mTJmS3/72t1l11VXHc3yeZlZ+8d+O9wj8iXr2Kivk2auskB9PvyXPXHapXPL1g/KW9x+XW++8LzMeeDhJst9uL8/U566eA/7pxCTJYotVzvri3+bhR2fma2f8R07//o+TJN/98oH59L9+Nz+4bHqWW2bJPN5aHnr4sXH7bPxpe+S6k/P4g79d4CqKcVsz3Vo7LckZSd5dVcsmSVWtXlVfq6q7q+qRqppWVXvM/dyq2raqrqmqh6vqF1W1d1V9papuGuOPAfO19V9sk0mTnrjXZFZIJ8mDDz6QWSudTjrh63n9zm/MlClTkkRIA38y7rj7/vx4+i1Jkt89+Eim33hH1pi80uyQTpJll1kqc+7c22/Xl+eb5/0kd907Y/Z9U5/77Cyx+GL5wWXTkyQPPPSokGaRsMQ4v//ZSXZOsnlVXZXkwiQrJ/lQkt8k2SPJv1XVsq2145KkqjZKclaSy5PsmmTJDJaOrJjk8TH/BPAUHX7YIfn347+WFVdcMeece36S5IYbrs/Mxx7Lq//yFfndjBnZ/70HZve3//U4TwqwcE1ZfVI22WCtXPHTm5IkH9n/tdl9py3y3797KK/Z56gkyRqTV8zrXvXCbP/uo/Kl5+8++7nrT1k19814KCcesXfWXvNZOf+y63LoUWfk8cdH7y/sMBLjfTSPm4eXqyfZK8n6Sd7cWjuutfad1truSc5L8vGqWny47aFJ7k+yfWvtm621k5O8OoldeUwIH/3YP+UXN/4mu+62e4495vNJkpkzZ+bqq6/K6d86K986+7v55Cc+lhuuv36cJwVYeJZbZsmccMTe+cARp83eK/2RL5yZ9Xc4LCd+58r8zVu3SZJ89gNvyqFHnpG5l6EuscRiedmL1ssH//n0bL3HZ7PuWqvk7a976Zh/DpjbeMf0rHUoLck2SW5trV0w1zbHJ5mcZKPh7ZcmObu19uCsDVprtye55EnfqGqfqrqyqq686+67Fsbs8Ed5626755unn5YkWXOttbLdq7fPcsstl1VWWSVbb71Npk37yThPCLBwLLHEYjnhiHfnpO9cmTN+8Ie/2046+4rs/JeDLxpuutGUfO1Te2X6WR/NG7Z9Uf7l4Lfmta/YOLfeeV+mXX9Lbrr1nvz+94/nW+f/JJtMfc5YfxT4A+Md07P+X3B7kknDy7ndMbyctfh09SS/ncd2dz7ZGw33dm/eWtt88iqTe2aFP9ovbrhh9vVvf+uMPG+DqUmS17729bnk4h9l5syZefDBB3PFFZdl6tQNx2tMgIXq2MN3z3U33pGjjv/B7PvWm/I//xbv9IqNc/1Ng3/GN9zpI5m64+GZuuPhOf371+R9nzwpZ14wLVf+56+z4vLLZJWVn5kkecWLN8j0X90RGG/jvWZ6xyQPJ7kqyb1JNpjHNs8eXt47vLw9817SsdpCnw7+CH+9x2656MILcvfdd2e9ddbKYR/+aM455+zccP11WawWy5S1185RXzg2STJ1ww2z3favyYs33TiLLbZY9txr7zz/BS9YwDsALPq22uS52X2nl+Ta62/NpSd+MEly+Oe/lT133irrr71qHn+85ebb7519JI/5efzxloM/982cfex7U1W55uc35/9+4+Kx+AjwpBaFQ+Md2Vr7u6raP8nnk2zdWrt4ju2+l+SFSdZorf2+qr6eZLska89a6lFVqye5KcntrbV1FjSXQ+MBPJFD4wE80UgPjTdWe6Y3qapVMjjyxpQkO2VwIpdzkxw83OYrSQ5M8o2qOiTJLUl2zyCc39Na+/1wu48n2SXJd6vqiCRLZXA0jzvjaB4AAIyhsYrpU4aXD2ew3vnqDA5rd2ob7hpvrT1QVS9P8pkkn0qyfJLrkry9tXb8rBdqrf2sqnZM8tkkJye5Ncmnk7wmyTpj8mkAACCjHNOtta9ksMd5pNvfnuTtI9ju3CSzzy9aVc9M8tEMjj8NAABjYry/gNilqo7O4FB4tyVZI4PlISsnOXI85wIA4OllQsZ0kqUzWNqxWpJHMzgb4rattWnjOhUAAE8rEzKmW2vvHu8ZAABgvE/aAgAAE5aYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoJOYBgCATmIaAAA6iWkAAOgkpgEAoFO11sZ7hjFXVXcl+fV4zwFJVkly93gPAbAI8XuRRcXarbXJC9roaRnTsKioqitba5uP9xwAiwq/F5loLPMAAIBOYhoAADqJaRhfx433AACLGL8XmVCsmQYAgE72TAMAQCcxDaOgqrasqpOr6raqerSq7qmqc6vqHVW1+FN4nZ2r6v2jOSvAwlZVe1ZVm+Pngaq6qapOr6q3VFWN94ywsIhpWMiq6n1JLk4yKclBSbZN8s4k1yf5YpKdnsLL7ZxETAMT1ZuTbJnkr5IcluSRJCckObeqlhnPwWBhWWK8B4A/JVW1TZLPJfl8a+2AuR4+o6o+l2S5sZ8MYFz8uLX2izlu/1tVnZLklCSfSfLe8RkLFh57pmHhOijJvUn+YV4PttZ+2VqbVlWTq+pLVXV9VT1YVb+pqq9X1Zqztq2qryR5R5I15/hT6U1j8SEARktr7bQkZyR5d1UtmyRVtXpVfa2q7q6qR6pqWlXtMfdzq2rbqrqmqh6uql9U1d5V9RW/GxlP9kzDQjJcC/3KJN9srT28gM0nJXk4ycFJ7kqyRpK/T3JxVU0dPv9jSSYneXG+Ua7DAAAGtElEQVSS1w2f98hozA4wxs7OYBnb5lV1VZILk6yc5ENJfpNkjwz2Yi/bWjsuSapqoyRnJbk8ya5Jlsxg6ciKSR4f808AQ2IaFp5VkiyT5NcL2rC1dl2SA2fdHob4xUluTrJDktNba7+sqruSPNpau3R0RgYYFzcPL1dPsleS9ZO8srV2wfD+71TVakk+XlX/p7X2+ySHJrk/yfattQeTpKouSnJjkjvGcniYk2UeME6qat+q+klV/S7JzPzPPy4bjONYAGNh1tE8WpJtktw6R0jPcnwGf53baHj7pUnOnhXSSdJauz3JJaM7Kjw5MQ0Lzz1JHkqy9oI2rKr3JjkmyfeTvDHJFhn8Q5EkS4/WgACLiOcML2/PYNnb7fPYZtbe5knDy9WT/HYe2925cEeDp8YyD1hIWmszq+qCJNtV1VKttSdb37xrkvNaa38/646qWne0ZwRYROyYwfdGrsrgS9vz+ovcs4eX9w4vb0+y6jy2W22hTwdPgT3TsHB9KsmzMjjk0x+oqnWrauMkyyZ5bK6H95rHUx7JYB02wJ+EqnpTBl+qPna4ZOPCJGtV1cvm2vRtGeyJ/tnw9qVJ/mrWEUCGr7V6krmfB2PKnmlYiFprPxyesfBzw2+efyWDtdArJ/nLJHtn8A/EOUkOqqoPZfDN9Fcl2WUeL/mzJJOqat8kVyZ5uLV27ah/EICFY5OqWiWDI29MyeCkVW9Ocm4GRzNKBr8nD0zyjao6JMktSXZPsl2S9wy/fJgkH8/g9+R3q+qIJEtlcDSPO+NoHowjMQ0LWWvtX6rq8iR/l+SIDI7yMSODGH5PkjOTfC/JSsNtls5gz8z2SX4118v9awZrqT8x3P7XSdYZ9Q8BsHCcMrx8OIO9zFdnsMzt1NZaS5LW2gNV9fIM/qL3qSTLJ7kuydtba8fPeqHW2s+qasckn01ycpJbk3w6yWvi9yLjqIb/WwYAmFCq6plJfpHkrNbau8Z7Hp6e7JkGACaEqjo6g0Ph3ZbBya4OzGAZ3ZHjORdPb2IaAJgols5gacdqSR7N4Dsn27bWpo3rVDytWeYBAACdHBoPAAA6iWkAAOgkpgEAoJOYBpjgqup3w8s1qurUBWz7vjnPIDfC139FVX17pPfPtc2eVfX5p/h+Nw1P9AGwyBPTAIugqlr8qT6ntXZba21eZ9Kc0/syOJ09AAuBmAYYQ1W1TlVNr6p/r6qfV9Wps/YUD/fIfrqqrk7y5qpar6rOqaqrquqiqpo63G7dqvqPqrq2qj4+12v/dHh98ao6oqp+WlXTquq9VXVABsfmPb+qzh9u9+rha11dVacMT4KRqnrNcM6rk7xxBJ9ri+HrXFNVl1TVBnM8/JyquqCqbqiqw+d4zh5VdXlV/biqvtTzHxAA401MA4y9DZIc01rbMMn9Sfab47F7WmubttZOTHJckve21jZL8r+SHDPc5sgkX2yt/XmS2+fzHvtkcIrlTVprGyf599baURmc7OKVrbVXDpdSHJrBcXo3zeCU9++vqqWTfDnJa5NsluTZI/hM05P8RWvtRUk+nOQTczy2RZI3Jdk4g/9I2LyqNkzy1iQva61tkuT3SXYfwfsALFKctAVg7P2mtXbx8PrxSQ5IcsTw9knJ7NMkb5XklKqa9bylhpcvyyBOk+TfMjiJxdy2TXJsa21mkrTW7p3HNi9NslGSi4fvsWSS/0gyNcmNrbUbhrMcn0GcP5kVk3y1qtZP0pI8Y47Hzm2t3TN8rW8k2TrJzAxC/Yrhey+T5LcLeA+ARY6YBhh7c58ta87bDwwvF0ty33Cv7Uheo0dlELq7PeHOqvm955P5WJLzW2tvqKp1klwwx2Pz+ryV5KuttYM73gtgkWGZB8DYm1JVWw6vvy3Jj+beoLV2f5Ibq+rNSVIDLxw+fHGSXYfX57c04twk76mqJYbPnzS8f0aS5YfXL03ysqr6s+E2y1XV8zJYsrFOVa033O4JsT0fKya5dXh9z7ke266qJlXVMkl2Hs5/XpJdqmrVWfNV1dojeB+ARYqYBhh71yXZv6p+nmTlJF+cz3a7J3lXVf0kyX8mef3w/gOHz782yZrzee6/Jrk5ybTh8982vP+4JOdU1fmttbsyCN8Tqmpahks8WmsPZ7Cs46zhFxBHsvziM0k+WVXX5A//6nl5ktOSTEtyWmvtytbazzJYr/294Xufm2T1EbwPwCKlWlsYfykEYCSGSyC+3Vp7wTiPAsBCYM80AAB0smcaAAA62TMNAACdxDQAAHQS0wAA0ElMAwBAJzENAACdxDQAAHT6//+sJY/FJeqeAAAAAElFTkSuQmCC\n"},"metadata":{}}]},{"metadata":{"trusted":true,"_uuid":"9ded99aab877cef62a18a318e25afc6609f105fe"},"cell_type":"code","source":"test_data=[]\nid=[]\ncounter=0\nfor file in os.listdir(\"../input/test1/test1\"):\n    image_data=cv2.imread(os.path.join(\"../input/test1/test1\",file), cv2.IMREAD_COLOR)\n    try:\n        image_data=cv2.resize(image_data,(IMAGE_SIZE,IMAGE_SIZE))\n        test_data.append(image_data/255)\n        id.append((file.split(\".\"))[0])\n    except:\n        print (\"ek gaya\")\n    counter+=1\n\n\n\ntest_data=np.array(test_data)\nprint (test_data.shape)\ntest_data=test_data.reshape((test_data.shape)[0],(test_data.shape)[1],(test_data.shape)[2],3)\ndataframe_output=pd.DataFrame({\"id\":id})","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d53f33f1b1e57d12d58b4d7a0d774aaace2f0a36"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}