[58a20e]: / training / CNN_Training.ipynb

Download this file

1 lines (1 with data), 69.2 kB

{"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 in \n\nimport numpy as np # linear algebra\nimport pandas as pd \nimport tensorflow as tf# data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../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# Any results you write to the current directory are saved as output.","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from __future__ import print_function\nfrom tensorflow.keras.callbacks import EarlyStopping\nimport keras\nfrom keras.layers import Dense, Conv2D, BatchNormalization, Activation,MaxPooling2D\nfrom keras.layers import AveragePooling2D, Input, Flatten, Dropout\nfrom keras.optimizers import Adam\nfrom keras.callbacks import ModelCheckpoint, LearningRateScheduler\nfrom keras.callbacks import ReduceLROnPlateau\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.regularizers import l2\nfrom keras import backend as K\nfrom keras.models import Model\nimport numpy as np\nimport os\nfrom keras.layers import Input\nimport sklearn\nfrom sklearn.utils import shuffle\nimport matplotlib.pyplot as plt\n\nfrom keras.optimizers import SGD \nfrom keras.callbacks import LearningRateScheduler\nfrom keras.optimizers import *\nfrom keras.models import Model,Sequential\nfrom keras.layers import *\nfrom keras.activations import *\nfrom keras.callbacks import * \nfrom numpy import zeros, newaxis","metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"labels_train=[]\nlabels_train_abnormal = pd.DataFrame.to_numpy(pd.read_csv(\"../input/mrnet-v1/MRNet-v1.0/train-abnormal.csv\")) \nlabels_train_acl = pd.DataFrame.to_numpy(pd.read_csv(\"../input/mrnet-v1/MRNet-v1.0/train-acl.csv\")) \n#labels_train_men = pd.DataFrame.to_numpy(pd.read_csv(\"../input/mrnet-v1/MRNet-v1.0/train-meniscus.csv\")) \nlabels_train.append(1)\nlabels_train.append(0)\n#labels_train.append(0)\n\nfor i in range (0,1129):\n    labels_train.append(labels_train_abnormal[i,1])\n    labels_train.append(labels_train_acl[i,1])\n    #labels_train.append(labels_train_men[i,1])\nlabels_train=np.array(labels_train).reshape(-1, 2)\nlabels_train","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# 1. ****#Loading Train Datasets in shape(1130,16,256,256) and label (1130,2)","metadata":{}},{"cell_type":"code","source":"X_Train_ax = []\nY_Train_ax=[]\nX_Train_cor=[]\nY_Train_cor=[]\nX_Train_sag=[]\nY_Train_sag=[]\n\nfor patient_ID in range(1130):\n    label=labels_train[patient_ID]\n    if(patient_ID<10):\n        pathd1='../input/mrnet-v1/MRNet-v1.0/train/' + 'axial/000'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/train/' + 'coronal/000'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/train/' + 'sagittal/000'+str(patient_ID)+'.npy'\n    elif(patient_ID<100):\n        pathd1='../input/mrnet-v1/MRNet-v1.0/train/' + 'axial/00'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/train/' + 'coronal/00'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/train/' + 'sagittal/00'+str(patient_ID)+'.npy'\n    elif(patient_ID<1000):\n        pathd1='../input/mrnet-v1/MRNet-v1.0/train/' + 'axial/0'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/train/' + 'coronal/0'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/train/' + 'sagittal/0'+str(patient_ID)+'.npy'\n    else:\n        pathd1='../input/mrnet-v1/MRNet-v1.0/train/' + 'axial/'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/train/' + 'coronal/'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/train/' + 'sagittal/'+str(patient_ID)+'.npy'\n\n    d1Image = np.load(pathd1) # this part for reading 3 prespectives of each patient with multi-layers each\n    d2Image = np.load(pathd2)\n    d3Image = np.load(pathd3)\n    startd1=int((d1Image.shape[0]/2)-8)  #this part to capture layers of interest \n    endd1=int((d1Image.shape[0]/2)+8)\n    startd2=int((d2Image.shape[0]/2)-8)\n    endd2=int((d2Image.shape[0]/2)+8)\n    startd3=int((d3Image.shape[0]/2)-8)\n    endd3=int((d3Image.shape[0]/2)+8)\n\n    \n    image_tensor=d1Image[startd1:endd1,:,:]\n    #.reshape(256,256,16)\n    X_Train_ax.append(image_tensor)\n    Y_Train_ax.append(label)\n    image_tensor2=d2Image[startd2:endd2,:,:]\n    #.reshape(256,256,16)\n    X_Train_cor.append(image_tensor2)\n    Y_Train_cor.append(label)\n    image_tensor3=d3Image[startd3:endd3,:,:]\n    #.reshape(256,256,16)\n    X_Train_sag.append(image_tensor3)\n    Y_Train_sag.append(label)\n\n    \nprint(np.asarray(X_Train_ax).shape)\nprint(np.asarray(Y_Train_ax).shape)\nprint(np.asarray(X_Train_cor).shape)\nprint(np.asarray(Y_Train_cor).shape)\nprint(np.asarray(X_Train_sag).shape)\nprint(np.asarray(Y_Train_sag).shape)\nX_Train_ax = np.array(X_Train_ax)\nY_Train_ax = np.array(Y_Train_ax)\nX_Train_cor = np.array(X_Train_cor)\nY_Train_cor = np.array(Y_Train_cor)\nX_Train_sag = np.array(X_Train_sag)\nY_Train_sag = np.array(Y_Train_sag)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Loading test dataset","metadata":{}},{"cell_type":"code","source":"labels_test=[]\nlabels_test_abnormal = pd.DataFrame.to_numpy(pd.read_csv(\"../input/mrnet-v1/MRNet-v1.0/valid-abnormal.csv\")) \nlabels_test_acl = pd.DataFrame.to_numpy(pd.read_csv(\"../input/mrnet-v1/MRNet-v1.0/valid-acl.csv\")) \n#labels_test_men = pd.DataFrame.to_numpy(pd.read_csv(\"../input/mrnet-v1/MRNet-v1.0/valid-meniscus.csv\")) \nlabels_test.append(0)\nlabels_test.append(0)\n#labels_test.append(0)\n\nfor i in range (119):\n    labels_test.append(labels_test_abnormal[i,1])\n    labels_test.append(labels_test_acl[i,1])\n    #labels_test.append(labels_test_men[i,1])\nlabels_test=np.array(labels_test).reshape(-1, 2)\nlabels_test\n\n#from PIL import Image\nX_Test_ax = []\nY_Test_ax=[]\nX_Test_cor=[]\nY_Test_cor=[]\nX_Test_sag=[]\nY_Test_sag=[]\n\nfor patient_ID in range(119):\n    label=labels_test[patient_ID]\n    patient_ID=1130+patient_ID\n    if(patient_ID<10):\n        pathd1='../input/mrnet-v1/MRNet-v1.0/valid/' + 'axial/000'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/valid/' + 'coronal/000'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/valid/' + 'sagittal/000'+str(patient_ID)+'.npy'\n    elif(patient_ID<100):\n        pathd1='../input/mrnet-v1/MRNet-v1.0/valid/' + 'axial/00'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/valid/' + 'coronal/00'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/valid/' + 'sagittal/00'+str(patient_ID)+'.npy'\n    elif(patient_ID<1000):\n        pathd1='../input/mrnet-v1/MRNet-v1.0/valid/' + 'axial/0'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/valid/' + 'coronal/0'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/valid/' + 'sagittal/0'+str(patient_ID)+'.npy'\n    else:\n        pathd1='../input/mrnet-v1/MRNet-v1.0/valid/' + 'axial/'+str(patient_ID)+'.npy'\n        pathd2='../input/mrnet-v1/MRNet-v1.0/valid/' + 'coronal/'+str(patient_ID)+'.npy'\n        pathd3='../input/mrnet-v1/MRNet-v1.0/valid/' + 'sagittal/'+str(patient_ID)+'.npy'\n\n    d1Image = np.load(pathd1)\n    d2Image = np.load(pathd2)\n    d3Image = np.load(pathd3)\n    startd1=int((d1Image.shape[0]/2)-8)\n    endd1=int((d1Image.shape[0]/2)+8)\n    startd2=int((d2Image.shape[0]/2)-8)\n    endd2=int((d2Image.shape[0]/2)+8)\n    startd3=int((d3Image.shape[0]/2)-8)\n    endd3=int((d3Image.shape[0]/2)+8)\n\n    \n    image_tensor=d1Image[startd1:endd1,:,:]\n    #.reshape(256,256,16)\n    X_Test_ax.append(image_tensor)\n    Y_Test_ax.append(label)\n    image_tensor2=d2Image[startd2:endd2,:,:]\n    #.reshape(256,256,16)\n    X_Test_cor.append(image_tensor2)\n    Y_Test_cor.append(label)\n    image_tensor3=d3Image[startd3:endd3,:,:]\n    #.reshape(256,256,16)\n    X_Test_sag.append(image_tensor3)\n    Y_Test_sag.append(label)\n\n    \n    \n    \nprint(np.asarray(X_Test_ax).shape)\nprint(np.asarray(Y_Test_ax).shape)\nprint(np.asarray(X_Test_cor).shape)\nprint(np.asarray(Y_Test_cor).shape)\nprint(np.asarray(X_Test_sag).shape)\nprint(np.asarray(Y_Test_sag).shape)\nX_Test_ax = np.array(X_Test_ax)\nY_Test_ax = np.array(Y_Test_ax)\nX_Test_cor = np.array(X_Test_cor)\nY_Test_cor = np.array(Y_Test_cor)\nX_Test_sag = np.array(X_Test_sag)\nY_Test_sag = np.array(Y_Test_sag)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"labels_train.shape\n#X_Train_ax.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def mri_predict(axial,coronal,sagittal):\n    axial = axial.reshape(16,256,256,1)\n    coronal = coronal.reshape(16,256,256,1)\n    sagittal = sagittal.reshape(16,256,256,1)\n    \n    axial_cnn = keras.models.load_model(\"../input/ax-cnn/axcnn.h5\")\n    coronal_cnn = keras.models.load_model(\"../input/ax-cnn/corpart.h5\")\n    sagittal_cnn = keras.models.load_model(\"../input/ax-cnn/sagpart.h5\")\n    \n    ax_prediction = 0\n    cor_prediction = 0\n    sag_prediction = 0\n    \n    for i in range(16):\n        axialtemp = axial[i,:,:,:]\n        axialtemp = axialtemp.reshape(1,256,256,1)\n        ax_predict = axial_cnn.predict(axialtemp)\n        ax_prediction+=ax_predict \n        \n        coronaltemp = coronal[i,:,:,:]\n        coronaltemp = coronaltemp.reshape(1,256,256,1)\n        cor_predict = coronal_cnn.predict(coronaltemp)\n        cor_prediction+=cor_predict\n        \n        sagittaltemp = sagittal[i,:,:,:]\n        sagittaltemp = sagittaltemp.reshape(1,256,256,1)\n        sag_predict = sagittal_cnn.predict(sagittaltemp)\n        sag_prediction+=sag_predict\n        \n    fp_sag = sag_prediction/16\n    fp_ax = ax_prediction/16\n    fp_cor = cor_prediction/16\n    return(fp_sag,fp_ax,fp_cor)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fp_sag,fp_ax,fp_cor = mri_predict(X_Train_ax[0],X_Train_cor[0],X_Train_sag[0])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(fp_sag,fp_ax,fp_cor)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fp_ax = np.array(fp_ax)\nfp_cor = np.array(fp_cor)\nfp_sag = np.array(fp_sag)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"combined = np.concatenate((fp_ax,fp_cor,fp_sag),axis = 1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"combined","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Converting to single array of multiple slices","metadata":{}},{"cell_type":"markdown","source":"1. xtax: Axial train\n2. ytax: Axial train label\n3. xtsag: Sagittal train\n4. ytsag: Sagittal train label\n5. xtcor: Coronal train\n6. ytcor: Coronal train label\n","metadata":{}},{"cell_type":"code","source":"xtax = []\nytax = []\nfor i in range(1130):\n    for j in range(16):\n        xtax.append(X_Train_ax[i,j,:,:])\n        ytax.append(Y_Train_ax[i,:])\n        \nxtax = np.array(xtax)        \nytax = np.array(ytax)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"Shape of the axial plane training dataset = \"+ str(xtax.shape))\nprint(\"Shape of the axial plane training dataset label= \"+ str(ytax.shape))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtax = xtax.reshape(18080,256,256,1)\nytax = ytax.reshape(18080,2,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **Preparing Test Dataset**","metadata":{}},{"cell_type":"markdown","source":"1. xtestax: Axial test\n2. ytestax: Axial test label\n3. xtestsag: Sagittal test\n4. ytestsag: Sagittal test label\n5. xtestcor: Coronal test\n6. ytestcor: Coronal test label\n","metadata":{}},{"cell_type":"code","source":"xtestax = []\nytestax = []\n\nfor i in range(119):\n    for j in range(16):\n        xtestax.append(X_Test_ax[i,j,:,:])\n        ytestax.append(Y_Test_ax[i,:])\n        \nxtestax = np.array(xtestax)        \nytestax = np.array(ytestax)        \nprint(xtestax.shape,ytestax.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtestax = xtestax.reshape(1904,256,256,1)\nytestax = ytestax.reshape(1904,2,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# A slice","metadata":{}},{"cell_type":"code","source":"import matplotlib.pyplot as plt\nplt.imshow(xtax[1600,:,:,0],cmap = 'gray')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.amax(xtax[10])\nxtax = xtax.reshape(18080,256,256,1)\nxtestax = xtestax.reshape(1904,256,256,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytax.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Converting the axial label from 2 value label to 3 value label**","metadata":{}},{"cell_type":"markdown","source":"**Label format**: [Normal,Abnormal,ACL]","metadata":{}},{"cell_type":"code","source":"ytaxf=[]\nfor i in range(18080):\n    if(ytax[i,0,0]==1):\n        temp = 0,ytax[i,0,0],ytax[i,1,0]\n        ytaxf.append(temp)\n    else:\n        temp = 1,ytax[i,0,0],ytax[i,1,0]\n        ytaxf.append(temp)\nytaxf = np.array(ytaxf)\nprint(ytaxf.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytestaxf=[]\nfor i in range(1904):\n    if(ytestax[i,0,0]==1):\n        temp = 0,ytestax[i,0,0],ytestax[i,1,0]\n        ytestaxf.append(temp)\n    else:\n        temp = 1,ytestax[i,0,0],ytestax[i,1,0]\n        ytestaxf.append(temp)\nytestaxf = np.array(ytestaxf)\nprint(ytestaxf.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Seperating the ACL slices from axial training set for augmentation","metadata":{}},{"cell_type":"code","source":"indexofacl=[]\nfor i in range(18080):\n    if ytaxf[i,0]==0 and ytaxf[i,1]==1 and ytaxf[i,2]==1:\n        indexofacl.append(i)\nlen(indexofacl)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"count = 0\nfor i in indexofacl:\n    if i<=4000:\n        count+=1\nprint(count)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#acl seperate\nacldata = []\nacldatalabel = []\nfor i in indexofacl:\n    acldata.append(xtax[i,:,:,0])\n    acldatalabel.append(ytaxf[i,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldata = np.array(acldata)\nacldatalabel = np.array(acldatalabel)\nprint(acldata.shape,acldatalabel.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.array_equal(acldata[5],acldata[6])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldatar = acldata.reshape(3328,256,256,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"indexofnormal=[]\nfor i in range(18080):\n    if ytaxf[i,0]==1 and ytaxf[i,1]==0 and ytaxf[i,2]==0:\n        indexofnormal.append(i)\nlen(indexofnormal)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldata = []\nnormaldatalabel = []\nfor i in indexofnormal:\n    normaldata.append(xtax[i,:,:,0])\n    normaldatalabel.append(ytaxf[i,:])\nnormaldata = np.array(normaldata)\nnormaldatalabel = np.array(normaldatalabel)\nprint(normaldata.shape,normaldatalabel.shape)    \n\nnormaldatar = normaldata.reshape(3472,256,256,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldatar.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"'''acldatar[0].shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **ACL slices Augmentation**","metadata":{}},{"cell_type":"code","source":"#Data Augmentatiion\ndatagen = ImageDataGenerator(rotation_range = 25, fill_mode = 'nearest')\ndatagen.fit(acldatar)\nx_batch_axial= acldatar\ny_batch_axial = acldatalabel\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"epochs = 1\nfor e in range(epochs):\n    print('Epoch', e)\n    batches = 0\n    per_batch = 5\n    for x_batch, y_batch in datagen.flow(acldatar, acldatalabel, batch_size=per_batch):\n        x_batches = np.concatenate((x_batch_axial, x_batch), axis = 0)\n        y_batches = np.concatenate((y_batch_axial, y_batch), axis = 0)\n        batches += 1\n        if batches >= len(acldatar) / per_batch:\n            # we need to break the loop by hand because\n            # the generator loops indefinitely\n            break","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#shape of the augmented data array\nx_batches.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.array_equal(x_batches[20],x_batches[21]) #this is to check if 2 slices are same(augmented data)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\n'''print(xtax.shape,x_batches.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Sample augmented data","metadata":{}},{"cell_type":"code","source":"'''import matplotlib.pyplot as plt\nplt.imshow(x_batches[206,:,:,0],cmap = 'gray')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"'''np.save('axialdata',arr = xtax)\nnp.save('augmented_data',arr = x_batches) ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"'''from IPython.display import FileLink\nFileLink(r'axialdata.npy')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#FileLink(r'augmented_data.npy')\nimport gc\ngc.collect()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#del x_batch_axial","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Combine the augmented dataset with the existing dataset and divide to 2 parts(direct concatenation is not possible since very huge arrays)","metadata":{}},{"cell_type":"code","source":"#combining part 1\naxial_train_1 = np.concatenate((xtax[0:3500],acldatar[0:2500],normaldatar[:1000]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#combining part 2\naxial_train_2 = np.concatenate((xtax[4000:5000],acldatar[2000:]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#combining part 3\naxial_train_3 = xtax[8000:12000]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#combining part 4\naxial_train_4 = xtax[12000:]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#combining part 1 label\naxial_train_label_1 = np.concatenate((ytaxf[0:3500],acldatalabel[0:2500],normaldatalabel[:1000]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#combining part 2 label\naxial_train_label_2 = np.concatenate((ytaxf[4000:5000],acldatalabel[2000:]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#combining part 3 label\naxial_train_label_3 = ytaxf[8000:12000]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#combining part 4 label\naxial_train_label_4 = ytaxf[12000:]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(axial_train_1.shape,axial_train_label_1.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#randomizing part 1\naxial_train_1 , axial_train_label_1 = shuffle(axial_train_1 , axial_train_label_1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#randomizing part 2\naxial_train_2 , axial_train_label_2 = shuffle(axial_train_2 , axial_train_label_2)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#randomizing part 3\naxial_train_3 , axial_train_label_3 = shuffle(axial_train_3 , axial_train_label_3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#randomizing part 4\naxial_train_4 , axial_train_label_4 = shuffle(axial_train_4 , axial_train_label_4)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtesttax = np.concatenate((xtax[:1654],xtestax[:250]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytesttaxf = np.concatenate((ytaxf[:1654],ytestaxf[:20]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"'''#combining part 2\naxial_train_2 = np.concatenate((xtax[8580:],x_batches[2000:]))\naxial_train_label_2 = np.concatenate((ytaxf[8580:],y_batches[2000:]))\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"'''#randomizing part 2\naxial_train_2 , axial_train_label_2 = shuffle(axial_train_2 , axial_train_label_2)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"print(\"Shape of the axial plane training dataset = \"+ str(xtax.shape))\nprint(\"Shape of the axial plane training dataset label= \"+ str(ytaxf.shape))\nprint(\"Shape of the axial plane test dataset = \"+ str(xtestax.shape))\nprint(\"Shape of the axial plane test dataset label= \"+ str(ytestaxf.shape))","metadata":{"trusted":true}},{"cell_type":"markdown","source":"ytestaxf[1401]","metadata":{"trusted":true}},{"cell_type":"code","source":"def ax_cnn(input_shape):\n    X_input = Input(input_shape)\n    X = Conv2D(28,(5,5),strides = (1,1),name = 'conv0')(X_input)\n    X = BatchNormalization(axis = 3, name ='bn0')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = AveragePooling2D((7,7), strides= (2,2), name = 'avgpool1')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = Conv2D(10,(5,5),strides = (1,1),name = 'conv1')(X)\n    X = BatchNormalization(axis = 3, name ='bn1')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    X = AveragePooling2D((5,5), strides= (2,2), name = 'avgpool2')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = Conv2D(1,(5,5),strides = (1,1),name = 'conv2')(X)\n    X = BatchNormalization(axis = 3, name ='bn2')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = Flatten()(X)\n    X = Dense(256,activation = 'sigmoid',name = 'd1')(X)\n    X = Dense(64,activation = 'sigmoid',name = 'd2')(X)\n    X = Dense(3,activation = 'sigmoid',name = 'd3')(X)\n    model = Model(inputs = X_input, outputs = X, name='ax_cnn')\n    return model","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn.summary()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn = ax_cnn(xtax.shape[1:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn = ax_cnn([256,256,1])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"axcnn = ax_cnn(xtax.shape[1:])","metadata":{"trusted":true}},{"cell_type":"code","source":"keras.optimizers.Adam(\n   learning_rate = 0.01, beta_1 = 0.9, beta_2 = 0.999, amsgrad = False\n)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn.compile('adam', 'mean_squared_error',metrics = ['accuracy'])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"axcnn.compile('adam', 'binary_crossentropy',metrics = ['accuracy'])","metadata":{"trusted":true}},{"cell_type":"code","source":"axcnn.fit(axial_train_1,axial_train_label_1,epochs = 1, batch_size = 100)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn2.fit(axial_train_2,axial_train_label_2,epochs = 5, batch_size = 50)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn1.fit(axial_train_3,axial_train_label_3,epochs = 5, batch_size = 50)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn1.fit(axial_train_4,axial_train_label_4,epochs = 7, batch_size = 50)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn.save(\"/kaggle/working/axcnn_new.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn = keras.models.load_model(\"../input/ax-cnn/axcnn.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from IPython.display import FileLink\nFileLink(r'axcnn.h5')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axcnn1 = keras.models.load_model(\"/kaggle/working/axcnn1.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"axcnn.fit(xtax,ytaxf,epochs = 1, batch_size = 50)","metadata":{"trusted":true}},{"cell_type":"code","source":"preds = axcnn.evaluate(xtestax,ytestaxf,batch_size = 50,verbose=1, sample_weight=None)\n\nprint (\"Loss = \" + str(preds[0])) \nprint (\"Test Accuracy = \" + str(preds[1]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"preds = axcnn.evaluate(xtestax,ytestaxf,batch_size = 32,verbose=1, sample_weight=None)\n\nprint (\"Loss = \" + str(preds[0]))\nprint (\"Test Accuracy = \" + str(preds[1]))","metadata":{"trusted":true}},{"cell_type":"code","source":"predictimage = xtestax[105]\npredictimage=predictimage.reshape(1,256,256,1)\nprint(axcnn.predict(predictimage))\nprint(ytestaxf[105])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"predictimage = xtestax[890]\npredictimage = predictimage.reshape(1,256,256,1)\nprint(axcnn.predict(predictimage))\nprint(ytestaxf[800])","metadata":{"trusted":true}},{"cell_type":"markdown","source":"ytestaxf[1800]\n","metadata":{"trusted":true}},{"cell_type":"markdown","source":"> ****axcnn.summary()","metadata":{"trusted":true}},{"cell_type":"code","source":"axcnn.save(\"axialmodelpart1.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# ***CORONAL PLANE***","metadata":{}},{"cell_type":"code","source":"xtcor = []\nytcor = []\nfor i in range(1130):\n    for j in range(16):\n        xtcor.append(X_Train_cor[i,j,:,:])\n        ytcor.append(Y_Train_cor[i,:])\n        \nxtcor = np.array(xtcor)        \nytcor = np.array(ytcor)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(xtcor.shape)\nprint(ytcor.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtcor = xtcor.reshape(18080,256,256,1)\nytcor = ytcor.reshape(18080,2,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtestcor = []\nytestcor = []\n\nfor i in range(119):\n    for j in range(16):\n        xtestcor.append(X_Test_cor[i,j,:,:])\n        ytestcor.append(Y_Test_cor[i,:])\n        \nxtestcor = np.array(xtestcor)        \nytestcor = np.array(ytestcor)        \nprint(xtestcor.shape,ytestcor.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtestcor = xtestcor.reshape(1904,256,256,1)\nytestcor = ytestcor.reshape(1904,2,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.amax(xtcor[10])\nxtcor = xtcor.reshape(18080,256,256,1)\nxtestcor = xtestcor.reshape(1904,256,256,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytcorf=[]\nfor i in range(18080):\n    if(ytcor[i,0,0]==1):\n        temp = 0,ytcor[i,0,0],ytcor[i,1,0]\n        ytcorf.append(temp)\n    else:\n        temp = 1,ytcor[i,0,0],ytcor[i,1,0]\n        ytcorf.append(temp)\nytcorf = np.array(ytcorf)\nprint(ytcorf.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytestcorf=[]\nfor i in range(1904):\n    if(ytestcor[i,0,0]==1):\n        temp = 0,ytestcor[i,0,0],ytestcor[i,1,0]\n        ytestcorf.append(temp)\n    else:\n        temp = 1,ytestcor[i,0,0],ytestcor[i,1,0]\n        ytestcorf.append(temp)\nytestcorf = np.array(ytestcorf)\nprint(ytestcorf.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytcorf = ytcorf.reshape(18080,3,1)\nytestcorf = ytestcorf.reshape(1904,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import matplotlib.pyplot as plt\nplt.imshow(xtcor[16,:,:,0],cmap = 'gray')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"indexofacl=[]\nfor i in range(18080):\n    if ytcorf[i,0]==0 and ytcorf[i,1]==1 and ytcorf[i,2]==1:\n        indexofacl.append(i)\nlen(indexofacl)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"indexofnormal=[]\nfor i in range(18080):\n    if ytcorf[i,0]==1 and ytcorf[i,1]==0 and ytcorf[i,2]==0:\n        indexofnormal.append(i)\nlen(indexofnormal)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldata = []\nnormaldatalabel = []\nfor i in indexofnormal:\n    normaldata.append(xtcor[i,:,:,0])\n    normaldatalabel.append(ytcorf[i,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldata = np.array(normaldata)\nnormaldatalabel = np.array(normaldatalabel)\nprint(normaldata.shape,normaldatalabel.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldatar = normaldata.reshape(3472,256,256,1)\nnormaldatalabel = normaldatalabel.reshape(3472,3,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldata = []\nacldatalabel = []\nfor i in indexofacl:\n    acldata.append(xtcor[i,:,:,0])\n    acldatalabel.append(ytcorf[i,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldata = np.array(acldata)\nacldatalabel = np.array(acldatalabel)\nprint(acldata.shape,acldatalabel.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.array_equal(acldata[5],acldata[6])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldatar = acldata.reshape(3328,256,256,1)\nacldatalabel = acldatalabel.reshape(3328,3,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acllabel = []\nfor i in range(3328):\n    acllabel.append([0,0,1])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acllabel = np.array(acllabel)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acllabel","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytcorf","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acllabel = acllabel.reshape(3328,3,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datagen = ImageDataGenerator(rotation_range = 25, fill_mode = 'nearest')\ndatagen.fit(acldatar)\nx_batch_coronal= acldatar\ny_batch_coronal = acldatalabel","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"epochs = 1\nfor e in range(epochs):\n    print('Epoch', e)\n    batches = 0\n    per_batch = 5\n    for x_batch, y_batch in datagen.flow(acldatar, acldatalabel, batch_size=per_batch):\n        x_batches = np.concatenate((x_batch_coronal, x_batch), axis = 0)\n        y_batches = np.concatenate((y_batch_coronal, y_batch), axis = 0)\n        batches += 1\n        if batches >= len(acldatar) / per_batch:\n            # we need to break the loop by hand because\n            # the generator loops indefinitely\n            break","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn = keras.models.load_model(\"../input/ax-cnn/axcnn.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn.summary()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x_batches.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.array_equal(x_batches[20],x_batches[21])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import gc\ngc.collect()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Combining part 1","metadata":{}},{"cell_type":"code","source":"coronal_train_1 = np.concatenate((xtcor[0:3000],acldatar[0:2000],normaldatar[0:700]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_2 = np.concatenate((x_batches[2000:],normaldatar[500:1500]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_3 = np.concatenate((xtcor[5000:6500],acldatar[2000:]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_3 = xtcor[6500:7500]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldatalabel = normaldatalabel.reshape(3472,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_label_1 = np.concatenate((ytcorf[0:3000],acldatalabel[0:2000],normaldatalabel[0:700]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_label_1 = coronal_train_label_1.reshape(5700,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_label_2 = np.concatenate((y_batches[2000:],normaldatalabel[500:1500]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_label_3 = ytcorf[6500:7500]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_label_3 = np.concatenate((ytcorf[5000:6500],acllabel[2000:]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(coronal_train_3.shape,coronal_train_label_3.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_1 , coronal_train_label_1 = shuffle(coronal_train_1 , coronal_train_label_1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_2 , coronal_train_label_2 = shuffle(coronal_train_2 , coronal_train_label_2)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"coronal_train_3 , coronal_train_label_3 = shuffle(coronal_train_3 , coronal_train_label_3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtesttcor = np.concatenate((xtcor[:1500],xtestcor[:404]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytesttcorf = np.concatenate((ytcorf[:1500],ytestcorf[:404]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def cor_cnn(input_shape):\n    X_input = Input(input_shape)\n    X = Conv2D(28,(5,5),strides = (1,1),name = 'conv0')(X_input)\n    X = BatchNormalization(axis = 3, name ='bn0')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = AveragePooling2D((7,7), strides= (2,2), name = 'avgpool1')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = Conv2D(10,(5,5),strides = (1,1),name = 'conv1')(X)\n    X = BatchNormalization(axis = 3, name ='bn1')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = AveragePooling2D((5,5), strides= (2,2), name = 'avgpool2')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = Conv2D(1,(5,5),strides = (1,1),name = 'conv2')(X)\n    X = BatchNormalization(axis = 3, name ='bn2')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.2)(X)\n    \n    X = Flatten()(X)\n    X = Dense(256,activation = 'sigmoid',name = 'd1')(X)\n    X = Dense(64,activation = 'sigmoid',name = 'd2')(X)\n    X = Dense(3,activation = 'sigmoid',name = 'd3')(X)\n    model = Model(inputs = X_input, outputs = X, name='cor_cnn')\n    return model","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cnn = Sequential()\ncnn.add(Conv2D(32, (3, 3), activation=\"relu\", input_shape=(img_width, img_height, 1)))\ncnn.add(MaxPooling2D(pool_size = (2, 2)))\ncnn.add(Conv2D(32, (3, 3), activation=\"relu\", input_shape=(img_width, img_height, 1)))\ncnn.add(MaxPooling2D(pool_size = (2, 2)))\ncnn.add(Conv2D(32, (3, 3), activation=\"relu\", input_shape=(img_width, img_height, 1)))\ncnn.add(MaxPooling2D(pool_size = (2, 2)))\ncnn.add(Conv2D(64, (3, 3), activation=\"relu\", input_shape=(img_width, img_height, 1)))\ncnn.add(MaxPooling2D(pool_size = (2, 2)))\ncnn.add(Conv2D(64, (3, 3), activation=\"relu\", input_shape=(img_width, img_height, 1)))\ncnn.add(MaxPooling2D(pool_size = (2, 2)))\ncnn.add(Flatten())\ncnn.add(Dense(activation = 'relu', units = 256))\ncnn.add(Dense(activation = 'relu', units = 64))\ncnn.add(Dense(activation = 'sigmoid', units = 1))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn = cor_cnn(xtcor.shape[1:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn.summary()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"keras.optimizers.Adam(\n   learning_rate = 0.005, beta_1 = 0.9, beta_2 = 0.999, amsgrad = False\n)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn.compile('adam', 'mean_squared_error',metrics = ['accuracy'])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn.fit(coronal_train_1,coronal_train_label_1,epochs = 3, batch_size = 50)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds = corcnn.evaluate(xtestcor,ytestcorf,batch_size = 50,verbose=1, sample_weight=None)\n\nprint (\"Loss = \" + str(preds[0])) \nprint (\"Test Accuracy = \" + str(preds[1]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"predictimage = xtestcor[100]\npredictimage=predictimage.reshape(1,256,256,1)\nprint(corcnn.predict(predictimage))\nprint(ytestcorf[100])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn.save(\"/kaggle/working/corcnn_new.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn = keras.models.load_model(\"../input/ax-cnn/corcnn_new.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn.summary()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from IPython.display import FileLink\nFileLink(r'corpart.h5')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# ***Sagittal Plane***","metadata":{}},{"cell_type":"code","source":"xtsag = []\nytsag = []\nfor i in range(1130):\n    for j in range(16):\n        xtsag.append(X_Train_sag[i,j,:,:])\n        ytsag.append(Y_Train_sag[i,:])\n        \nxtsag = np.array(xtsag)        \nytsag = np.array(ytsag)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtsag = xtsag.reshape(18080,256,256,1)\nytsag = ytsag.reshape(18080,2,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtestsag = []\nytestsag = []\n\nfor i in range(119):\n    for j in range(16):\n        xtestsag.append(X_Test_sag[i,j,:,:])\n        ytestsag.append(Y_Test_sag[i,:])\n        \nxtestsag = np.array(xtestsag)        \nytestsag = np.array(ytestsag)        \nprint(xtestsag.shape,ytestsag.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtestsag = xtestsag.reshape(1904,256,256,1)\nytestsag = ytestsag.reshape(1904,2,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytsagf=[]\nfor i in range(18080):\n    if(ytsag[i,0,0]==1):\n        temp = 0,ytsag[i,0,0],ytsag[i,1,0]\n        ytsagf.append(temp)\n    else:\n        temp = 1,ytsag[i,0,0],ytsag[i,1,0]\n        ytsagf.append(temp)\nytsagf = np.array(ytsagf)\nprint(ytsagf.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytestsagf=[]\nfor i in range(1904):\n    if(ytestsag[i,0,0]==1):\n        temp = 0,ytestsag[i,0,0],ytestsag[i,1,0]\n        ytestsagf.append(temp)\n    else:\n        temp = 1,ytestsag[i,0,0],ytestsag[i,1,0]\n        ytestsagf.append(temp)\nytestsagf = np.array(ytestsagf)\nprint(ytestsagf.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"indexofacl=[]\nfor i in range(18080):\n    if ytsagf[i,0]==0 and ytsagf[i,1]==1 and ytsagf[i,2]==1:\n        indexofacl.append(i)\nlen(indexofacl)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldata = []\nacldatalabel = []\nfor i in indexofacl:\n    acldata.append(xtsag[i,:,:,0])\n    acldatalabel.append(ytsagf[i,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldata = np.array(acldata)\nacldatalabel = np.array(acldatalabel)\nprint(acldata.shape,acldatalabel.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acldatar = acldata.reshape(3328,256,256,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"indexofnormal=[]\nfor i in range(18080):\n    if ytsagf[i,0]==1 and ytsagf[i,1]==0 and ytsagf[i,2]==0:\n        indexofnormal.append(i)\nlen(indexofnormal)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldata = []\nnormaldatalabel = []\nfor i in indexofnormal:\n    normaldata.append(xtsag[i,:,:,0])\n    normaldatalabel.append(ytsagf[i,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldata = np.array(normaldata)\nnormaldatalabel = np.array(normaldatalabel)\nprint(normaldata.shape,normaldatalabel.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normaldatar = normaldata.reshape(3472,256,256,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"datagen = ImageDataGenerator(rotation_range = 25, fill_mode = 'nearest')\ndatagen.fit(acldatar)\nx_batch_coronal= acldatar\ny_batch_coronal = acldatalabel","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"epochs = 1\nfor e in range(epochs):\n    print('Epoch', e)\n    batches = 0\n    per_batch = 5\n    for x_batch, y_batch in datagen.flow(acldatar, acldatalabel, batch_size=per_batch):\n        x_batches = np.concatenate((x_batch_coronal, x_batch), axis = 0)\n        y_batches = np.concatenate((y_batch_coronal, y_batch), axis = 0)\n        batches += 1\n        if batches >= len(acldatar) / per_batch:\n            # we need to break the loop by hand because\n            # the generator loops indefinitely\n            break","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_1 = np.concatenate((xtsag[0:3000],acldatar[0:2500],normaldatar[0:1000]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_2 = np.concatenate((xtsag[2000:4000],acldatar[2000:],normaldatar[500:1000]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_3 = np.concatenate((xtsag[4000:6000],normaldatar[1000:1500]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_label_1 = np.concatenate((ytsagf[0:3000],acldatalabel[0:2500],normaldatalabel[0:1000]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_label_2 = np.concatenate((ytsagf[2000:4000],acldatalabel[2000:],normaldatalabel[500:1000]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_label_3 = np.concatenate((ytsagf[4000:6000],normaldatalabel[1000:1500]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_1 , sagittal_train_label_1 = shuffle(sagittal_train_1 , sagittal_train_label_1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_2 , sagittal_train_label_2 = shuffle(sagittal_train_2 , sagittal_train_label_2)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_3 , sagittal_train_label_3 = shuffle(sagittal_train_3 , sagittal_train_label_3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagittal_train_3 , sagittal_train_label_3 = shuffle(sagittal_train_3 , sagittal_train_label_3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"xtesttsag = np.concatenate((xtsag[:1600],xtestsag[:304]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ytesttsagf = np.concatenate((ytsagf[:1600],ytestsagf[:304]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def sag_cnn(input_shape):\n    X_input = Input(input_shape)\n    X = Conv2D(28,(5,5),strides = (1,1),name = 'conv0')(X_input)\n    X = BatchNormalization(axis = 3, name ='bn0')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.4)(X)\n    \n    X = AveragePooling2D((7,7), strides= (2,2), name = 'avgpool1')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.4)(X)\n    \n    X = Conv2D(10,(5,5),strides = (1,1),name = 'conv1')(X)\n    X = BatchNormalization(axis = 3, name ='bn1')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.4)(X)\n    \n    X = AveragePooling2D((5,5), strides= (2,2), name = 'avgpool2')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.4)(X)\n    \n    X = Conv2D(1,(5,5),strides = (1,1),name = 'conv2')(X)\n    X = BatchNormalization(axis = 3, name ='bn2')(X)\n    X = Activation('relu')(X)\n    X = Dropout(0.4)(X)\n    \n    X = Flatten()(X)\n    X = Dense(256,activation = 'sigmoid',name = 'd1')(X)\n    X = Dense(64,activation = 'sigmoid',name = 'd2')(X)\n    X = Dense(3,activation = 'sigmoid',name = 'd3')(X)\n    model = Model(inputs = X_input, outputs = X, name='sag_cnn')\n    return model","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn = sag_cnn([256,256,1])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn.summary()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn.compile('adam', 'mean_squared_error',metrics = ['accuracy'])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn.fit(sagittal_train_1,sagittal_train_label_1,epochs = 3, batch_size = 50)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds = sagcnn.evaluate(xtestsag,ytestsagf,batch_size = 50,verbose=1, sample_weight=None)\n\nprint (\"Loss = \" + str(preds[0])) \nprint (\"Test Accuracy = \" + str(preds[1]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"predictimage = xtestsag[151]\npredictimage=predictimage.reshape(1,256,256,1)\nprint(sagcnn.predict(predictimage))\nprint(ytestsagf[151])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn04.save(\"sagpart1.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn.save(\"/kaggle/working/sagcnn_new.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from IPython.display import FileLink\nFileLink(r'sagpart1.h5')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn = keras.models.load_model(\"../input/ax-cnn/sagpart.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# **AGGREGATION**","metadata":{}},{"cell_type":"code","source":"axcnn = keras.models.load_model(\"../input/ax-cnn/axcnn_new.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corcnn = keras.models.load_model(\"../input/ax-cnn/corcnn_new.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn = keras.models.load_model(\"../input/ax-cnn/sagcnn_new.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sagcnn = keras.models.load_model(\"../input/ax-cnn/sagpart.h5\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acl_labels = []\nnormal_labels = []\nabnormal_labels = []\nfor i in range(1130):\n    if labels_train[i,0] == 1 and labels_train[i,1] == 1:\n        acl_labels.append(i)\n    elif labels_train[i,0] == 0 and labels_train[i,1] == 0:\n        normal_labels.append(i)\n    else:\n        abnormal_labels.append(i)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acl_labels = np.array(acl_labels)\nnormal_labels = np.array(normal_labels)\nabnormal_labels = np.array(abnormal_labels)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(abnormal_labels)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"aggregate_labels = np.concatenate((acl_labels[100:],normal_labels[150:],abnormal_labels[650]))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"normal_labels_cropped = normal_labels[:100]\nabnormal_labels_cropped = abnormal_labels[:250]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_data =[]\nfor i in acl_labels:\n    temp = X_Train_ax[i,:,:,:]\n    axial_data.append(temp)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_data = np.array(axial_data)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_data.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_data.reshape(558,16,256,256)","metadata":{"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in normal_labels_cropped:\n    print(i)\n    axial_data.append(X_Train_ax[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in abnormal_labels_cropped:\n    print(i)\n    axial_data.append(X_Train_ax[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"temp = axial_data[250,0,:,:]\ntemp = temp.reshape(1,256,256,1)\nprediction = axcnn.predict(temp)\nprint(prediction)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_a_agg = []\nfor i in range(558):\n    predict_sum = 0\n    for j in range(16):\n        temp = axial_data[i,j,:,:]\n        temp = temp.reshape(1,256,256,1)\n        prediction = axcnn.predict(temp)\n        predict_sum+=prediction\n    predict_sum=predict_sum/16\n    axial_a_agg.append(predict_sum)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_b_agg = np.array(axial_b_agg)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_a_agg = np.array(axial_a_agg)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_a_agg[500]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_a_agg.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"areshape = axial_a_agg.reshape(558,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"areshape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_a_agg_df = pd.DataFrame(data = areshape,columns = [\"ax_normal\",\"ax_abnormal\",\"ax_acl\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(axial_a_agg_df)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_a_agg_df.to_csv('axial_aggregate_new.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from IPython.display import FileLink\nFileLink(r'axial_aggregate.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_data =[]\nfor i in acl_labels:\n    print(i)\n    cor_data.append(X_Train_cor[i,:,:,:])\nfor i in normal_labels_cropped:\n    print(i)\n    cor_data.append(X_Train_cor[i,:,:,:]) \nfor i in abnormal_labels_cropped:\n    print(i)\n    cor_data.append(X_Train_cor[i,:,:,:])    ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_data = np.array(cor_data)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_data.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_a_agg = []\nfor i in range(558):\n    predict_sum = 0\n    for j in range(16):\n        temp = cor_data[i,j,:,:]\n        temp = temp.reshape(1,256,256,1)\n        prediction = corcnn.predict(temp)\n        predict_sum+=prediction\n    predict_sum=predict_sum/16\n    cor_a_agg.append(predict_sum)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_a_agg = np.array(cor_a_agg)\ncreshape = cor_a_agg.reshape(558,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"creshape[259]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_a_agg_df = pd.DataFrame(data = creshape,columns = [\"cor_normal\",\"cor_abnormal\",\"cor_acl\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(cor_a_agg_df)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_a_agg_df.to_csv('coronal_aggregate_new.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from IPython.display import FileLink\nFileLink(r'coronal_aggregate.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_data =[]\nfor i in acl_labels:\n    print(i)\n    sag_data.append(X_Train_sag[i,:,:,:])\nfor i in normal_labels_cropped:\n    print(i)\n    sag_data.append(X_Train_sag[i,:,:,:]) \nfor i in abnormal_labels_cropped:\n    print(i)\n    sag_data.append(X_Train_sag[i,:,:,:])    ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_data = np.array(sag_data)\nsag_data.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_a_agg = []\nfor i in range(558):\n    predict_sum = 0\n    for j in range(16):\n        temp = sag_data[i,j,:,:]\n        temp = temp.reshape(1,256,256,1)\n        prediction = sagcnn.predict(temp)\n        predict_sum+=prediction\n    predict_sum=predict_sum/16\n    sag_a_agg.append(predict_sum)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_a_agg = np.array(sag_a_agg)\nsreshape = sag_a_agg.reshape(558,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_a_agg_df = pd.DataFrame(data = sreshape,columns = [\"sag_normal\",\"sag_abnormal\",\"sag_acl\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(sag_a_agg_df)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_a_agg_df.to_csv('sagittal_aggregate_new.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"FileLink(r'sagittal_aggregate.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_label = []\nfor i in range(208):\n    s_label.append(2)\nfor i in range(100):\n    s_label.append(0)\nfor i in range(250):\n    s_label.append(1)    ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_label = np.array(s_label)\ns_label.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_label.reshape(558,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_label_df = pd.DataFrame(data = s_label,columns = [\"label\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_label_df","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"final_dataset = pd.concat([axial_a_agg_df,cor_a_agg_df,sag_a_agg_df,s_label_df],axis = 1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"final_dataset.to_csv('softmax_dataset_new.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"FileLink(r'softmax_dataset.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"final_dataset","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Test**","metadata":{}},{"cell_type":"code","source":"acl_test_labels = []\nnormal_test_labels = []\nabnormal_test_labels = []\nfor i in range(119):\n    if labels_train[i,0] == 1 and labels_train[i,1] == 1:\n        acl_test_labels.append(i)\n    elif labels_train[i,0] == 0 and labels_train[i,1] == 0:\n        normal_test_labels.append(i)\n    else:\n        abnormal_test_labels.append(i)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acl_test_labels = np.array(acl_test_labels)\nnormal_test_labels = np.array(normal_test_labels)\nabnormal_test_labels = np.array(abnormal_test_labels)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(acl_test_labels.shape,normal_test_labels.shape,abnormal_test_labels.shape)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"aggregate_test_labels = np.concatenate((acl_test_labels,normal_test_labels,abnormal_test_labels))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_test_data =[]\nfor i in acl_test_labels:\n    axial_test_data.append(X_Test_ax[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in normal_test_labels:\n    axial_test_data.append(X_Train_ax[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in abnormal_test_labels:\n    print(i)\n    axial_test_data.append(X_Train_ax[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_test_data = np.array(axial_test_data)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_test_data.shape","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_test_agg = []\nfor i in range(119):\n    predict_sum = 0\n    for j in range(16):\n        temp = axial_test_data[i,j,:,:]\n        temp = temp.reshape(1,256,256,1)\n        prediction = axcnn.predict(temp)\n        predict_sum+=prediction\n    predict_sum=predict_sum/16\n    axial_test_agg.append(predict_sum)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_test_agg = np.array(axial_test_agg)\naxial_test_agg = axial_test_agg.reshape(119,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_test_agg_df = pd.DataFrame(data = axial_test_agg,columns = [\"ax_normal\",\"ax_abnormal\",\"ax_acl\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"axial_test_agg_df","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_test_data =[]\nfor i in acl_test_labels:\n    cor_test_data.append(X_Test_cor[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in normal_test_labels:\n    cor_test_data.append(X_Train_cor[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in abnormal_test_labels:\n    cor_test_data.append(X_Train_cor[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_test_data = np.array(cor_test_data)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_test_agg = []\nfor i in range(119):\n    predict_sum = 0\n    for j in range(16):\n        temp = cor_test_data[i,j,:,:]\n        temp = temp.reshape(1,256,256,1)\n        prediction = corcnn.predict(temp)\n        predict_sum+=prediction\n    predict_sum=predict_sum/16\n    cor_test_agg.append(predict_sum)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_test_agg = np.array(cor_test_agg)\ncor_test_agg = cor_test_agg.reshape(119,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_test_agg_df = pd.DataFrame(data = cor_test_agg,columns = [\"cor_normal\",\"cor_abnormal\",\"cor_acl\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cor_test_agg_df\n","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_test_data =[]\nfor i in acl_test_labels:\n    sag_test_data.append(X_Test_sag[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in normal_test_labels:\n    sag_test_data.append(X_Train_sag[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for i in abnormal_test_labels:\n    sag_test_data.append(X_Train_sag[i,:,:,:])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_test_data = np.array(sag_test_data)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_test_agg = []\nfor i in range(119):\n    predict_sum = 0\n    for j in range(16):\n        temp = sag_test_data[i,j,:,:]\n        temp = temp.reshape(1,256,256,1)\n        prediction = sagcnn.predict(temp)\n        predict_sum+=prediction\n    predict_sum=predict_sum/16\n    sag_test_agg.append(predict_sum)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_test_agg = np.array(sag_test_agg)\nsag_test_agg = sag_test_agg.reshape(119,3)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_test_agg_df = pd.DataFrame(data = sag_test_agg,columns = [\"sag_normal\",\"sag_abnormal\",\"sag_acl\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sag_test_agg_df","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"final_test_dataset = pd.concat([axial_test_agg_df,cor_test_agg_df,sag_test_agg_df,s_test_label_df],axis = 1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_test_label = []\nfor i in range(16):\n    s_test_label.append(2)\nfor i in range(23):\n    s_test_label.append(0)\nfor i in range(80):\n    s_test_label.append(1)    ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_test_label = np.array(s_test_label)\ns_test_label.reshape(119,1)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"s_test_label_df = pd.DataFrame(data = s_test_label,columns = [\"label\"])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"final_test_dataset.to_csv('softmax_test_new.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"FileLink(r'softmax_test.csv')","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}