{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"mount_file_id":"1_U_rNWXOUup-ChpCduKhQQLszILTlOVZ","authorship_tag":"ABX9TyPH1wVfi7p9U4/PWmng3lXq"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"code","execution_count":null,"metadata":{"id":"k4Ro9Mz52Qqb"},"outputs":[],"source":["import matplotlib.pyplot as plt\n","import matplotlib.image as mpimg"]},{"cell_type":"code","source":["from keras.models import Sequential \n","from keras.preprocessing.image import ImageDataGenerator\n","from keras.layers import BatchNormalization\n","from keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Dropout\n","from keras.datasets import cifar10\n","from keras.utils import normalize, to_categorical"],"metadata":{"id":"GkRdo7j35EpG"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["(X_train,y_train) , (X_test,y_test) = cifar10.load_data()\n","y_train = to_categorical(y_train)\n","y_test = to_categorical(y_test)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"_7Ggvs0Q57RZ","executionInfo":{"status":"ok","timestamp":1681293739003,"user_tz":-330,"elapsed":9276,"user":{"displayName":"Malleshwar Reddy Lingala","userId":"12557761592982653339"}},"outputId":"d24cee5b-bdc1-4156-fa18-20ce1d6bdda1"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n","170498071/170498071 [==============================] - 3s 0us/step\n"]}]},{"cell_type":"code","source":["train_datagen = ImageDataGenerator(rotation_range=45, width_shift_range=0.2,zoom_range=0.2,horizontal_flip=True)\n","train_datagen.fit(X_train)\n","\n","train_generator = train_datagen.flow(X_train,y_train,batch_size=32)"],"metadata":{"id":"waz0B1yp6mNx"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["activation = 'relu'\n","model = Sequential()\n","model.add(Conv2D(32,(3,3) , activation=activation, padding='same',input_shape=(32,32,3)))\n","model.add(BatchNormalization())"],"metadata":{"id":"0Ec3D0xA7jDy"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["model.add(Conv2D(32,(3,3) , activation=activation, padding='same',kernel_initializer='he_uniform'))\n","model.add(BatchNormalization())\n","model.add(MaxPooling2D())\n","model.add(Dropout(0.2))"],"metadata":{"id":"tb8evxKT8WQC"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["model.add(Conv2D(64,(3,3) , activation=activation, padding='same',kernel_initializer='he_uniform'))\n","model.add(BatchNormalization())"],"metadata":{"id":"MkP1icdI9QaC"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["model.add(Conv2D(64,(3,3) , activation=activation, padding='same',kernel_initializer='he_uniform'))\n","model.add(BatchNormalization())\n","model.add(MaxPooling2D())\n","model.add(Dropout(0.2))"],"metadata":{"id":"kSSkZiXn9Yrw"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["model.add(Flatten())\n","model.add(Dense(128,activation=activation, kernel_initializer = 'he_uniform'))\n","model.add(Dense(10,activation='softmax'))"],"metadata":{"id":"IoSjyOSV9e5Z"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])\n","print(model.summary())"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"nUe7s3Ow-hDW","executionInfo":{"status":"ok","timestamp":1681295056978,"user_tz":-330,"elapsed":2083,"user":{"displayName":"Malleshwar Reddy Lingala","userId":"12557761592982653339"}},"outputId":"e29a5dd7-5cf9-4a92-8b8d-41162696363a"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Model: \"sequential\"\n","_________________________________________________________________\n"," Layer (type)                Output Shape              Param #   \n","=================================================================\n"," conv2d (Conv2D)             (None, 32, 32, 32)        896       \n","                                                                 \n"," batch_normalization (BatchN  (None, 32, 32, 32)       128       \n"," ormalization)                                                   \n","                                                                 \n"," conv2d_1 (Conv2D)           (None, 32, 32, 32)        9248      \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"," batch_normalization_2 (Batc  (None, 16, 16, 64)       256       \n"," hNormalization)                                                 \n","                                                                 \n"," conv2d_3 (Conv2D)           (None, 16, 16, 64)        36928     \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"," flatten (Flatten)           (None, 4096)              0         \n","                                                                 \n"," dense (Dense)               (None, 128)               524416    \n","                                                                 \n"," flatten_1 (Flatten)         (None, 128)               0         \n","                                                                 \n"," dense_1 (Dense)             (None, 128)               16512     \n","                                                                 \n"," dense_2 (Dense)             (None, 10)                1290      \n","                                                                 \n","=================================================================\n","Total params: 608,554\n","Trainable params: 608,170\n","Non-trainable params: 384\n","_________________________________________________________________\n","None\n"]}]},{"cell_type":"code","source":["history = model.fit_generator(train_generator,steps_per_epoch = 250, epochs=10, validation_data = (X_test,y_test))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"25xCYOZT_pdc","executionInfo":{"status":"ok","timestamp":1681295937854,"user_tz":-330,"elapsed":783188,"user":{"displayName":"Malleshwar Reddy Lingala","userId":"12557761592982653339"}},"outputId":"645a328a-eaa0-4ac8-bfb7-0cf66123f1f8"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stderr","text":["<ipython-input-13-f83d8a1c1dc4>:1: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.\n","  history = model.fit_generator(train_generator,steps_per_epoch = 250, epochs=10, validation_data = (X_test,y_test))\n"]},{"output_type":"stream","name":"stdout","text":["Epoch 1/10\n","250/250 [==============================] - 77s 302ms/step - loss: 2.1721 - accuracy: 0.2605 - val_loss: 1.9497 - val_accuracy: 0.3270\n","Epoch 2/10\n","250/250 [==============================] - 81s 323ms/step - loss: 1.8279 - accuracy: 0.3340 - val_loss: 2.0003 - val_accuracy: 0.3455\n","Epoch 3/10\n","250/250 [==============================] - 78s 312ms/step - loss: 1.7475 - accuracy: 0.3706 - val_loss: 1.6325 - val_accuracy: 0.4053\n","Epoch 4/10\n","250/250 [==============================] - 71s 285ms/step - loss: 1.6454 - accuracy: 0.4017 - val_loss: 1.6132 - val_accuracy: 0.4174\n","Epoch 5/10\n","250/250 [==============================] - 73s 293ms/step - loss: 1.6035 - accuracy: 0.4204 - val_loss: 1.5991 - val_accuracy: 0.4444\n","Epoch 6/10\n","250/250 [==============================] - 78s 313ms/step - loss: 1.5543 - accuracy: 0.4405 - val_loss: 1.6589 - val_accuracy: 0.4342\n","Epoch 7/10\n","250/250 [==============================] - 73s 294ms/step - loss: 1.5128 - accuracy: 0.4569 - val_loss: 1.5876 - val_accuracy: 0.4288\n","Epoch 8/10\n","250/250 [==============================] - 73s 293ms/step - loss: 1.4898 - accuracy: 0.4646 - val_loss: 1.3630 - val_accuracy: 0.5178\n","Epoch 9/10\n","250/250 [==============================] - 73s 292ms/step - loss: 1.4618 - accuracy: 0.4748 - val_loss: 1.4004 - val_accuracy: 0.5000\n","Epoch 10/10\n","250/250 [==============================] - 78s 312ms/step - loss: 1.4379 - accuracy: 0.4895 - val_loss: 1.5193 - val_accuracy: 0.5099\n"]}]},{"cell_type":"code","source":[],"metadata":{"id":"XvTxBSBKACYT"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["from google.colab import drive\n","drive.mount('/content/drive')"],"metadata":{"id":"_g9akYS8Ir8Q"},"execution_count":null,"outputs":[]}]}