diff --git "a/cat-vs-dog-prediction-cnn.ipynb" "b/cat-vs-dog-prediction-cnn.ipynb" --- "a/cat-vs-dog-prediction-cnn.ipynb" +++ "b/cat-vs-dog-prediction-cnn.ipynb" @@ -1 +1,691 @@ -{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","trusted":true},"outputs":[],"source":["import tensorflow as tf\n","from tensorflow.keras.models import Sequential\n","from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense\n","from tensorflow.keras.preprocessing.image import ImageDataGenerator\n","from tensorflow.keras.preprocessing import image\n","import numpy as np\n","import matplotlib.pyplot as plt\n","import os\n","import random"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":["train_datagen = ImageDataGenerator(rescale=1./255,\n"," shear_range=0.2,\n"," zoom_range=0.2,\n"," horizontal_flip=True)\n","training_set = train_datagen.flow_from_directory('/home/hks/ml/Predictions/cat-vs-dog-image-classification-making-prediction/dataset/training_set',\n"," target_size=(64, 64),\n"," batch_size=32,\n"," class_mode='binary')\n","\n","# Data preprocessing for testing\n","test_datagen = ImageDataGenerator(rescale=1./255)\n","test_set = test_datagen.flow_from_directory('/home/hks/ml/Predictions/cat-vs-dog-image-classification-making-prediction/dataset/test_set',\n"," target_size=(64, 64),\n"," batch_size=32,\n"," class_mode='binary')"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":["cnn = Sequential([\n"," Conv2D(filters=32, kernel_size=3, activation='relu', input_shape=(64, 64, 3)),\n"," MaxPooling2D(pool_size=2, strides=2),\n"," Conv2D(filters=32, kernel_size=3, activation='relu'),\n"," MaxPooling2D(pool_size=2, strides=2),\n"," Flatten(),\n"," Dense(units=128, activation='relu'),\n"," Dense(units=1, activation='sigmoid')\n","])"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":["cnn.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":["weights_path = '/home/hks/ml/Predictions/cnn_weights.weights.h5'"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":["# Check if weights file exists, if not, train and save weights\n","if not os.path.exists(weights_path):\n"," # Training the CNN and saving history\n"," history = cnn.fit(x=training_set, validation_data=test_set, epochs=50)\n"," # Save weights after training\n"," cnn.save_weights(weights_path) # Corrected line\n","else:\n"," # Load weights if they exist\n"," cnn.load_weights(weights_path)"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":["if 'history' in locals():\n"," plt.figure(figsize=(8, 6))\n"," plt.plot(history.history['accuracy'], label='Training Accuracy')\n"," plt.plot(history.history['val_accuracy'], label='Validation Accuracy')\n"," plt.title('Model Accuracy')\n"," plt.ylabel('Accuracy')\n"," plt.xlabel('Epoch')\n"," plt.legend(loc='upper left')\n"," plt.show()"]},{"cell_type":"code","execution_count":null,"metadata":{"trusted":true},"outputs":[],"source":["test_image_dir = '/kaggle/input/cat-vs-dog-image-classification-making-prediction/dataset/test_set'\n","categories = os.listdir(test_image_dir)\n","selected_category = random.choice(categories)\n","selected_image = random.choice(os.listdir(os.path.join(test_image_dir, selected_category)))\n","selected_image_path = os.path.join(test_image_dir, selected_category, selected_image)"]},{"cell_type":"code","execution_count":12,"metadata":{"execution":{"iopub.execute_input":"2024-07-28T07:49:35.380370Z","iopub.status.busy":"2024-07-28T07:49:35.379463Z","iopub.status.idle":"2024-07-28T07:49:35.391656Z","shell.execute_reply":"2024-07-28T07:49:35.390715Z","shell.execute_reply.started":"2024-07-28T07:49:35.380338Z"},"trusted":true},"outputs":[],"source":["test_image = image.load_img(selected_image_path, target_size=(64, 64))\n","test_image_array = image.img_to_array(test_image)\n","test_image_array = np.expand_dims(test_image_array, axis=0)\n","test_image_array /= 255.0"]},{"cell_type":"code","execution_count":13,"metadata":{"execution":{"iopub.execute_input":"2024-07-28T07:49:36.311023Z","iopub.status.busy":"2024-07-28T07:49:36.310355Z","iopub.status.idle":"2024-07-28T07:49:36.375184Z","shell.execute_reply":"2024-07-28T07:49:36.374318Z","shell.execute_reply.started":"2024-07-28T07:49:36.310991Z"},"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":["\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 17ms/step\n"]}],"source":["result = cnn.predict(test_image_array)\n","confidence = result[0][0]"]},{"cell_type":"code","execution_count":14,"metadata":{"execution":{"iopub.execute_input":"2024-07-28T07:49:49.438840Z","iopub.status.busy":"2024-07-28T07:49:49.438174Z","iopub.status.idle":"2024-07-28T07:49:49.443219Z","shell.execute_reply":"2024-07-28T07:49:49.442333Z","shell.execute_reply.started":"2024-07-28T07:49:49.438809Z"},"trusted":true},"outputs":[],"source":["if confidence > 0.5:\n"," prediction = 'dog'\n"," confidence_percentage = confidence * 100\n","else:\n"," prediction = 'cat'\n"," confidence_percentage = (1 - confidence) * 100"]},{"cell_type":"code","execution_count":16,"metadata":{"execution":{"iopub.execute_input":"2024-07-28T07:50:27.651744Z","iopub.status.busy":"2024-07-28T07:50:27.651059Z","iopub.status.idle":"2024-07-28T07:50:27.841141Z","shell.execute_reply":"2024-07-28T07:50:27.840257Z","shell.execute_reply.started":"2024-07-28T07:50:27.651710Z"},"trusted":true},"outputs":[{"data":{"image/png":"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nOoZu3fvxoABA4ImFQAYO3YsAGDPnj0AgP3796OzsxOjR48OqrPb7cjPz8fu3bv/7esA0P59QUEBzGZz1+8DgQD27dun1X0ypuLiYrS0tAAAxowZgyeffBL79+/H5s2b8eKLL3aN++mnn0ZdXR1+/vOff+a4oqOjkZOTQ9eIhC+RUD+CCV8en3wF9/7776va2lpVXl6uli1bpuLj45XL5VKnTp1SSn38lQQAdffddwf9+w8//FABUM8//3yQvnLlyiC9pqZG2e12NXfuXBUIBLrq/uu//ksBCPraae3atQqAWrt2rVJKqc7OTpWdna2ysrJUQ0ND0Ot8eluf9RUcAHXfffd1/fell16q7HZ70NclFRUVKjIyUp133nna8Zk5c2bQa91xxx3KYrGoxsZGrXbp0qV0DJ/QnWNx++23KwBBaygtLS0qOztb9e3bt+ursf/93/9VANRrr73WVed2u1VeXl7QsTTil7/8pQKgWlpaPrPus76CGzJkiJo+fbqmHzx4UAFQf/nLX5RSSi1fvlwBUBs2bNBqr7jiCpWSkvKZY1iwYIGyWCz0d4mJiV1fndXW1natb57N4sWLFQB15MgRpZRS5eXlasiQIQqAAqAmT56sWlpaVGNjo0pMTFTLli37zDF9wqxZs9SgQYPOqVb4fMgTUC9k5syZSExMREZGBq6++mpERERgxYoV6NOnT1DdzTffHPTfy5cvR3R0NM4//3zU1dV1/RQUFCAiIgJr164FALz//vvw+Xy49dZbg74au/322//t2Hbv3o2SkhLcfvvtiImJCfrdp7d1rvj9frz33nu49NJL0a9fvy49NTUV3/nOd/DRRx+hubk56N/cdNNNQa81efJk+P1+nDx5sku74YYboJT6tzbq7hyLd955B2PHjsWkSZO6tIiICNx0000oLS3FoUOHAAArV65Enz59cPHFF3fVOZ1O/OAHP/jsg/F/nDlzBlarFREREedUz3C73XA4HJrudDq7fv/p/zWq/eT3n/U6drud/u7T//7fvc6na9LT07F7927s3r0bBw8exLp16xAREYFf//rXGDhwIK666ip89NFHGDduHDIyMvCTn/wEPp9P225sbCzq6uo+c/zCF8Ma6gEIXz6LFy/GgAEDYLVakZycjIEDB2rf+1utVu078GPHjqGpqQlJSUl0uzU1NQDQ9Uadm5sb9PvExMSg794Zn3wdOHTo0HPfoc+gtrYW7e3tGDhwoPa7QYMGIRAIoLy8HEOGDOnSMzMzg+o+GfPZ61znQneOxcmTJ+nflwwaNKjr90OHDsXJkyeRk5OjTcj9+/fv9vg+Ly6XC16vV9M9Hk/X7z/9v0a1n/z+s16Hvfmf/e//3et8ugYAbDYb8vPzu/77yJEj+POf/4xNmzahvr4ec+fOxd13341p06bhe9/7Hh544AH8+te/DtquUupzfSgSzh2ZgHohY8eOpd+VfxqHw6FNSoFAAElJSXj++efpv0lMTPzSxhhKLBYL1VUv6U4fHx+Pzs5OtLS0IDIy8nNtIzU1FadPn9b0yspKAEBaWlpX3af1s2s/qfus1/H7/aipqQn64OPz+XDmzJmufx8XFweHw2H4Op8eE+OOO+7Addddh1GjRuHZZ59FXFwcFi5cCAC466676ATU0NCAhISEzxy/8MWQr+CELnJycnDmzBlMnDgRM2fO1H5GjBgBAMjKygLw8RPTp6mtrf23TxE5OTkAgAMHDnxm3bl+8kxMTERYWBiKioq03x05cgRmsxkZGRnntK3PQ3eORVZWluE4P72trKwsFBcXaxPi8ePHz2lMeXl5AP7levw85Ofn4+jRo9rXl5+YOj55uhg6dCisVit27NgRVOfz+bBnz56gpxCj1wGg/fsdO3YgEAh0/d5sNmPYsGFa3Sdj6tevn+Fk+9Zbb2HTpk343e9+BwCoqKjomjiBjycuNtmWlJR0PZ0KXw0yAQldXHnllfD7/fjNb36j/a6zsxONjY0APl5jstlsePzxx4PeJB999NF/+xqjRo1CdnY2Hn300a7tfcKntxUeHg4AWs3ZWCwWzJo1C6+//jpKS0u79OrqarzwwguYNGmS5uQ6F87Vht2dY3HBBRdg27Zt2Lx5c5fW1taGJ598En379sXgwYMBALNnz8bp06eD/hLf4/HgqaeeOqexFxYWAtDf1LvD5ZdfDr/fjyeffLJL83q9WLp0adfaCfCxW2zmzJl47rnnulxowMfuxdbWVlxxxRVdWnt7O44cORK0rjJ9+nTExcVhyZIlQa+/ZMkShIWFYe7cuUFj2r59e9B+FRUV4YMPPgh6nU/j8/lw55134pe//GXXE1ZycjKOHz+Ozs5OAMDhw4eRkpIS9O+amppQXFyMCRMmnNsBEz4fITRACF8yRn+Iejbz589X4eHh9Hc//OEPFQA1Z84c9cgjj6g//elP6rbbblNpaWlq+fLlXXULFy5UANQFF1yg/vSnP6kbb7xRpaWlqYSEhM90wSn1savOZrOprKws9atf/Uo98cQT6o477lCzZs3qqnnppZcUAPXd735XPffcc+rFF1/s+h3OcsEdOHBAhYeHqz59+qgHHnhAPfTQQ6pfv37K4XCoLVu2/Nvjw8Z4ri647hyLqqoqlZycrKKjo9U999yjHnnkEZWfn69MJpN69dVXu+paWlpU3759lcvlUnfffbd67LHH1NixY1V+fr4CoNatW/dvxzR06FD6l/7r169Xv/nNb9RvfvMblZSUpPr27dv13+vXrw+qveKKK5TValU///nP1RNPPKEmTJigrFarVrdz507lcDiCkhCcTmfQ+VTqX8f50+dOqX+52C6//HL11FNPqeuvv14BUA888EBQXXNzs8rJyVFJSUnq4YcfVo888ojKyMhQaWlpqqamhh6Hhx9+WOXm5iqv19ulVVdXq7CwMHXFFVeoRx55RMXFxam77ror6N+9/PLLCoA6fvw4P8DCl4JMQL2IL2MCUkqpJ598UhUUFCiXy6UiIyPVsGHD1F133aUqKiq6avx+v/r1r3+tUlNTlcvlUlOnTlUHDhzQ/vqfvbkrpdRHH32kzj//fBUZGanCw8PV8OHD1eOPP971+87OTnXrrbeqxMREZTKZgizZ7E1s165davbs2SoiIkKFhYWpadOmqU2bNp3T8fmiE9C5HgullCouLlaXX365iomJUU6nU40dO1a99dZb2jZPnDih5s6dq1wul0pMTFQ//elP1SuvvKIABE2qRvzhD39QERERqr29PUi/7777uuzJZ/+cfUzdbrf62c9+plJSUpTD4VBjxoxRK1eupK/34YcfqgkTJiin06kSExPVggULVHNzc1CN0QSk1MfX3MCBA5Xdblc5OTnqkUceCbK1f0J5ebm6/PLLVVRUlIqIiFAXXnihOnbsGB1TVVWVioyMVG+88Yb2u3fffVfl5eWpmJgYdf3112sxVVdddZWaNGkS3a7w5WFSqpesvApCL+fRRx/FHXfcgVOnTmmW+rNpampCv3798PDDD+PGG2/8D42wd1BVVYXs7GwsW7YMl1xySaiH06uRCUgQeiButzvIVuzxeDBy5Ej4/X4cPXr0nLbx0EMPYenS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","text/plain":["
"]},"metadata":{},"output_type":"display_data"}],"source":["plt.imshow(test_image)\n","plt.title(f'Prediction: {prediction} ({confidence_percentage:.2f}%)')\n","plt.axis('on')\n","plt.show()"]}],"metadata":{"kaggle":{"accelerator":"gpu","dataSources":[{"datasetId":4525768,"sourceId":7742766,"sourceType":"datasetVersion"}],"dockerImageVersionId":30747,"isGpuEnabled":true,"isInternetEnabled":true,"language":"python","sourceType":"notebook"},"kernelspec":{"display_name":"Python 3","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.10.13"}},"nbformat":4,"nbformat_minor":4} +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "7aa8015f", + "metadata": { + "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", + "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", + "execution": { + "iopub.execute_input": "2024-07-28T07:50:50.812612Z", + "iopub.status.busy": "2024-07-28T07:50:50.812264Z", + "iopub.status.idle": "2024-07-28T07:51:03.492936Z", + "shell.execute_reply": "2024-07-28T07:51:03.491916Z" + }, + "papermill": { + "duration": 12.688391, + "end_time": "2024-07-28T07:51:03.495304", + "exception": false, + "start_time": "2024-07-28T07:50:50.806913", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-07-28 07:50:52.599172: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "2024-07-28 07:50:52.599280: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "2024-07-28 07:50:52.733581: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" + ] + } + ], + "source": [ + "import tensorflow as tf\n", + "from tensorflow.keras.models import Sequential\n", + "from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense\n", + "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", + "from tensorflow.keras.preprocessing import image\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import random" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c851da61", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T07:51:03.504520Z", + "iopub.status.busy": "2024-07-28T07:51:03.503985Z", + "iopub.status.idle": "2024-07-28T07:51:06.630320Z", + "shell.execute_reply": "2024-07-28T07:51:06.629540Z" + }, + "papermill": { + "duration": 3.133069, + "end_time": "2024-07-28T07:51:06.632412", + "exception": false, + "start_time": "2024-07-28T07:51:03.499343", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 8000 images belonging to 2 classes.\n", + "Found 2000 images belonging to 2 classes.\n" + ] + } + ], + "source": [ + "train_datagen = ImageDataGenerator(rescale=1./255,\n", + " shear_range=0.2,\n", + " zoom_range=0.2,\n", + " horizontal_flip=True)\n", + "training_set = train_datagen.flow_from_directory('/kaggle/input/cat-vs-dog-image-classification-making-prediction/dataset/training_set',\n", + " target_size=(64, 64),\n", + " batch_size=32,\n", + " class_mode='binary')\n", + "\n", + "# Data preprocessing for testing\n", + "test_datagen = ImageDataGenerator(rescale=1./255)\n", + "test_set = test_datagen.flow_from_directory('/kaggle/input/cat-vs-dog-image-classification-making-prediction/dataset/test_set',\n", + " target_size=(64, 64),\n", + " batch_size=32,\n", + " class_mode='binary')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7e222290", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T07:51:06.642091Z", + "iopub.status.busy": "2024-07-28T07:51:06.641519Z", + "iopub.status.idle": "2024-07-28T07:51:07.377921Z", + "shell.execute_reply": "2024-07-28T07:51:07.376960Z" + }, + "papermill": { + "duration": 0.743675, + "end_time": "2024-07-28T07:51:07.380238", + "exception": false, + "start_time": "2024-07-28T07:51:06.636563", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.10/site-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.\n", + " super().__init__(activity_regularizer=activity_regularizer, **kwargs)\n" + ] + } + ], + "source": [ + "cnn = Sequential([\n", + " Conv2D(filters=32, kernel_size=3, activation='relu', input_shape=(64, 64, 3)),\n", + " MaxPooling2D(pool_size=2, strides=2),\n", + " Conv2D(filters=32, kernel_size=3, activation='relu'),\n", + " MaxPooling2D(pool_size=2, strides=2),\n", + " Flatten(),\n", + " Dense(units=128, activation='relu'),\n", + " Dense(units=1, activation='sigmoid')\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "501a112a", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T07:51:07.389932Z", + "iopub.status.busy": "2024-07-28T07:51:07.389601Z", + "iopub.status.idle": "2024-07-28T07:51:07.402368Z", + "shell.execute_reply": "2024-07-28T07:51:07.401694Z" + }, + "papermill": { + "duration": 0.019565, + "end_time": "2024-07-28T07:51:07.404352", + "exception": false, + "start_time": "2024-07-28T07:51:07.384787", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "cnn.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "99ee9db8", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T07:51:07.413581Z", + "iopub.status.busy": "2024-07-28T07:51:07.413310Z", + "iopub.status.idle": "2024-07-28T07:51:07.417015Z", + "shell.execute_reply": "2024-07-28T07:51:07.416205Z" + }, + "papermill": { + "duration": 0.010426, + "end_time": "2024-07-28T07:51:07.418877", + "exception": false, + "start_time": "2024-07-28T07:51:07.408451", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "weights_path = '/kaggle/working/cnn_weights.weights.h5'" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "9f17c61f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T07:51:07.427947Z", + "iopub.status.busy": "2024-07-28T07:51:07.427673Z", + "iopub.status.idle": "2024-07-28T08:16:58.794960Z", + "shell.execute_reply": "2024-07-28T08:16:58.793911Z" + }, + "papermill": { + "duration": 1551.374344, + "end_time": "2024-07-28T08:16:58.797236", + "exception": false, + "start_time": "2024-07-28T07:51:07.422892", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/50\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.10/site-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.\n", + " self._warn_if_super_not_called()\n", + "2024-07-28 07:51:11.635273: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 0: 6.39927, expected 5.58886\n", + "2024-07-28 07:51:11.635331: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 1: 5.92185, expected 5.11143\n", + "2024-07-28 07:51:11.635345: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 2: 5.99669, expected 5.18628\n", + "2024-07-28 07:51:11.635356: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 3: 6.48891, expected 5.6785\n", + "2024-07-28 07:51:11.635369: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 5: 6.18882, expected 5.37841\n", + "2024-07-28 07:51:11.635386: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 6: 6.76108, expected 5.95067\n", + "2024-07-28 07:51:11.635398: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 7: 6.21291, expected 5.4025\n", + "2024-07-28 07:51:11.635409: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 8: 5.66667, expected 4.85626\n", + "2024-07-28 07:51:11.635420: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 9: 6.27296, expected 5.46255\n", + "2024-07-28 07:51:11.635432: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 10: 6.19325, expected 5.38284\n", + "2024-07-28 07:51:11.637195: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:705] Results mismatch between different convolution algorithms. This is likely a bug/unexpected loss of precision in cudnn.\n", + "(f32[32,32,62,62]{3,2,1,0}, u8[0]{0}) custom-call(f32[32,3,64,64]{3,2,1,0}, f32[32,3,3,3]{3,2,1,0}, f32[32]{0}), window={size=3x3}, dim_labels=bf01_oi01->bf01, custom_call_target=\"__cudnn$convBiasActivationForward\", backend_config={\"conv_result_scale\":1,\"activation_mode\":\"kRelu\",\"side_input_scale\":0,\"leakyrelu_alpha\":0} for eng20{k2=2,k4=1,k5=1,k6=0,k7=0} vs eng15{k5=1,k6=0,k7=1,k10=1}\n", + "2024-07-28 07:51:11.637224: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:270] Device: Tesla P100-PCIE-16GB\n", + "2024-07-28 07:51:11.637253: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:271] Platform: Compute Capability 6.0\n", + "2024-07-28 07:51:11.637268: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:272] Driver: 12040 (550.90.7)\n", + "2024-07-28 07:51:11.637278: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:273] Runtime: \n", + "2024-07-28 07:51:11.637298: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:280] cudnn version: 8.9.0\n", + "2024-07-28 07:51:11.810143: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 0: 6.39927, expected 5.58886\n", + "2024-07-28 07:51:11.810200: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 1: 5.92185, expected 5.11143\n", + "2024-07-28 07:51:11.810215: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 2: 5.99669, expected 5.18628\n", + "2024-07-28 07:51:11.810229: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 3: 6.48891, expected 5.6785\n", + "2024-07-28 07:51:11.810253: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 5: 6.18882, expected 5.37841\n", + "2024-07-28 07:51:11.810264: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 6: 6.76108, expected 5.95067\n", + "2024-07-28 07:51:11.810275: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 7: 6.21291, expected 5.4025\n", + "2024-07-28 07:51:11.810286: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 8: 5.66667, expected 4.85626\n", + "2024-07-28 07:51:11.810298: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 9: 6.27296, expected 5.46255\n", + "2024-07-28 07:51:11.810311: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 10: 6.19325, expected 5.38284\n", + "2024-07-28 07:51:11.811161: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:705] Results mismatch between different convolution algorithms. This is likely a bug/unexpected loss of precision in cudnn.\n", + "(f32[32,32,62,62]{3,2,1,0}, u8[0]{0}) custom-call(f32[32,3,64,64]{3,2,1,0}, f32[32,3,3,3]{3,2,1,0}, f32[32]{0}), window={size=3x3}, dim_labels=bf01_oi01->bf01, custom_call_target=\"__cudnn$convBiasActivationForward\", backend_config={\"conv_result_scale\":1,\"activation_mode\":\"kRelu\",\"side_input_scale\":0,\"leakyrelu_alpha\":0} for eng20{k2=2,k4=1,k5=1,k6=0,k7=0} vs eng15{k5=1,k6=0,k7=1,k10=1}\n", + "2024-07-28 07:51:11.811192: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:270] Device: Tesla P100-PCIE-16GB\n", + "2024-07-28 07:51:11.811206: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:271] Platform: Compute Capability 6.0\n", + "2024-07-28 07:51:11.811220: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:272] Driver: 12040 (550.90.7)\n", + "2024-07-28 07:51:11.811240: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:273] Runtime: \n", + "2024-07-28 07:51:11.811260: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:280] cudnn version: 8.9.0\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m 3/250\u001b[0m \u001b[37m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[1m20s\u001b[0m 85ms/step - accuracy: 0.4948 - loss: 0.9775" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", + "I0000 00:00:1722153073.228217 80 device_compiler.h:186] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m243/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m━\u001b[0m \u001b[1m1s\u001b[0m 161ms/step - accuracy: 0.5563 - loss: 0.7044" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-07-28 07:51:59.966687: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23106: 6.38351, expected 5.64383\n", + "2024-07-28 07:51:59.966744: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23194: 5.12334, expected 4.38367\n", + "2024-07-28 07:51:59.966754: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23218: 6.35016, expected 5.61048\n", + "2024-07-28 07:51:59.966762: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23240: 5.82993, expected 5.09026\n", + "2024-07-28 07:51:59.966770: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23251: 6.18931, expected 5.44964\n", + "2024-07-28 07:51:59.966777: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23270: 6.36522, expected 5.62554\n", + "2024-07-28 07:51:59.966785: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23271: 6.05405, expected 5.31438\n", + "2024-07-28 07:51:59.966793: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23287: 6.26212, expected 5.52245\n", + "2024-07-28 07:51:59.966801: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23314: 6.10609, expected 5.36642\n", + "2024-07-28 07:51:59.966809: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23331: 5.73468, expected 4.995\n", + "2024-07-28 07:51:59.966825: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:705] Results mismatch between different convolution algorithms. This is likely a bug/unexpected loss of precision in cudnn.\n", + "(f32[16,32,62,62]{3,2,1,0}, u8[0]{0}) custom-call(f32[16,3,64,64]{3,2,1,0}, f32[32,3,3,3]{3,2,1,0}, f32[32]{0}), window={size=3x3}, dim_labels=bf01_oi01->bf01, custom_call_target=\"__cudnn$convBiasActivationForward\", backend_config={\"conv_result_scale\":1,\"activation_mode\":\"kRelu\",\"side_input_scale\":0,\"leakyrelu_alpha\":0} for eng20{k2=2,k4=1,k5=1,k6=0,k7=0} vs eng15{k5=1,k6=0,k7=1,k10=1}\n", + "2024-07-28 07:51:59.966833: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:270] Device: Tesla P100-PCIE-16GB\n", + "2024-07-28 07:51:59.966841: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:271] Platform: Compute Capability 6.0\n", + "2024-07-28 07:51:59.966847: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:272] Driver: 12040 (550.90.7)\n", + "2024-07-28 07:51:59.966854: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:273] Runtime: \n", + "2024-07-28 07:51:59.966866: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:280] cudnn version: 8.9.0\n", + "2024-07-28 07:52:00.008538: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23106: 6.38351, expected 5.64383\n", + "2024-07-28 07:52:00.008590: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23194: 5.12334, expected 4.38367\n", + "2024-07-28 07:52:00.008599: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23218: 6.35016, expected 5.61048\n", + "2024-07-28 07:52:00.008607: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23240: 5.82993, expected 5.09026\n", + "2024-07-28 07:52:00.008615: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23251: 6.18931, expected 5.44964\n", + "2024-07-28 07:52:00.008622: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23270: 6.36522, expected 5.62554\n", + "2024-07-28 07:52:00.008630: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23271: 6.05405, expected 5.31438\n", + "2024-07-28 07:52:00.008638: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23287: 6.26212, expected 5.52245\n", + "2024-07-28 07:52:00.008646: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23314: 6.10609, expected 5.36642\n", + "2024-07-28 07:52:00.008664: E external/local_xla/xla/service/gpu/buffer_comparator.cc:1137] Difference at 23331: 5.73468, expected 4.995\n", + "2024-07-28 07:52:00.008680: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:705] Results mismatch between different convolution algorithms. This is likely a bug/unexpected loss of precision in cudnn.\n", + "(f32[16,32,62,62]{3,2,1,0}, u8[0]{0}) custom-call(f32[16,3,64,64]{3,2,1,0}, f32[32,3,3,3]{3,2,1,0}, f32[32]{0}), window={size=3x3}, dim_labels=bf01_oi01->bf01, custom_call_target=\"__cudnn$convBiasActivationForward\", backend_config={\"conv_result_scale\":1,\"activation_mode\":\"kRelu\",\"side_input_scale\":0,\"leakyrelu_alpha\":0} for eng20{k2=2,k4=1,k5=1,k6=0,k7=0} vs eng15{k5=1,k6=0,k7=1,k10=1}\n", + "2024-07-28 07:52:00.008688: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:270] Device: Tesla P100-PCIE-16GB\n", + "2024-07-28 07:52:00.008696: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:271] Platform: Compute Capability 6.0\n", + "2024-07-28 07:52:00.008702: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:272] Driver: 12040 (550.90.7)\n", + "2024-07-28 07:52:00.008709: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:273] Runtime: \n", + "2024-07-28 07:52:00.008720: E external/local_xla/xla/service/gpu/conv_algorithm_picker.cc:280] cudnn version: 8.9.0\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m52s\u001b[0m 189ms/step - accuracy: 0.5575 - loss: 0.7032 - val_accuracy: 0.5940 - val_loss: 0.7075\n", + "Epoch 2/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 108ms/step - accuracy: 0.6480 - loss: 0.6198 - val_accuracy: 0.6615 - val_loss: 0.6100\n", + "Epoch 3/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 107ms/step - accuracy: 0.7039 - loss: 0.5704 - val_accuracy: 0.7200 - val_loss: 0.5532\n", + "Epoch 4/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 107ms/step - accuracy: 0.7240 - loss: 0.5406 - val_accuracy: 0.7335 - val_loss: 0.5515\n", + "Epoch 5/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 111ms/step - accuracy: 0.7422 - loss: 0.5201 - val_accuracy: 0.7505 - val_loss: 0.5182\n", + "Epoch 6/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 106ms/step - accuracy: 0.7535 - loss: 0.5014 - val_accuracy: 0.7405 - val_loss: 0.5360\n", + "Epoch 7/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 113ms/step - accuracy: 0.7723 - loss: 0.4817 - val_accuracy: 0.7530 - val_loss: 0.5243\n", + "Epoch 8/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.7802 - loss: 0.4588 - val_accuracy: 0.7790 - val_loss: 0.4908\n", + "Epoch 9/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.7746 - loss: 0.4603 - val_accuracy: 0.7765 - val_loss: 0.4936\n", + "Epoch 10/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 106ms/step - accuracy: 0.7827 - loss: 0.4496 - val_accuracy: 0.7720 - val_loss: 0.5128\n", + "Epoch 11/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 108ms/step - accuracy: 0.7955 - loss: 0.4283 - val_accuracy: 0.7710 - val_loss: 0.5021\n", + "Epoch 12/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 107ms/step - accuracy: 0.8071 - loss: 0.4188 - val_accuracy: 0.7800 - val_loss: 0.5005\n", + "Epoch 13/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.8127 - loss: 0.3984 - val_accuracy: 0.7945 - val_loss: 0.4851\n", + "Epoch 14/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 105ms/step - accuracy: 0.8237 - loss: 0.3866 - val_accuracy: 0.7755 - val_loss: 0.5020\n", + "Epoch 15/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 107ms/step - accuracy: 0.8229 - loss: 0.3898 - val_accuracy: 0.7825 - val_loss: 0.5094\n", + "Epoch 16/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 107ms/step - accuracy: 0.8265 - loss: 0.3790 - val_accuracy: 0.7860 - val_loss: 0.5039\n", + "Epoch 17/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 110ms/step - accuracy: 0.8415 - loss: 0.3529 - val_accuracy: 0.7845 - val_loss: 0.5114\n", + "Epoch 18/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 108ms/step - accuracy: 0.8447 - loss: 0.3508 - val_accuracy: 0.7840 - val_loss: 0.5060\n", + "Epoch 19/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.8607 - loss: 0.3208 - val_accuracy: 0.7900 - val_loss: 0.5487\n", + "Epoch 20/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m40s\u001b[0m 155ms/step - accuracy: 0.8711 - loss: 0.3126 - val_accuracy: 0.7760 - val_loss: 0.5507\n", + "Epoch 21/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m46s\u001b[0m 181ms/step - accuracy: 0.8634 - loss: 0.3108 - val_accuracy: 0.7630 - val_loss: 0.5786\n", + "Epoch 22/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 139ms/step - accuracy: 0.8684 - loss: 0.2999 - val_accuracy: 0.7670 - val_loss: 0.6191\n", + "Epoch 23/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m38s\u001b[0m 149ms/step - accuracy: 0.8806 - loss: 0.2820 - val_accuracy: 0.7885 - val_loss: 0.5603\n", + "Epoch 24/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 144ms/step - accuracy: 0.8719 - loss: 0.2970 - val_accuracy: 0.7700 - val_loss: 0.6221\n", + "Epoch 25/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m36s\u001b[0m 141ms/step - accuracy: 0.8860 - loss: 0.2701 - val_accuracy: 0.7645 - val_loss: 0.6214\n", + "Epoch 26/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m37s\u001b[0m 145ms/step - accuracy: 0.8923 - loss: 0.2586 - val_accuracy: 0.7865 - val_loss: 0.6405\n", + "Epoch 27/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m44s\u001b[0m 172ms/step - accuracy: 0.8955 - loss: 0.2457 - val_accuracy: 0.7840 - val_loss: 0.5636\n", + "Epoch 28/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 122ms/step - accuracy: 0.9038 - loss: 0.2312 - val_accuracy: 0.7820 - val_loss: 0.6396\n", + "Epoch 29/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.9003 - loss: 0.2356 - val_accuracy: 0.7950 - val_loss: 0.5884\n", + "Epoch 30/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 106ms/step - accuracy: 0.9149 - loss: 0.2186 - val_accuracy: 0.7875 - val_loss: 0.7087\n", + "Epoch 31/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.9036 - loss: 0.2348 - val_accuracy: 0.7815 - val_loss: 0.7269\n", + "Epoch 32/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.9144 - loss: 0.2165 - val_accuracy: 0.7865 - val_loss: 0.6700\n", + "Epoch 33/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m31s\u001b[0m 122ms/step - accuracy: 0.9205 - loss: 0.2039 - val_accuracy: 0.7790 - val_loss: 0.7728\n", + "Epoch 34/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m39s\u001b[0m 114ms/step - accuracy: 0.9211 - loss: 0.1911 - val_accuracy: 0.7855 - val_loss: 0.6496\n", + "Epoch 35/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.9194 - loss: 0.1924 - val_accuracy: 0.7785 - val_loss: 0.6315\n", + "Epoch 36/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 113ms/step - accuracy: 0.9204 - loss: 0.1937 - val_accuracy: 0.7675 - val_loss: 0.8211\n", + "Epoch 37/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 112ms/step - accuracy: 0.9324 - loss: 0.1745 - val_accuracy: 0.7800 - val_loss: 0.8673\n", + "Epoch 38/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m29s\u001b[0m 113ms/step - accuracy: 0.9369 - loss: 0.1588 - val_accuracy: 0.7840 - val_loss: 0.7244\n", + "Epoch 39/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 111ms/step - accuracy: 0.9402 - loss: 0.1567 - val_accuracy: 0.7950 - val_loss: 0.7386\n", + "Epoch 40/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 107ms/step - accuracy: 0.9392 - loss: 0.1633 - val_accuracy: 0.7825 - val_loss: 0.8240\n", + "Epoch 41/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 108ms/step - accuracy: 0.9330 - loss: 0.1631 - val_accuracy: 0.7860 - val_loss: 0.8064\n", + "Epoch 42/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 105ms/step - accuracy: 0.9465 - loss: 0.1354 - val_accuracy: 0.7705 - val_loss: 0.7274\n", + "Epoch 43/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━��━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 107ms/step - accuracy: 0.9388 - loss: 0.1577 - val_accuracy: 0.7785 - val_loss: 0.7972\n", + "Epoch 44/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 110ms/step - accuracy: 0.9380 - loss: 0.1610 - val_accuracy: 0.7920 - val_loss: 0.9024\n", + "Epoch 45/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m27s\u001b[0m 107ms/step - accuracy: 0.9417 - loss: 0.1466 - val_accuracy: 0.7840 - val_loss: 0.8283\n", + "Epoch 46/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 106ms/step - accuracy: 0.9435 - loss: 0.1532 - val_accuracy: 0.7835 - val_loss: 0.8140\n", + "Epoch 47/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 110ms/step - accuracy: 0.9450 - loss: 0.1518 - val_accuracy: 0.7890 - val_loss: 0.8356\n", + "Epoch 48/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 109ms/step - accuracy: 0.9540 - loss: 0.1212 - val_accuracy: 0.7855 - val_loss: 0.8239\n", + "Epoch 49/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 110ms/step - accuracy: 0.9547 - loss: 0.1201 - val_accuracy: 0.7970 - val_loss: 0.8161\n", + "Epoch 50/50\n", + "\u001b[1m250/250\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m28s\u001b[0m 108ms/step - accuracy: 0.9487 - loss: 0.1280 - val_accuracy: 0.7960 - val_loss: 0.7628\n" + ] + } + ], + "source": [ + "# Check if weights file exists, if not, train and save weights\n", + "if not os.path.exists(weights_path):\n", + " # Training the CNN and saving history\n", + " history = cnn.fit(x=training_set, validation_data=test_set, epochs=50)\n", + " # Save weights after training\n", + " cnn.save_weights(weights_path) # Corrected line\n", + "else:\n", + " # Load weights if they exist\n", + " cnn.load_weights(weights_path)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "3321ad4a", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T08:17:00.861434Z", + "iopub.status.busy": "2024-07-28T08:17:00.861081Z", + "iopub.status.idle": "2024-07-28T08:17:01.178602Z", + "shell.execute_reply": "2024-07-28T08:17:01.177719Z" + }, + "papermill": { + "duration": 1.322994, + "end_time": "2024-07-28T08:17:01.180958", + "exception": false, + "start_time": "2024-07-28T08:16:59.857964", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "if 'history' in locals():\n", + " plt.figure(figsize=(8, 6))\n", + " plt.plot(history.history['accuracy'], label='Training Accuracy')\n", + " plt.plot(history.history['val_accuracy'], label='Validation Accuracy')\n", + " plt.title('Model Accuracy')\n", + " plt.ylabel('Accuracy')\n", + " plt.xlabel('Epoch')\n", + " plt.legend(loc='upper left')\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7ec24e7a", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T08:17:03.219732Z", + "iopub.status.busy": "2024-07-28T08:17:03.218908Z", + "iopub.status.idle": "2024-07-28T08:17:03.225232Z", + "shell.execute_reply": "2024-07-28T08:17:03.224475Z" + }, + "papermill": { + "duration": 1.053082, + "end_time": "2024-07-28T08:17:03.227093", + "exception": false, + "start_time": "2024-07-28T08:17:02.174011", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "test_image_dir = '/kaggle/input/cat-vs-dog-image-classification-making-prediction/dataset/test_set'\n", + "categories = os.listdir(test_image_dir)\n", + "selected_category = random.choice(categories)\n", + "selected_image = random.choice(os.listdir(os.path.join(test_image_dir, selected_category)))\n", + "selected_image_path = os.path.join(test_image_dir, selected_category, selected_image)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "31eaadda", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T08:17:05.284002Z", + "iopub.status.busy": "2024-07-28T08:17:05.283219Z", + "iopub.status.idle": "2024-07-28T08:17:05.289744Z", + "shell.execute_reply": "2024-07-28T08:17:05.289041Z" + }, + "papermill": { + "duration": 1.057473, + "end_time": "2024-07-28T08:17:05.291606", + "exception": false, + "start_time": "2024-07-28T08:17:04.234133", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "test_image = image.load_img(selected_image_path, target_size=(64, 64))\n", + "test_image_array = image.img_to_array(test_image)\n", + "test_image_array = np.expand_dims(test_image_array, axis=0)\n", + "test_image_array /= 255.0" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4ecdb34f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T08:17:07.350347Z", + "iopub.status.busy": "2024-07-28T08:17:07.349711Z", + "iopub.status.idle": "2024-07-28T08:17:07.809446Z", + "shell.execute_reply": "2024-07-28T08:17:07.808702Z" + }, + "papermill": { + "duration": 1.523861, + "end_time": "2024-07-28T08:17:07.811296", + "exception": false, + "start_time": "2024-07-28T08:17:06.287435", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 405ms/step\n" + ] + } + ], + "source": [ + "result = cnn.predict(test_image_array)\n", + "confidence = result[0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f030e5fa", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T08:17:09.849244Z", + "iopub.status.busy": "2024-07-28T08:17:09.848899Z", + "iopub.status.idle": "2024-07-28T08:17:09.853683Z", + "shell.execute_reply": "2024-07-28T08:17:09.852824Z" + }, + "papermill": { + "duration": 1.052391, + "end_time": "2024-07-28T08:17:09.855494", + "exception": false, + "start_time": "2024-07-28T08:17:08.803103", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "if confidence > 0.5:\n", + " prediction = 'dog'\n", + " confidence_percentage = confidence * 100\n", + "else:\n", + " prediction = 'cat'\n", + " confidence_percentage = (1 - confidence) * 100" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4269a169", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-28T08:17:11.917152Z", + "iopub.status.busy": "2024-07-28T08:17:11.916803Z", + "iopub.status.idle": "2024-07-28T08:17:12.176311Z", + "shell.execute_reply": "2024-07-28T08:17:12.175430Z" + }, + "papermill": { + "duration": 1.331467, + "end_time": "2024-07-28T08:17:12.178237", + "exception": false, + "start_time": "2024-07-28T08:17:10.846770", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGzCAYAAABpdMNsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABxOUlEQVR4nO2dd5iU1d3+7+kz22YLW4GlCdJBqthFBGs0kqiJSdCYRA0YhSRG8kaNxgTTXlFfxBSDxogYkheNGgsSxQaIiAWQ3ssW2N6mnt8f/NjX2XN/DaOYZ12/n+ua64J7zj7POU87O3Puvb8uY4yBoiiKovyHcTvdAUVRFOXziU5AiqIoiiPoBKQoiqI4gk5AiqIoiiPoBKQoiqI4gk5AiqIoiiPoBKQoiqI4gk5AiqIoiiPoBKQoiqI4gk5Ayn+U3r1748orr2z//8svvwyXy4WXX375mO3D5XLhpz/96THb3medZDKJoUOH4uc//7nTXekU3HzzzRg/frzT3VCgE9Dnioceeggul6v9FQwGMWDAAMyYMQOVlZVOdy8t/vnPf34uJ5mPM+7HHnsMe/bswYwZM1L0NWvW4JxzzkFOTg6ys7MxefJkvPPOO9bPx2Ix3H777ejbty8CgQD69u2LO++8E/F4/Kj2/+Fr7sOvu+66y2q7aNEijBo1CsFgEIWFhbj66qtx8ODBlDaRSATXX389CgsL0aNHD9x5553Wdvbu3YusrCy8/vrr1ns33ngj3n33XfzjH/84qv4rnyJG+dywYMECA8Dccccd5pFHHjF/+MMfzLRp04zb7TZ9+vQxzc3Nn3ofevXqZaZNm9b+/0QiYVpbW00ikUhrO9OnTzfS5dva2mpisdgn6Wan5aPGLTFixAjzne98J0Vbs2aNCQaDpn///uY3v/mN+dWvfmV69+5tcnJyzMaNG1PaXnrppcblcpmrr77azJ8/30ybNs0AMN/+9rePav8AzNlnn20eeeSRlNe6detS2t1///0GgDnrrLPMvHnzzOzZs01GRoYZPny4aW1tbW/3s5/9zOTk5Jhf/vKX5ic/+Ynx+Xxm4cKFKdu6/PLLzVe+8hWxT5deeqk59dRTj6r/yqeHTkCfI45MQKtXr07RZ82aZQBYN/GHaWpqOiZ96DgBfVw+zoO4K5DuuN9++20DwLz44osp+nnnnWfy8vLMwYMH27X9+/ebrKwsc8kll7Rrb775pgFgbrnllpSf//73v29cLpd59913/20fAJjp06d/ZJtIJGJyc3PNaaedZpLJZLv+1FNPGQDm3nvvbdfGjx9vbr/99vb/T5s2zVx++eXt/3/11VdNZmam2bNnj7i/v/3tb8blcplt27b92/4rnx76FZyCiRMnAgB27NgBALjyyiuRlZWFbdu24bzzzkN2djauuOIKAIfXE+bOnYshQ4YgGAyiuLgY11xzDWpra1O2aYzBnXfeiR49eiAjIwNnnnkm1q9fb+1bWgNatWoVzjvvPOTl5SEzMxPDhw/HPffc096/efPmAUj9eucIbA1o7dq1OPfcc5GTk4OsrCycddZZWLlyZUqbI19Rvv7665g1axYKCwuRmZmJL37xi6iurk5pW19fj40bN6K+vv5oDjGeffZZnH766cjOzkZOTg7Gjh2LhQsXtr//6quv4stf/jLKy8sRCATQs2dPzJw5E62tre1t/t24GU888QT8fj9OO+20FP3VV1/FpEmTUFBQ0K6Vlpbi9NNPx9NPP42mpqb2dgBw+eWXp/z85ZdfDmMMHn/88aMaPwC0traira2Nvrdu3TrU1dXhsssuSxnTBRdcgKysLCxatChlO3l5ee3/z8/PR0tLC4DD1+cNN9yAm266CT169BD7MmnSJADAk08+edT9V449OgEp2LZtGwCkPIzi8TimTJmCoqIi/OY3v8HUqVMBANdccw1++MMf4uSTT8Y999yDq666Co8++iimTJmCWCzW/vO33norbrnlFowYMQK//vWv0bdvX0yePBnNzc3/tj9Lly7Faaedhg0bNuCGG27Ab3/7W5x55pl4+umn2/tw9tlnAwAeeeSR9pfE+vXrceqpp+Ldd9/FTTfdhFtuuQU7duzAGWecgVWrVlntr7/+erz77ru47bbbcN111+Gpp56y1k+WLFmCQYMGYcmSJf92PA899BDOP/981NTUYPbs2bjrrrswcuRIPPfcc+1tFi9ejJaWFlx33XW47777MGXKFNx33334xje+0d4m3XEDwBtvvIGhQ4fC5/Ol6JFIBKFQyGqfkZGBaDSKdevWtbcDYLXNyMgAcHgd6Wh46KGHkJmZiVAohMGDB6dMvh+1nyPa2rVrkUwmAQBjx47F73//e7z//vtYsWIFHnvsMYwbNw4A8OCDD+LgwYP44Q9/+JH9CYfD6NevH10jUv6DOP0RTPnPceQruBdffNFUV1ebPXv2mEWLFpmCggITCoXM3r17jTGm/Tv+m2++OeXnX331VQPAPProoyn6c889l6JXVVUZv99vzj///JSvU3784x8bAClfwb300ksGgHnppZeMMcbE43HTp08f06tXL1NbW5uynw9v66O+igJgbrvttvb/X3zxxcbv96d83bJ//36TnZ1tTjvtNOv4TJo0KWVfM2fONB6Px9TV1VltFyxYQPtwhLq6OpOdnW3Gjx+fso7RcTwtLS3Wz86ZM8e4XC6za9euoxo3o0ePHmbq1KmWPmzYMDNgwAATj8fbtUgkYsrLyw0A87e//c0YY8zf//53A8A88sgjKT//wAMPGABm6NCh/7YPJ510kpk7d6558sknzfz5883QoUMNAHP//fe3t6murm5fZ/owGzduNAAMgPavC/fs2WOGDBnSrp966qmmsbHR1NXVmcLCQrNo0aKjOjaTJ082gwYNOqq2yqeDTkCfI448NDu+evXqZZ577rn2dkcmoA8/+Iwx5nvf+54Jh8OmqqrKVFdXp7yysrLMt771LWOMMQsXLjQAUrZpzOGJ6d9NQKtXrzYAzN133/2RYznaCSgej5uMjAxz6aWXWu2uueYa43a7TX19fcrx+etf/5rS7n//938NgKNa7+jI4sWLDQCzZMmSo/6ZpqYmU11dbZYvX24AmCeeeKL9vXQnoFAo1H5ePsz8+fPbz8X69evN+++/by677DLj8/lSJpzW1lbTq1cvU1xcbP7+97+bnTt3mscff9wUFBQYr9dr+vXrd9R9OUIkEjFDhw41ubm5KRPvZZddZrxer/nNb35jtm3bZl555RUzYsSI9j59eE0nGo2atWvXmvXr17cbWGbOnGlOOeUUY8zhX5bGjRtnevToYa6//noTiUSsflx22WWmsLAw7f4rxw79Cu5zyLx587B06VK89NJL2LBhA7Zv344pU6aktPF6vdZ36Fu2bEF9fT2KiopQWFiY8mpqakJVVRUAYNeuXQCA/v37p/x8YWFhynf3jCNfBw4dOvQTjfEI1dXVaGlpwfHHH2+9N2jQICSTSezZsydFLy8vT/n/kT53XOc6Go52PLt378aVV16J/Px8ZGVlobCwEKeffjoAHPU6k4QhRY+vvfZa/PjHP8bChQsxZMgQDBs2DNu2bcNNN90EAMjK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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.imshow(test_image)\n", + "plt.title(f'Prediction: {prediction} ({confidence_percentage:.2f}%)')\n", + "plt.axis('on')\n", + "plt.show()" + ] + } + ], + "metadata": { + "kaggle": { + "accelerator": "gpu", + "dataSources": [ + { + "datasetId": 4525768, + "sourceId": 7742766, + "sourceType": "datasetVersion" + } + ], + "dockerImageVersionId": 30747, + "isGpuEnabled": true, + "isInternetEnabled": true, + "language": "python", + "sourceType": "notebook" + }, + "kernelspec": { + "display_name": "Python 3", + "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.10.13" + }, + "papermill": { + "default_parameters": {}, + "duration": 1586.959109, + "end_time": "2024-07-28T08:17:15.006418", + "environment_variables": {}, + "exception": null, + "input_path": "__notebook__.ipynb", + "output_path": "__notebook__.ipynb", + "parameters": {}, + "start_time": "2024-07-28T07:50:48.047309", + "version": "2.5.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}