{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "9b9920a0", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-12-05 23:24:19.525108: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2022-12-05 23:24:19.670858: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:19.670876: I tensorflow/compiler/xla/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n", "2022-12-05 23:24:20.414074: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:20.414150: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:20.414157: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n" ] } ], "source": [ "import numpy as np \n", "import pandas as pd \n", "import cv2\n", "import matplotlib.pyplot as plt\n", "import tensorflow as tf\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Dense, Flatten, Dropout, Activation, Conv2D, MaxPooling2D\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 the files in the input directory\n", "\n", "import os\n", "print(os.listdir(\"Biedap/input\"))\n", "\n", "import zipfile\n", "\n", "with zipfile.ZipFile(\"Biedap/input/train.zip\",\"r\") as z:\n", " z.extractall(\".\")\n", " \n", "with zipfile.ZipFile(\"Biedap/input/test1.zip\",\"r\") as z:\n", " z.extractall(\".\")\n", "\n", "# Any results you write to the current directory are saved as output.\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "c75fb867", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "main_dir = \"Biedap\"\n", "train_dir = \"train\"\n", "path = os.path.join(main_dir,train_dir)\n", "\n", "for p in os.listdir(path):\n", " category = p.split(\".\")[0]\n", " img_array = cv2.imread(os.path.join(path,p),cv2.IMREAD_GRAYSCALE)\n", " new_img_array = cv2.resize(img_array, dsize=(80, 80))\n", " plt.imshow(new_img_array,cmap=\"gray\")\n", " break" ] }, { "cell_type": "code", "execution_count": 3, "id": "b53d4e6a", "metadata": {}, "outputs": [], "source": [ "X = []\n", "y = []\n", "convert = lambda category : int(category == 'dog')\n", "def create_test_data(path):\n", " for p in os.listdir(path):\n", " category = p.split(\".\")[0]\n", " category = convert(category)\n", " img_array = cv2.imread(os.path.join(path,p),cv2.IMREAD_GRAYSCALE)\n", " new_img_array = cv2.resize(img_array, dsize=(80, 80))\n", " X.append(new_img_array)\n", " y.append(category) " ] }, { "cell_type": "code", "execution_count": 4, "id": "06c750ba", "metadata": {}, "outputs": [], "source": [ "create_test_data(path)\n", "X = np.array(X).reshape(-1, 80,80,1)\n", "y = np.array(y)" ] }, { "cell_type": "code", "execution_count": 5, "id": "0f0ca8a2", "metadata": {}, "outputs": [], "source": [ "X = X/255.0" ] }, { "cell_type": "code", "execution_count": 6, "id": "51887369", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-12-05 23:24:40.180280: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", "2022-12-05 23:24:40.180611: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180666: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublas.so.11'; dlerror: libcublas.so.11: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180712: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublasLt.so.11'; dlerror: libcublasLt.so.11: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180764: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcufft.so.10'; dlerror: libcufft.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180810: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcurand.so.10'; dlerror: libcurand.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180855: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180898: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusparse.so.11'; dlerror: libcusparse.so.11: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180943: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/mosquito/anaconda3/lib/python3.9/site-packages/cv2/../../lib64:\n", "2022-12-05 23:24:40.180951: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1934] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n", "Skipping registering GPU devices...\n", "2022-12-05 23:24:40.181384: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" ] } ], "source": [ "model = Sequential()\n", "# Adds a densely-connected layer with 64 units to the model:\n", "model.add(Conv2D(64,(3,3), activation = 'relu', input_shape = X.shape[1:]))\n", "model.add(MaxPooling2D(pool_size = (2,2)))\n", "# Add another:\n", "model.add(Conv2D(64,(3,3), activation = 'relu'))\n", "model.add(MaxPooling2D(pool_size = (2,2)))\n", "\n", "model.add(Flatten())\n", "model.add(Dense(64, activation='relu'))\n", "# Add a softmax layer with 10 output units:\n", "model.add(Dense(1, activation='sigmoid'))\n", "\n", "model.compile(optimizer=\"adam\",\n", " loss='binary_crossentropy',\n", " metrics=['accuracy'])" ] }, { "cell_type": "code", "execution_count": 7, "id": "5f4505e5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "101/625 [===>..........................] - ETA: 1:04 - loss: 0.6977 - accuracy: 0.5309" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [7]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m32\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalidation_split\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0.2\u001b[39;49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/keras/utils/traceback_utils.py:65\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 63\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 65\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 66\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 67\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/keras/engine/training.py:1650\u001b[0m, in \u001b[0;36mModel.fit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)\u001b[0m\n\u001b[1;32m 1642\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m tf\u001b[38;5;241m.\u001b[39mprofiler\u001b[38;5;241m.\u001b[39mexperimental\u001b[38;5;241m.\u001b[39mTrace(\n\u001b[1;32m 1643\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrain\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 1644\u001b[0m epoch_num\u001b[38;5;241m=\u001b[39mepoch,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1647\u001b[0m _r\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m,\n\u001b[1;32m 1648\u001b[0m ):\n\u001b[1;32m 1649\u001b[0m callbacks\u001b[38;5;241m.\u001b[39mon_train_batch_begin(step)\n\u001b[0;32m-> 1650\u001b[0m tmp_logs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_function\u001b[49m\u001b[43m(\u001b[49m\u001b[43miterator\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1651\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data_handler\u001b[38;5;241m.\u001b[39mshould_sync:\n\u001b[1;32m 1652\u001b[0m context\u001b[38;5;241m.\u001b[39masync_wait()\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/tensorflow/python/util/traceback_utils.py:150\u001b[0m, in \u001b[0;36mfilter_traceback..error_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 148\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 149\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 150\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 151\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 152\u001b[0m filtered_tb \u001b[38;5;241m=\u001b[39m _process_traceback_frames(e\u001b[38;5;241m.\u001b[39m__traceback__)\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:880\u001b[0m, in \u001b[0;36mFunction.__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 877\u001b[0m compiler \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mxla\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnonXla\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 879\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m OptionalXlaContext(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_jit_compile):\n\u001b[0;32m--> 880\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 882\u001b[0m new_tracing_count \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexperimental_get_tracing_count()\n\u001b[1;32m 883\u001b[0m without_tracing \u001b[38;5;241m=\u001b[39m (tracing_count \u001b[38;5;241m==\u001b[39m new_tracing_count)\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py:912\u001b[0m, in \u001b[0;36mFunction._call\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 909\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39mrelease()\n\u001b[1;32m 910\u001b[0m \u001b[38;5;66;03m# In this case we have created variables on the first call, so we run the\u001b[39;00m\n\u001b[1;32m 911\u001b[0m \u001b[38;5;66;03m# defunned version which is guaranteed to never create variables.\u001b[39;00m\n\u001b[0;32m--> 912\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_no_variable_creation_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# pylint: disable=not-callable\u001b[39;00m\n\u001b[1;32m 913\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_variable_creation_fn \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 914\u001b[0m \u001b[38;5;66;03m# Release the lock early so that multiple threads can perform the call\u001b[39;00m\n\u001b[1;32m 915\u001b[0m \u001b[38;5;66;03m# in parallel.\u001b[39;00m\n\u001b[1;32m 916\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock\u001b[38;5;241m.\u001b[39mrelease()\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/tensorflow/python/eager/polymorphic_function/tracing_compiler.py:134\u001b[0m, in \u001b[0;36mTracingCompiler.__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lock:\n\u001b[1;32m 132\u001b[0m (concrete_function,\n\u001b[1;32m 133\u001b[0m filtered_flat_args) \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_maybe_define_function(args, kwargs)\n\u001b[0;32m--> 134\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mconcrete_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_flat\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[43m \u001b[49m\u001b[43mfiltered_flat_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcaptured_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mconcrete_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcaptured_inputs\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/tensorflow/python/eager/polymorphic_function/monomorphic_function.py:1745\u001b[0m, in \u001b[0;36mConcreteFunction._call_flat\u001b[0;34m(self, args, captured_inputs, cancellation_manager)\u001b[0m\n\u001b[1;32m 1741\u001b[0m possible_gradient_type \u001b[38;5;241m=\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPossibleTapeGradientTypes(args)\n\u001b[1;32m 1742\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (possible_gradient_type \u001b[38;5;241m==\u001b[39m gradients_util\u001b[38;5;241m.\u001b[39mPOSSIBLE_GRADIENT_TYPES_NONE\n\u001b[1;32m 1743\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m executing_eagerly):\n\u001b[1;32m 1744\u001b[0m \u001b[38;5;66;03m# No tape is watching; skip to running the function.\u001b[39;00m\n\u001b[0;32m-> 1745\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_build_call_outputs(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_inference_function\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1746\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcancellation_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcancellation_manager\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 1747\u001b[0m forward_backward \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_select_forward_and_backward_functions(\n\u001b[1;32m 1748\u001b[0m args,\n\u001b[1;32m 1749\u001b[0m possible_gradient_type,\n\u001b[1;32m 1750\u001b[0m executing_eagerly)\n\u001b[1;32m 1751\u001b[0m forward_function, args_with_tangents \u001b[38;5;241m=\u001b[39m forward_backward\u001b[38;5;241m.\u001b[39mforward()\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/tensorflow/python/eager/polymorphic_function/monomorphic_function.py:378\u001b[0m, in \u001b[0;36m_EagerDefinedFunction.call\u001b[0;34m(self, ctx, args, cancellation_manager)\u001b[0m\n\u001b[1;32m 376\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m _InterpolateFunctionError(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 377\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cancellation_manager \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 378\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[43mexecute\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 379\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msignature\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 380\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_num_outputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 381\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 382\u001b[0m \u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 383\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mctx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 385\u001b[0m outputs \u001b[38;5;241m=\u001b[39m execute\u001b[38;5;241m.\u001b[39mexecute_with_cancellation(\n\u001b[1;32m 386\u001b[0m \u001b[38;5;28mstr\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msignature\u001b[38;5;241m.\u001b[39mname),\n\u001b[1;32m 387\u001b[0m num_outputs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_outputs,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 390\u001b[0m ctx\u001b[38;5;241m=\u001b[39mctx,\n\u001b[1;32m 391\u001b[0m cancellation_manager\u001b[38;5;241m=\u001b[39mcancellation_manager)\n", "File \u001b[0;32m~/anaconda3/lib/python3.9/site-packages/tensorflow/python/eager/execute.py:52\u001b[0m, in \u001b[0;36mquick_execute\u001b[0;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 51\u001b[0m ctx\u001b[38;5;241m.\u001b[39mensure_initialized()\n\u001b[0;32m---> 52\u001b[0m tensors \u001b[38;5;241m=\u001b[39m \u001b[43mpywrap_tfe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mTFE_Py_Execute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdevice_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mop_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 53\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mattrs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_outputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m core\u001b[38;5;241m.\u001b[39m_NotOkStatusException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "model.fit(X, y, epochs=10, batch_size=32, validation_split=0.2)" ] }, { "cell_type": "code", "execution_count": null, "id": "8911bb04", "metadata": {}, "outputs": [], "source": [ "train_dir = \"test1\"\n", "path = os.path.join(main_dir,train_dir)\n", "#os.listdir(path)\n", "\n", "X_test = []\n", "id_line = []\n", "def create_test1_data(path):\n", " for p in os.listdir(path):\n", " id_line.append(p.split(\".\")[0])\n", " img_array = cv2.imread(os.path.join(path,p),cv2.IMREAD_GRAYSCALE)\n", " new_img_array = cv2.resize(img_array, dsize=(80, 80))\n", " X_test.append(new_img_array)\n", "create_test1_data(path)\n", "X_test = np.array(X_test).reshape(-1,80,80,1)\n", "X_test = X_test/255" ] }, { "cell_type": "code", "execution_count": null, "id": "42272427", "metadata": {}, "outputs": [], "source": [ "predictions = model.predict(X_test)" ] }, { "cell_type": "code", "execution_count": null, "id": "5ae67dfc", "metadata": {}, "outputs": [], "source": [ "predicted_val = [int(round(p[0])) for p in predictions]" ] }, { "cell_type": "code", "execution_count": null, "id": "71d5b53e", "metadata": {}, "outputs": [], "source": [ "submission_df = pd.DataFrame({'id':id_line, 'label':predicted_val})" ] }, { "cell_type": "code", "execution_count": null, "id": "c664c69d", "metadata": {}, "outputs": [], "source": [ "submission_df.to_csv(\"submission.csv\", index=False)" ] }, { "cell_type": "code", "execution_count": null, "id": "2a3ac546", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }