{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np \nimport pandas as pd \nimport os\nfrom tensorflow import keras\nimport tensorflow as tf\nfrom keras import Sequential\nfrom keras.layers import Dense, Conv2D, MaxPooling2D, Activation, BatchNormalization, Flatten, Dropout\nfrom keras.utils.np_utils import to_categorical\nfrom keras.preprocessing.image import ImageDataGenerator\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-09-19T09:18:40.721012Z","iopub.execute_input":"2023-09-19T09:18:40.721981Z","iopub.status.idle":"2023-09-19T09:18:49.544776Z","shell.execute_reply.started":"2023-09-19T09:18:40.721941Z","shell.execute_reply":"2023-09-19T09:18:49.542776Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stdout","text":"/kaggle/input/cifar-10/trainLabels.csv\n/kaggle/input/cifar-10/sampleSubmission.csv\n/kaggle/input/cifar-10/test.7z\n/kaggle/input/cifar-10/train.7z\n","output_type":"stream"}]},{"cell_type":"code","source":"!pip install py7zr","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:18:49.546721Z","iopub.execute_input":"2023-09-19T09:18:49.547516Z","iopub.status.idle":"2023-09-19T09:19:04.439755Z","shell.execute_reply.started":"2023-09-19T09:18:49.547475Z","shell.execute_reply":"2023-09-19T09:19:04.438603Z"},"trusted":true},"execution_count":2,"outputs":[{"name":"stdout","text":"Collecting py7zr\n  Downloading py7zr-0.20.6-py3-none-any.whl (66 kB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.7/66.7 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hRequirement already satisfied: texttable in /opt/conda/lib/python3.10/site-packages (from py7zr) (1.6.7)\nCollecting pycryptodomex>=3.6.6 (from py7zr)\n  Downloading pycryptodomex-3.19.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m26.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n\u001b[?25hCollecting pyzstd>=0.14.4 (from py7zr)\n  Downloading pyzstd-0.15.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (412 kB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m412.3/412.3 kB\u001b[0m \u001b[31m35.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hCollecting pyppmd<1.1.0,>=0.18.1 (from py7zr)\n  Downloading pyppmd-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138 kB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m138.8/138.8 kB\u001b[0m \u001b[31m14.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hCollecting pybcj>=0.6.0 (from py7zr)\n  Downloading pybcj-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49 kB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.8/49.8 kB\u001b[0m \u001b[31m4.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hCollecting multivolumefile>=0.2.3 (from py7zr)\n  Downloading multivolumefile-0.2.3-py3-none-any.whl (17 kB)\nCollecting brotli>=1.0.9 (from py7zr)\n  Downloading Brotli-1.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.0 MB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.0/3.0 MB\u001b[0m \u001b[31m73.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m\n\u001b[?25hCollecting inflate64>=0.3.1 (from py7zr)\n  Downloading inflate64-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (93 kB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m93.1/93.1 kB\u001b[0m \u001b[31m9.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hRequirement already satisfied: psutil in /opt/conda/lib/python3.10/site-packages (from py7zr) (5.9.3)\nInstalling collected packages: brotli, pyzstd, pyppmd, pycryptodomex, pybcj, multivolumefile, inflate64, py7zr\nSuccessfully installed brotli-1.1.0 inflate64-0.3.1 multivolumefile-0.2.3 py7zr-0.20.6 pybcj-1.0.1 pycryptodomex-3.19.0 pyppmd-1.0.0 pyzstd-0.15.9\n","output_type":"stream"}]},{"cell_type":"code","source":"from py7zr import unpack_7zarchive\nimport shutil\n\nshutil.register_unpack_format('7zip',['.7z'],unpack_7zarchive)\nshutil.unpack_archive('../input/cifar-10/train.7z', '/kaggle/temp/')\ntrain_labels = pd.read_csv(\"../input/cifar-10/trainLabels.csv\", header=\"infer\")\n\nclasses = train_labels['label'].unique()\nprint(classes)","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:19:04.441265Z","iopub.execute_input":"2023-09-19T09:19:04.441736Z","iopub.status.idle":"2023-09-19T09:20:00.127442Z","shell.execute_reply.started":"2023-09-19T09:19:04.441681Z","shell.execute_reply":"2023-09-19T09:20:00.126217Z"},"trusted":true},"execution_count":3,"outputs":[{"name":"stdout","text":"['frog' 'truck' 'deer' 'automobile' 'bird' 'horse' 'ship' 'cat' 'dog'\n 'airplane']\n","output_type":"stream"}]},{"cell_type":"code","source":"if not os.path.exists(\"/kaggle/temp/valid\"):\n    os.mkdir(\"/kaggle/temp/valid\")\n    \nparent_path_train = \"/kaggle/temp/train\"\nparent_path_valid = \"/kaggle/temp/valid\"\nparent_path_test = \"/kaggle/temp/test\"\n\nfor class1 in classes:\n    path_train = os.path.join(parent_path_train,class1)\n    if not os.path.exists(path_train):\n        os.mkdir(path_train)\n    path_valid = os.path.join(parent_path_valid,class1)\n    if not os.path.exists(path_valid):\n        os.mkdir(path_valid)\n        \nfor (int_ind,row) in train_labels.iterrows():\n    id = str(row[\"id\"])+\".png\"\n    source_path = os.path.join(parent_path_train,id)\n    \n    p=np.random.random()\n    if p<=0.8:\n        target_path = os.path.join(parent_path_train,row[\"label\"],id)\n        os.replace(source_path, target_path)\n    else:\n        target_path = os.path.join(parent_path_valid,row[\"label\"],id)\n        os.replace(source_path, target_path)\n","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:20:00.130392Z","iopub.execute_input":"2023-09-19T09:20:00.131183Z","iopub.status.idle":"2023-09-19T09:20:06.069403Z","shell.execute_reply.started":"2023-09-19T09:20:00.131147Z","shell.execute_reply":"2023-09-19T09:20:06.068491Z"},"trusted":true},"execution_count":4,"outputs":[]},{"cell_type":"code","source":"!ls /kaggle/temp/valid\n!ls /kaggle/temp/train","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:20:06.070436Z","iopub.execute_input":"2023-09-19T09:20:06.070712Z","iopub.status.idle":"2023-09-19T09:20:08.117109Z","shell.execute_reply.started":"2023-09-19T09:20:06.070689Z","shell.execute_reply":"2023-09-19T09:20:08.11568Z"},"trusted":true},"execution_count":5,"outputs":[{"name":"stdout","text":"airplane  automobile  bird  cat  deer  dog  frog  horse  ship  truck\nairplane  automobile  bird  cat  deer  dog  frog  horse  ship  truck\n","output_type":"stream"}]},{"cell_type":"code","source":"model = Sequential()\nmodel.add(Conv2D(32, (3,3), padding='same', input_shape=(32,32,3)))\nmodel.add(Activation('relu'))\nmodel.add(BatchNormalization())\nmodel.add(Conv2D(32, (3,3), padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(BatchNormalization())\nmodel.add(MaxPooling2D(pool_size=(2,2)))\nmodel.add(Dropout(0.2))\n\nmodel.add(Conv2D(2*32, (3,3), padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(BatchNormalization())\nmodel.add(Conv2D(2*32, (3,3), padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(BatchNormalization())\nmodel.add(MaxPooling2D(pool_size=(2,2)))\nmodel.add(Dropout(0.3))\n\nmodel.add(Conv2D(4*32, (3,3), padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(BatchNormalization())\nmodel.add(Conv2D(4*32, (3,3), padding='same'))\nmodel.add(Activation('relu'))\nmodel.add(BatchNormalization())\nmodel.add(MaxPooling2D(pool_size=(2,2)))\nmodel.add(Dropout(0.4))\n\nmodel.add(Flatten())\nmodel.add(Dense(10, activation='softmax'))\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:20:08.119514Z","iopub.execute_input":"2023-09-19T09:20:08.119987Z","iopub.status.idle":"2023-09-19T09:20:08.566546Z","shell.execute_reply.started":"2023-09-19T09:20:08.119943Z","shell.execute_reply":"2023-09-19T09:20:08.565747Z"},"trusted":true},"execution_count":6,"outputs":[{"name":"stdout","text":"Model: \"sequential\"\n_________________________________________________________________\n Layer (type)                Output Shape              Param #   \n=================================================================\n conv2d (Conv2D)             (None, 32, 32, 32)        896       \n                                                                 \n activation (Activation)     (None, 32, 32, 32)        0         \n                                                                 \n batch_normalization (BatchN  (None, 32, 32, 32)       128       \n ormalization)                                                   \n                                                                 \n conv2d_1 (Conv2D)           (None, 32, 32, 32)        9248      \n                                                                 \n activation_1 (Activation)   (None, 32, 32, 32)        0         \n                                                                 \n batch_normalization_1 (Batc  (None, 32, 32, 32)       128       \n hNormalization)                                                 \n                                                                 \n max_pooling2d (MaxPooling2D  (None, 16, 16, 32)       0         \n )                                                               \n                                                                 \n dropout (Dropout)           (None, 16, 16, 32)        0         \n                                                                 \n conv2d_2 (Conv2D)           (None, 16, 16, 64)        18496     \n                                                                 \n activation_2 (Activation)   (None, 16, 16, 64)        0         \n                                                                 \n batch_normalization_2 (Batc  (None, 16, 16, 64)       256       \n hNormalization)                                                 \n                                                                 \n conv2d_3 (Conv2D)           (None, 16, 16, 64)        36928     \n                                                                 \n activation_3 (Activation)   (None, 16, 16, 64)        0         \n                                                                 \n batch_normalization_3 (Batc  (None, 16, 16, 64)       256       \n hNormalization)                                                 \n                                                                 \n max_pooling2d_1 (MaxPooling  (None, 8, 8, 64)         0         \n 2D)                                                             \n                                                                 \n dropout_1 (Dropout)         (None, 8, 8, 64)          0         \n                                                                 \n conv2d_4 (Conv2D)           (None, 8, 8, 128)         73856     \n                                                                 \n activation_4 (Activation)   (None, 8, 8, 128)         0         \n                                                                 \n batch_normalization_4 (Batc  (None, 8, 8, 128)        512       \n hNormalization)                                                 \n                                                                 \n conv2d_5 (Conv2D)           (None, 8, 8, 128)         147584    \n                                                                 \n activation_5 (Activation)   (None, 8, 8, 128)         0         \n                                                                 \n batch_normalization_5 (Batc  (None, 8, 8, 128)        512       \n hNormalization)                                                 \n                                                                 \n max_pooling2d_2 (MaxPooling  (None, 4, 4, 128)        0         \n 2D)                                                             \n                                                                 \n dropout_2 (Dropout)         (None, 4, 4, 128)         0         \n                                                                 \n flatten (Flatten)           (None, 2048)              0         \n                                                                 \n dense (Dense)               (None, 10)                20490     \n                                                                 \n=================================================================\nTotal params: 309,290\nTrainable params: 308,394\nNon-trainable params: 896\n_________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"code","source":"from tensorflow.keras.optimizers import Adam\nopt = Adam(learning_rate=1.0e-4)\n\n","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:20:08.567815Z","iopub.execute_input":"2023-09-19T09:20:08.56812Z","iopub.status.idle":"2023-09-19T09:20:08.586742Z","shell.execute_reply.started":"2023-09-19T09:20:08.568095Z","shell.execute_reply":"2023-09-19T09:20:08.585784Z"},"trusted":true},"execution_count":7,"outputs":[]},{"cell_type":"code","source":"model.compile(loss='categorical_crossentropy', optimizer= opt , metrics=['accuracy'])","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:20:08.588162Z","iopub.execute_input":"2023-09-19T09:20:08.588439Z","iopub.status.idle":"2023-09-19T09:20:08.60245Z","shell.execute_reply.started":"2023-09-19T09:20:08.588415Z","shell.execute_reply":"2023-09-19T09:20:08.601337Z"},"trusted":true},"execution_count":8,"outputs":[]},{"cell_type":"code","source":"train_datagen = ImageDataGenerator(featurewise_center=False,\n                             samplewise_center=False,\n                             featurewise_std_normalization=False,\n                             samplewise_std_normalization=False,\n                             zca_whitening=False,\n                             rotation_range=10,\n                             zoom_range=0.1,\n                             width_shift_range=0.1,\n                             height_shift_range=0.1,\n                             horizontal_flip=False,\n                             vertical_flip=False,\n                             rescale=1./255)\nvalid_datagen = ImageDataGenerator()\n\ntrain_generator = train_datagen.flow_from_directory(directory='/kaggle/temp/train/', shuffle=True, target_size=(32,32),batch_size=128)\nvalid_generator = valid_datagen.flow_from_directory(directory='/kaggle/temp/valid/', shuffle=True, target_size=(32,32),batch_size=128)","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:20:08.603642Z","iopub.execute_input":"2023-09-19T09:20:08.603934Z","iopub.status.idle":"2023-09-19T09:20:09.771704Z","shell.execute_reply.started":"2023-09-19T09:20:08.603893Z","shell.execute_reply":"2023-09-19T09:20:09.770896Z"},"trusted":true},"execution_count":9,"outputs":[{"name":"stdout","text":"Found 39966 images belonging to 10 classes.\nFound 10034 images belonging to 10 classes.\n","output_type":"stream"}]},{"cell_type":"code","source":"model.fit(train_generator,epochs=20, validation_data=valid_generator,steps_per_epoch=train_generator.n//train_generator.batch_size,\n         validation_steps= valid_generator.n//valid_generator.batch_size,workers=8,use_multiprocessing=True)","metadata":{"execution":{"iopub.status.busy":"2023-09-19T09:20:09.77459Z","iopub.execute_input":"2023-09-19T09:20:09.774896Z","iopub.status.idle":"2023-09-19T10:26:23.384046Z","shell.execute_reply.started":"2023-09-19T09:20:09.774869Z","shell.execute_reply":"2023-09-19T10:26:23.38277Z"},"trusted":true},"execution_count":10,"outputs":[{"name":"stdout","text":"Epoch 1/20\n312/312 [==============================] - 192s 604ms/step - loss: 2.8740 - accuracy: 0.2597 - val_loss: 613.2829 - val_accuracy: 0.0987\nEpoch 2/20\n312/312 [==============================] - 197s 626ms/step - loss: 2.1593 - accuracy: 0.3487 - val_loss: 806.0585 - val_accuracy: 0.1316\nEpoch 3/20\n312/312 [==============================] - 187s 596ms/step - loss: 1.9123 - accuracy: 0.3849 - val_loss: 514.3179 - val_accuracy: 0.2011\nEpoch 4/20\n312/312 [==============================] - 198s 633ms/step - loss: 1.7556 - accuracy: 0.4208 - val_loss: 458.6633 - val_accuracy: 0.2422\nEpoch 5/20\n312/312 [==============================] - 187s 597ms/step - loss: 1.6428 - accuracy: 0.4546 - val_loss: 395.6486 - val_accuracy: 0.2101\nEpoch 6/20\n312/312 [==============================] - 186s 592ms/step - loss: 1.5607 - accuracy: 0.4754 - val_loss: 496.7505 - val_accuracy: 0.1774\nEpoch 7/20\n312/312 [==============================] - 189s 603ms/step - loss: 1.4975 - accuracy: 0.4991 - val_loss: 433.7526 - val_accuracy: 0.2300\nEpoch 8/20\n312/312 [==============================] - 198s 630ms/step - loss: 1.4136 - accuracy: 0.5215 - val_loss: 443.1005 - val_accuracy: 0.2404\nEpoch 9/20\n312/312 [==============================] - 187s 596ms/step - loss: 1.3593 - accuracy: 0.5433 - val_loss: 384.8988 - val_accuracy: 0.2267\nEpoch 10/20\n312/312 [==============================] - 196s 624ms/step - loss: 1.3173 - accuracy: 0.5564 - val_loss: 372.0920 - val_accuracy: 0.2331\nEpoch 11/20\n312/312 [==============================] - 196s 625ms/step - loss: 1.2706 - accuracy: 0.5691 - val_loss: 404.9915 - val_accuracy: 0.2151\nEpoch 12/20\n312/312 [==============================] - 196s 626ms/step - loss: 1.2282 - accuracy: 0.5817 - val_loss: 454.1913 - val_accuracy: 0.2231\nEpoch 13/20\n312/312 [==============================] - 196s 625ms/step - loss: 1.1953 - accuracy: 0.5934 - val_loss: 478.2640 - val_accuracy: 0.2246\nEpoch 14/20\n312/312 [==============================] - 186s 593ms/step - loss: 1.1494 - accuracy: 0.6074 - val_loss: 550.1100 - val_accuracy: 0.1890\nEpoch 15/20\n312/312 [==============================] - 190s 605ms/step - loss: 1.1247 - accuracy: 0.6135 - val_loss: 419.8148 - val_accuracy: 0.2041\nEpoch 16/20\n312/312 [==============================] - 189s 602ms/step - loss: 1.0957 - accuracy: 0.6234 - val_loss: 362.1772 - val_accuracy: 0.2158\nEpoch 17/20\n312/312 [==============================] - 188s 599ms/step - loss: 1.0611 - accuracy: 0.6366 - val_loss: 398.3012 - val_accuracy: 0.2152\nEpoch 18/20\n312/312 [==============================] - 199s 634ms/step - loss: 1.0401 - accuracy: 0.6432 - val_loss: 399.4402 - val_accuracy: 0.2174\nEpoch 19/20\n312/312 [==============================] - 198s 631ms/step - loss: 1.0032 - accuracy: 0.6535 - val_loss: 340.0949 - val_accuracy: 0.2168\nEpoch 20/20\n312/312 [==============================] - 197s 629ms/step - loss: 0.9813 - accuracy: 0.6582 - val_loss: 330.5985 - val_accuracy: 0.1896\n","output_type":"stream"},{"execution_count":10,"output_type":"execute_result","data":{"text/plain":"<keras.callbacks.History at 0x7d98d2883550>"},"metadata":{}}]},{"cell_type":"code","source":"shutil.unpack_archive('/kaggle/input/cifar-10/test.7z','/kaggle/temp/test')\n\n","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:26:23.385551Z","iopub.execute_input":"2023-09-19T10:26:23.385889Z","iopub.status.idle":"2023-09-19T10:44:50.623566Z","shell.execute_reply.started":"2023-09-19T10:26:23.385858Z","shell.execute_reply":"2023-09-19T10:44:50.622515Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"code","source":"shutil.unregister_unpack_format('7zip')","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:44:50.625193Z","iopub.execute_input":"2023-09-19T10:44:50.625486Z","iopub.status.idle":"2023-09-19T10:44:50.632277Z","shell.execute_reply.started":"2023-09-19T10:44:50.62546Z","shell.execute_reply":"2023-09-19T10:44:50.631354Z"},"trusted":true},"execution_count":12,"outputs":[]},{"cell_type":"code","source":"test_datagen = ImageDataGenerator(rescale=1./255)\n\ntest_gen = test_datagen.flow_from_directory(directory='/kaggle/temp/test',target_size=(32,32),batch_size=64,class_mode=None,shuffle=False)","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:44:50.633433Z","iopub.execute_input":"2023-09-19T10:44:50.633697Z","iopub.status.idle":"2023-09-19T10:44:55.87252Z","shell.execute_reply.started":"2023-09-19T10:44:50.633674Z","shell.execute_reply":"2023-09-19T10:44:55.871406Z"},"trusted":true},"execution_count":13,"outputs":[{"name":"stdout","text":"Found 300000 images belonging to 1 classes.\n","output_type":"stream"}]},{"cell_type":"code","source":"test_gen.reset()\npredictions_vecs = model.predict(test_gen)\n\npredictions_final = np.argmax(predictions_vecs, axis=1)\n","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:44:55.873851Z","iopub.execute_input":"2023-09-19T10:44:55.874686Z","iopub.status.idle":"2023-09-19T10:50:00.59258Z","shell.execute_reply.started":"2023-09-19T10:44:55.874655Z","shell.execute_reply":"2023-09-19T10:50:00.591388Z"},"trusted":true},"execution_count":14,"outputs":[{"name":"stdout","text":"4688/4688 [==============================] - 303s 64ms/step\n","output_type":"stream"}]},{"cell_type":"code","source":"print(type(train_generator.class_indices))\nprint(train_generator.class_indices)\n\nclasses = {value:key for (key,value) in train_generator.class_indices.items()}\nprint(classes)\n\npredicted_classes=np.empty(shape=300000,dtype=np.dtype('U20'))\n\nind=0\nfor i in predictions_final.tolist():\n    predicted_classes[ind]=classes[i]\n    ind=ind+1\n    \nfilenames_wo_ext = []\nfor fname in test_gen.filenames:\n    filenames_wo_ext.append(int(fname.split(sep=\"/\")[1].split(sep=\".\")[0])-1)\n\npredicted_classes_final = np.empty(shape=300000,dtype=np.dtype('U20'))\npredicted_classes_final[filenames_wo_ext]=predicted_classes\n\n","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:50:00.594036Z","iopub.execute_input":"2023-09-19T10:50:00.594459Z","iopub.status.idle":"2023-09-19T10:50:01.021949Z","shell.execute_reply.started":"2023-09-19T10:50:00.594418Z","shell.execute_reply":"2023-09-19T10:50:01.02098Z"},"trusted":true},"execution_count":15,"outputs":[{"name":"stdout","text":"<class 'dict'>\n{'airplane': 0, 'automobile': 1, 'bird': 2, 'cat': 3, 'deer': 4, 'dog': 5, 'frog': 6, 'horse': 7, 'ship': 8, 'truck': 9}\n{0: 'airplane', 1: 'automobile', 2: 'bird', 3: 'cat', 4: 'deer', 5: 'dog', 6: 'frog', 7: 'horse', 8: 'ship', 9: 'truck'}\n","output_type":"stream"}]},{"cell_type":"code","source":"sub = pd.read_csv('../input/cifar-10/sampleSubmission.csv',header='infer')\nsub.info()","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:50:01.023279Z","iopub.execute_input":"2023-09-19T10:50:01.024251Z","iopub.status.idle":"2023-09-19T10:50:01.170185Z","shell.execute_reply.started":"2023-09-19T10:50:01.024218Z","shell.execute_reply":"2023-09-19T10:50:01.169367Z"},"trusted":true},"execution_count":16,"outputs":[{"name":"stdout","text":"<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 300000 entries, 0 to 299999\nData columns (total 2 columns):\n #   Column  Non-Null Count   Dtype \n---  ------  --------------   ----- \n 0   id      300000 non-null  int64 \n 1   label   300000 non-null  object\ndtypes: int64(1), object(1)\nmemory usage: 4.6+ MB\n","output_type":"stream"}]},{"cell_type":"code","source":"sub['label'] = predicted_classes_final\nsub.to_csv('submission.csv',index=False)\n","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:50:01.171436Z","iopub.execute_input":"2023-09-19T10:50:01.172144Z","iopub.status.idle":"2023-09-19T10:50:01.619649Z","shell.execute_reply.started":"2023-09-19T10:50:01.172112Z","shell.execute_reply":"2023-09-19T10:50:01.618517Z"},"trusted":true},"execution_count":17,"outputs":[]},{"cell_type":"code","source":"model.save('model.h5')","metadata":{"execution":{"iopub.status.busy":"2023-09-19T10:51:08.149283Z","iopub.execute_input":"2023-09-19T10:51:08.150203Z","iopub.status.idle":"2023-09-19T10:51:08.228121Z","shell.execute_reply.started":"2023-09-19T10:51:08.150169Z","shell.execute_reply":"2023-09-19T10:51:08.227011Z"},"trusted":true},"execution_count":19,"outputs":[]}]}