{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2021-05-20T23:57:51.549536Z","iopub.execute_input":"2021-05-20T23:57:51.550034Z","iopub.status.idle":"2021-05-20T23:57:54.334487Z","shell.execute_reply.started":"2021-05-20T23:57:51.549912Z","shell.execute_reply":"2021-05-20T23:57:54.33352Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\n# for accessing tabular data\nimport pandas as pd\nimport numpy as np\nimport os\n# adding classweight\nfrom sklearn.utils import class_weight\n# Evaluation Metric\nfrom sklearn.metrics import cohen_kappa_score\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score,precision_recall_curve\n# for visualization\nimport cv2\nimport matplotlib.pyplot as plt\nimport seaborn as sns \nfrom prettytable import PrettyTable\nimport scikitplot as skplt\nfrom tqdm import tqdm\n# backend\nimport keras\nfrom keras import backend as K\nimport tensorflow as tf\nfrom keras.callbacks import Callback\n# for model \nfrom keras import models\nfrom keras import optimizers\nfrom keras import layers\nfrom keras.layers import Input,Dense,Dropout,Flatten,Conv2D,MaxPooling2D,GlobalAveragePooling2D\n# for transfer learning\nfrom keras.applications import VGG16, VGG19\nfrom keras.applications import DenseNet121\nfrom keras.applications import ResNet50, ResNet152\nfrom keras.applications import InceptionV3\nfrom keras.applications import Xception\n# for model architecture\nfrom keras.models import Sequential\nfrom keras.layers import GlobalAveragePooling2D, Dropout, Dense, Conv2D, MaxPooling2D, Activation, Flatten\n# for Tensorboard visualization\nfrom keras.callbacks import TensorBoard \n# for Data Augmentation\nfrom keras.preprocessing.image import ImageDataGenerator\n#for RAM\nimport gc\nimport tensorflow as tf\nfrom tensorflow import keras\nimport sys\nfrom sklearn.model_selection import train_test_split, StratifiedKFold\n#for submission\nfrom keras.models import model_from_json\nimport random\nSEED =42","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:01:49.919862Z","iopub.execute_input":"2021-05-22T20:01:49.920275Z","iopub.status.idle":"2021-05-22T20:01:56.836142Z","shell.execute_reply.started":"2021-05-22T20:01:49.920186Z","shell.execute_reply":"2021-05-22T20:01:56.835395Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_data = pd.read_csv('../input/aptos2019-blindness-detection/train.csv')","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:02:02.517412Z","iopub.execute_input":"2021-05-22T20:02:02.517904Z","iopub.status.idle":"2021-05-22T20:02:02.535348Z","shell.execute_reply.started":"2021-05-22T20:02:02.517855Z","shell.execute_reply":"2021-05-22T20:02:02.534578Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_data","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:02:06.071329Z","iopub.execute_input":"2021-05-22T20:02:06.071768Z","iopub.status.idle":"2021-05-22T20:02:06.098108Z","shell.execute_reply.started":"2021-05-22T20:02:06.071738Z","shell.execute_reply":"2021-05-22T20:02:06.097492Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"classes_names = ['Normal', 'Mild', 'Moderate', 'Severe', 'Proliferate DR']\nprint(train_data['diagnosis'].value_counts())\nsns.barplot(x=classes_names,y=train_data.diagnosis.value_counts().sort_index())","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:02:10.352295Z","iopub.execute_input":"2021-05-22T20:02:10.352797Z","iopub.status.idle":"2021-05-22T20:02:10.677547Z","shell.execute_reply.started":"2021-05-22T20:02:10.352763Z","shell.execute_reply":"2021-05-22T20:02:10.676697Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def splitting_data(train_data, size, is_split = True):\n    \"\"\"\n       This function splits the given data into train and validation sets basing on size for validation.\n       Args : df - (dataframe) through which splitting is performed \n            size - (Integer) test_size -> percentage of data for validation set \n            is_split = (boolean) returns train and validation if it is True , otherwise it simply returns the train data\n       Outputs : (Series Object) train and validation sets of data \n\n    \"\"\"\n    try:\n        if is_split:\n            data = train_data['id_code']\n            labels = train_data['diagnosis']\n            train_x, validation_x, train_labels, validation_labels = train_test_split(data, labels, stratify=labels, shuffle=True, test_size=size)\n            print(\"Training data: {} {}\".format(train_x.shape, train_labels.shape))\n            print(\"Validation data: {} {}\".format(validation_x.shape,validation_labels.shape))\n            return train_x, train_labels, validation_x, validation_labels\n        else:\n            return train_data['id_code'], train_data['diagnosis'], [], []\n    except:\n        print(\"Error: Invalid file format, Function argument requires .csv file!!!\")","metadata":{"execution":{"iopub.status.busy":"2021-05-21T16:49:18.057067Z","iopub.execute_input":"2021-05-21T16:49:18.057416Z","iopub.status.idle":"2021-05-21T16:49:18.065012Z","shell.execute_reply.started":"2021-05-21T16:49:18.057388Z","shell.execute_reply":"2021-05-21T16:49:18.06417Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"split_size = 0.15\ntrain_x, train_labels, validation_x, validation_labels = splitting_data(train_data, split_size)   # function calling","metadata":{"execution":{"iopub.status.busy":"2021-05-21T16:49:21.532696Z","iopub.execute_input":"2021-05-21T16:49:21.533116Z","iopub.status.idle":"2021-05-21T16:49:21.545514Z","shell.execute_reply.started":"2021-05-21T16:49:21.533086Z","shell.execute_reply":"2021-05-21T16:49:21.544459Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.DataFrame(train_x, columns = ['id_code'])\ntrain['diagnosis'] = train_labels\ntrain.to_csv(\"./training.csv\", index = False)\nvalidation = pd.DataFrame(validation_x, columns = ['id_code'])\nvalidation['diagnosis'] = validation_labels\nvalidation.to_csv('./validation.csv', index = False)\n","metadata":{"execution":{"iopub.status.busy":"2021-05-21T16:49:23.745824Z","iopub.execute_input":"2021-05-21T16:49:23.746189Z","iopub.status.idle":"2021-05-21T16:49:23.770358Z","shell.execute_reply.started":"2021-05-21T16:49:23.746157Z","shell.execute_reply":"2021-05-21T16:49:23.769327Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv(\"./training.csv\")\nvalidation = pd.read_csv(\"./validation.csv\")\ntrain_x = train['id_code']\ntrain_labels = train['diagnosis']\nvalidation_x = validation['id_code']\nvalidation_labels = validation['diagnosis']","metadata":{"execution":{"iopub.status.busy":"2021-05-21T16:49:26.233735Z","iopub.execute_input":"2021-05-21T16:49:26.234131Z","iopub.status.idle":"2021-05-21T16:49:26.246316Z","shell.execute_reply.started":"2021-05-21T16:49:26.234094Z","shell.execute_reply":"2021-05-21T16:49:26.245527Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\n\nIMG_SIZE =512\nfig = plt.figure(figsize=(25, 16))\n# display 10 images from each class\nfor class_id in sorted(train_labels.unique()):\n    for i, (idx, row) in enumerate(train.loc[train_labels == class_id].sample(5, random_state=SEED).iterrows()):\n        ax = fig.add_subplot(5, 5, class_id * 5 + i + 1, xticks=[], yticks=[])\n        path=f\"../input/aptos2019-blindness-detection/train_images/{row['id_code']}.png\"\n        image = cv2.imread(path)\n        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n        image = cv2.resize(image, (IMG_SIZE, IMG_SIZE))\n\n        plt.imshow(image)\n        ax.set_title('Label: %d-%d-%s' % (class_id, idx, row['id_code']) )","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:02:30.955477Z","iopub.execute_input":"2021-05-22T20:02:30.955795Z","iopub.status.idle":"2021-05-22T20:02:31.23553Z","shell.execute_reply.started":"2021-05-22T20:02:30.955767Z","shell.execute_reply":"2021-05-22T20:02:31.23468Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#removing noise using gaussian blur - color version with removing uninormative black part\n\ndef crop_image_from_gray(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        \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    #         print(img1.shape,img2.shape,img3.shape)\n            img = np.stack([img1,img2,img3],axis=-1)\n    #         print(img.shape)\n        return img","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:03:20.762148Z","iopub.execute_input":"2021-05-22T20:03:20.762586Z","iopub.status.idle":"2021-05-22T20:03:20.770621Z","shell.execute_reply.started":"2021-05-22T20:03:20.762539Z","shell.execute_reply":"2021-05-22T20:03:20.769525Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def load_ben_color(path, sigmaX=30):\n    image = cv2.imread(path, cv2.IMREAD_COLOR)\n    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n    image = crop_image_from_gray(image)\n    image = cv2.resize(image, (IMG_SIZE, IMG_SIZE),interpolation=cv2.INTER_CUBIC)\n    image=cv2.addWeighted ( image,4, cv2.GaussianBlur( image , (0,0) , sigmaX) ,-4 ,128)\n        \n    return image","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:03:23.51839Z","iopub.execute_input":"2021-05-22T20:03:23.51871Z","iopub.status.idle":"2021-05-22T20:03:23.523982Z","shell.execute_reply.started":"2021-05-22T20:03:23.518682Z","shell.execute_reply":"2021-05-22T20:03:23.522978Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"IMG_SIZE =512\n#Lets declare our image dimensions\n#we are using coloured images. \n#nrows = 224\n#ncolumns = 224\n#channels = 3 #change to 1 if you want to use grayscale image\nimages_train = []\nfor i, image_id in enumerate(tqdm(train_data['id_code'])):\n    path = (f'../input/aptos2019-blindness-detection/train_images/{image_id}.png')\n    #im = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)\n    #im = cv2.resize(im, (nrows,ncolumns), interpolation=cv2.INTER_CUBIC)\n    #im = cv2.resize(im, (380, 380))\n    #im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)\n    im = load_ben_color(path, sigmaX=30)\n    #im = cv2.resize(im, (IMG_SIZE, IMG_SIZE),interpolation=cv2.INTER_CUBIC)\n    images_train.append(im)\n\n","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:04:55.916489Z","iopub.execute_input":"2021-05-22T20:04:55.916897Z","iopub.status.idle":"2021-05-22T20:25:33.106194Z","shell.execute_reply.started":"2021-05-22T20:04:55.91684Z","shell.execute_reply":"2021-05-22T20:25:33.10516Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x = np.array(images_train)\nx.shape","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:26:34.150288Z","iopub.execute_input":"2021-05-22T20:26:34.150602Z","iopub.status.idle":"2021-05-22T20:26:35.352129Z","shell.execute_reply.started":"2021-05-22T20:26:34.150573Z","shell.execute_reply":"2021-05-22T20:26:35.35117Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:26:38.592323Z","iopub.execute_input":"2021-05-22T20:26:38.592642Z","iopub.status.idle":"2021-05-22T20:26:38.601163Z","shell.execute_reply.started":"2021-05-22T20:26:38.592614Z","shell.execute_reply":"2021-05-22T20:26:38.600222Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\nx_train, x_val = train_test_split(x,shuffle=False, test_size=0.15)\n","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:40:27.998279Z","iopub.execute_input":"2021-05-22T20:40:27.998742Z","iopub.status.idle":"2021-05-22T20:40:31.407933Z","shell.execute_reply.started":"2021-05-22T20:40:27.99871Z","shell.execute_reply":"2021-05-22T20:40:31.407138Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_train.shape","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:40:45.750505Z","iopub.execute_input":"2021-05-22T20:40:45.751004Z","iopub.status.idle":"2021-05-22T20:40:45.756625Z","shell.execute_reply.started":"2021-05-22T20:40:45.750972Z","shell.execute_reply":"2021-05-22T20:40:45.755653Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_val.shape","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:41:02.597396Z","iopub.execute_input":"2021-05-22T20:41:02.597747Z","iopub.status.idle":"2021-05-22T20:41:02.603188Z","shell.execute_reply.started":"2021-05-22T20:41:02.597711Z","shell.execute_reply":"2021-05-22T20:41:02.602193Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_train","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:41:18.717807Z","iopub.execute_input":"2021-05-22T20:41:18.718187Z","iopub.status.idle":"2021-05-22T20:41:18.727228Z","shell.execute_reply.started":"2021-05-22T20:41:18.718155Z","shell.execute_reply":"2021-05-22T20:41:18.726329Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_val","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:41:57.206172Z","iopub.execute_input":"2021-05-22T20:41:57.20665Z","iopub.status.idle":"2021-05-22T20:41:57.213912Z","shell.execute_reply.started":"2021-05-22T20:41:57.206616Z","shell.execute_reply":"2021-05-22T20:41:57.213158Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y =train_data ['diagnosis'].values","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:52:50.925229Z","iopub.execute_input":"2021-05-22T20:52:50.925717Z","iopub.status.idle":"2021-05-22T20:52:50.930239Z","shell.execute_reply.started":"2021-05-22T20:52:50.925672Z","shell.execute_reply":"2021-05-22T20:52:50.92941Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:52:57.078295Z","iopub.execute_input":"2021-05-22T20:52:57.078805Z","iopub.status.idle":"2021-05-22T20:52:57.08514Z","shell.execute_reply.started":"2021-05-22T20:52:57.078761Z","shell.execute_reply":"2021-05-22T20:52:57.084216Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pickle\n\n#pickle out\npickle_out_y = open('y_aptos2019.pickle', 'wb')\npickle.dump(y, pickle_out_y)\npickle_out_y.close()\n\n","metadata":{"execution":{"iopub.status.busy":"2021-05-22T20:54:38.697029Z","iopub.execute_input":"2021-05-22T20:54:38.697366Z","iopub.status.idle":"2021-05-22T20:54:38.702346Z","shell.execute_reply.started":"2021-05-22T20:54:38.697335Z","shell.execute_reply":"2021-05-22T20:54:38.70137Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\n\nfig = plt.figure(figsize=(25, 16))\nfor class_id in sorted(train_labels.unique()):\n    for i, (idx, row) in enumerate(train.loc[train_labels == class_id].sample(5, random_state=SEED).iterrows()):\n        ax = fig.add_subplot(5, 5, class_id * 5 + i + 1, xticks=[], yticks=[])\n        path=f\"../input/aptos2019-blindness-detection/train_images/{row['id_code']}.png\"\n        image = load_ben_color(path,sigmaX=30)\n        a = image.shape\n        plt.imshow(image)\n        ax.set_title('%d-%d-%s' % (class_id, idx, row['id_code']) )\nprint(a)","metadata":{"execution":{"iopub.status.busy":"2021-05-21T08:57:25.88042Z","iopub.execute_input":"2021-05-21T08:57:25.880959Z","iopub.status.idle":"2021-05-21T08:57:38.0047Z","shell.execute_reply.started":"2021-05-21T08:57:25.880924Z","shell.execute_reply":"2021-05-21T08:57:38.003307Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"IMG_SIZE =512\n#Lets declare our image dimensions\n#we are using coloured images. \n#nrows = 224\n#ncolumns = 224\n#channels = 3 #change to 1 if you want to use grayscale image\nimages_validation = []\nfor i, image_id in enumerate(tqdm(validation_x)):\n    path = (f'../input/aptos2019-blindness-detection/train_images/{image_id}.png')\n    #im = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)\n    #im = cv2.resize(im, (nrows,ncolumns), interpolation=cv2.INTER_CUBIC)\n    #im = cv2.resize(im, (380, 380))\n    #im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)\n    im = load_ben_color(path, sigmaX=30)\n    #im = cv2.resize(im, (IMG_SIZE, IMG_SIZE),interpolation=cv2.INTER_CUBIC)\n    images_validation.append(im)","metadata":{"execution":{"iopub.status.busy":"2021-05-21T08:57:45.972272Z","iopub.execute_input":"2021-05-21T08:57:45.972634Z","iopub.status.idle":"2021-05-21T09:00:46.238851Z","shell.execute_reply.started":"2021-05-21T08:57:45.972603Z","shell.execute_reply":"2021-05-21T09:00:46.23779Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\nfig = plt.figure(figsize=(25, 16))\nfor class_id in sorted(validation_labels.unique()):\n    for i, (idx, row) in enumerate(validation.loc[validation_labels == class_id].sample(5, random_state=SEED).iterrows()):\n        ax = fig.add_subplot(5, 5, class_id * 5 + i + 1, xticks=[], yticks=[])\n        path=f\"../input/aptos2019-blindness-detection/train_images/{row['id_code']}.png\"\n        image = load_ben_color(path,sigmaX=30)\n        a = image.shape\n        plt.imshow(image)\n        ax.set_title('%d-%d-%s' % (class_id, idx, row['id_code']) )\nprint(a)","metadata":{"execution":{"iopub.status.busy":"2021-05-21T09:01:07.160045Z","iopub.execute_input":"2021-05-21T09:01:07.160491Z","iopub.status.idle":"2021-05-21T09:01:17.981301Z","shell.execute_reply.started":"2021-05-21T09:01:07.160452Z","shell.execute_reply":"2021-05-21T09:01:17.97859Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_val = np.array(images_validation)\nx_val.shape\n","metadata":{"execution":{"iopub.status.busy":"2021-05-21T09:01:24.511688Z","iopub.execute_input":"2021-05-21T09:01:24.51205Z","iopub.status.idle":"2021-05-21T09:01:24.766953Z","shell.execute_reply.started":"2021-05-21T09:01:24.51202Z","shell.execute_reply":"2021-05-21T09:01:24.766004Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_val","metadata":{"execution":{"iopub.status.busy":"2021-05-21T09:01:27.969795Z","iopub.execute_input":"2021-05-21T09:01:27.970188Z","iopub.status.idle":"2021-05-21T09:01:27.98147Z","shell.execute_reply.started":"2021-05-21T09:01:27.970155Z","shell.execute_reply":"2021-05-21T09:01:27.980296Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pickle\n\n#pickle out\npickle_out_x_train = open('x_train_aptos2019.pickle', 'wb')\npickle.dump(x_train, pickle_out_x_train)\npickle_out_x_train.close()\n\npickle_out_x_val = open('x_val_aptos2019.pickle', 'wb')\npickle.dump(x_val, pickle_out_x_val)\npickle_out_x_val.close()\n\n","metadata":{"execution":{"iopub.status.busy":"2021-05-21T09:01:36.293648Z","iopub.execute_input":"2021-05-21T09:01:36.294022Z","iopub.status.idle":"2021-05-21T09:01:45.219165Z","shell.execute_reply.started":"2021-05-21T09:01:36.293988Z","shell.execute_reply":"2021-05-21T09:01:45.218029Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pickle_in_x_train = open('./x_train_aptos2019.pickle', 'rb')\npickle_in_x_val = open('./x_val_aptos2019.pickle', 'rb')\nx_train = pickle.load(pickle_in_x_train)\nx_val = pickle.load(pickle_in_x_val)\n\n\nprint(x_train.shape, x_val.shape)","metadata":{"execution":{"iopub.status.busy":"2021-05-21T09:01:49.951809Z","iopub.execute_input":"2021-05-21T09:01:49.952205Z","iopub.status.idle":"2021-05-21T09:01:54.249508Z","shell.execute_reply.started":"2021-05-21T09:01:49.952164Z","shell.execute_reply":"2021-05-21T09:01:54.248464Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}