{"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":"import numpy as np\nimport tensorflow as tf\nfrom tensorflow.keras import layers, models\nimport matplotlib.pyplot as plt\nimport pandas as pd\nfrom scipy import ndimage\nfrom IPython.display import Image\nimport random\nfrom pathlib import Path\nimport cv2\nimport os\nfrom sklearn.preprocessing import LabelEncoder\nfrom sklearn.model_selection import train_test_split","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:03:02.623996Z","iopub.execute_input":"2021-10-28T17:03:02.624307Z","iopub.status.idle":"2021-10-28T17:03:08.174893Z","shell.execute_reply.started":"2021-10-28T17:03:02.624225Z","shell.execute_reply":"2021-10-28T17:03:08.174142Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def gen_images(img):\n  image= cv2.imread(img)\n  image = cv2.resize(image, (128,128))\n  return image","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:03:08.176642Z","iopub.execute_input":"2021-10-28T17:03:08.176949Z","iopub.status.idle":"2021-10-28T17:03:08.184163Z","shell.execute_reply.started":"2021-10-28T17:03:08.176913Z","shell.execute_reply":"2021-10-28T17:03:08.182885Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data = []\nlabels = []\ndir = '../input/nnfl-2021-assignment-1/fire_videos/train'\ndf = pd.read_csv(\"../input/nnfl-2021-assignment-1/fire_videos/train.csv\")\nfor i in range(len(df.File)):\n  if i%11 == 0:\n    imagepath = os.path.join(dir,df.File[i])\n    data.append(gen_images(imagepath))\n    if df.True_Label[i] == 'fire':\n      labels.append([1,0])\n    else:\n      labels.append([0,1])\n  else:\n    continue","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:03:08.186369Z","iopub.execute_input":"2021-10-28T17:03:08.187147Z","iopub.status.idle":"2021-10-28T17:04:15.331930Z","shell.execute_reply.started":"2021-10-28T17:03:08.187109Z","shell.execute_reply":"2021-10-28T17:04:15.331160Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(len(data))\nprint(len(labels))\ndata = np.array(data, dtype=\"float\")/255.0\nlabels = np.array(labels)\n(trainX, testX, trainY, testY) = train_test_split(data,\n\tlabels, test_size=0.10, random_state=42)","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:04:15.333356Z","iopub.execute_input":"2021-10-28T17:04:15.333620Z","iopub.status.idle":"2021-10-28T17:04:16.889282Z","shell.execute_reply.started":"2021-10-28T17:04:15.333587Z","shell.execute_reply":"2021-10-28T17:04:16.888353Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from tensorflow.keras.layers import Dropout\nmodel = models.Sequential()\nmodel.add(layers.Conv2D(64, (5, 5), activation='relu', input_shape=(128, 128, 3)))\nmodel.add(layers.MaxPooling2D((2, 2)))\nmodel.add(layers.Conv2D(128, (3, 3), activation='relu'))\nmodel.add(layers.MaxPooling2D((2, 2)))\nmodel.add(layers.Conv2D(256, (3, 3), activation='relu'))\nmodel.add(layers.Flatten())\nmodel.add(layers.Dense(16, activation='relu'))\nmodel.add(Dropout(0.5))\nmodel.add(layers.Dense(16, activation='relu'))\nmodel.add(Dropout(0.5))\nmodel.add(layers.Dense(10, activation='relu'))\nmodel.add(layers.Dense(10, activation='relu'))\nmodel.add(Dropout(0.2))\nmodel.add(layers.Dense(2, activation='softmax'))\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:05:11.460659Z","iopub.execute_input":"2021-10-28T17:05:11.460937Z","iopub.status.idle":"2021-10-28T17:05:11.554279Z","shell.execute_reply.started":"2021-10-28T17:05:11.460909Z","shell.execute_reply":"2021-10-28T17:05:11.553109Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001), \n              loss='categorical_crossentropy', \n              metrics=['accuracy'])\nmodel.fit(trainX, trainY, validation_data=(testX, testY), epochs=20, batch_size= 64)","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:05:14.490106Z","iopub.execute_input":"2021-10-28T17:05:14.490833Z","iopub.status.idle":"2021-10-28T17:06:40.075494Z","shell.execute_reply.started":"2021-10-28T17:05:14.490781Z","shell.execute_reply":"2021-10-28T17:06:40.074773Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_data = []\ndir = '../input/nnfl-2021-assignment-1/fire_videos/test'\ndf1 = pd.read_csv(\"../input/nnfl-2021-assignment-1/fire_videos/test.csv\")\nfor i in range(len(df1.File)):\n    imagepath = os.path.join(dir,df1.File[i])\n    test_data.append(gen_images(imagepath))\ntest_data = np.array(test_data, dtype=\"float\")/255.0","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:06:40.077170Z","iopub.execute_input":"2021-10-28T17:06:40.077430Z","iopub.status.idle":"2021-10-28T17:07:14.760786Z","shell.execute_reply.started":"2021-10-28T17:06:40.077394Z","shell.execute_reply":"2021-10-28T17:07:14.759976Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_labels=[]\ntest_labels = model.predict(test_data)","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:07:14.762169Z","iopub.execute_input":"2021-10-28T17:07:14.762419Z","iopub.status.idle":"2021-10-28T17:07:17.526665Z","shell.execute_reply.started":"2021-10-28T17:07:14.762387Z","shell.execute_reply":"2021-10-28T17:07:17.525903Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class_prediction = []\nfor i in range(len(test_labels)):\n    class_prediction.append(np.argmax(test_labels[i]))","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:07:17.530544Z","iopub.execute_input":"2021-10-28T17:07:17.530754Z","iopub.status.idle":"2021-10-28T17:07:17.550408Z","shell.execute_reply.started":"2021-10-28T17:07:17.530728Z","shell.execute_reply":"2021-10-28T17:07:17.549708Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred = []\nK = 0\nfor i in class_prediction :\n    if i == 1:\n        pred.append('not_fire')\n        K = K + 1\n    else:\n        pred.append('fire')\nprint(K)","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:07:17.551779Z","iopub.execute_input":"2021-10-28T17:07:17.552091Z","iopub.status.idle":"2021-10-28T17:07:17.561036Z","shell.execute_reply.started":"2021-10-28T17:07:17.552055Z","shell.execute_reply":"2021-10-28T17:07:17.560038Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dict = {'File': df1.File, 'Label': pred} \n     \ndf1 = pd.DataFrame(dict)\n  \n# saving the dataframe\ndf1.to_csv('./subfile35.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2021-10-28T17:07:31.236351Z","iopub.execute_input":"2021-10-28T17:07:31.236866Z","iopub.status.idle":"2021-10-28T17:07:31.254227Z","shell.execute_reply.started":"2021-10-28T17:07:31.236814Z","shell.execute_reply":"2021-10-28T17:07:31.253556Z"},"trusted":true},"execution_count":null,"outputs":[]}]}