Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/coea/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
- " from ._conv import register_converters as _register_converters\n"
- ]
- }
- ],
- "source": [
- "import tensorflow as tf\n",
- "import os\n",
- "import numpy as np"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "from keras.models import Sequential\n",
- "from keras.layers import Convolution2D\n",
- "from keras.layers import MaxPooling2D\n",
- "from keras.layers import Flatten\n",
- "from keras.layers import Dense, Activation, Dropout\n",
- "from keras.layers import BatchNormalization"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/coea/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:5: UserWarning: Update your `Conv2D` call to the Keras 2 API: `Conv2D(32, (3, 3), input_shape=(64, 64, 3...)`\n",
- " \"\"\"\n",
- "/home/coea/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:12: UserWarning: Update your `Conv2D` call to the Keras 2 API: `Conv2D(32, (3, 3))`\n",
- " if sys.path[0] == '':\n",
- "/home/coea/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:21: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(activation=\"relu\", units=128)`\n",
- "/home/coea/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:22: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(activation=\"softmax\", units=3)`\n"
- ]
- }
- ],
- "source": [
- "# Initialising the CNN\n",
- "classifier = Sequential()\n",
- "\n",
- "# Convolution\n",
- "classifier.add(Convolution2D(32, 3, 3, input_shape = (64, 64, 3)))\n",
- "classifier.add(BatchNormalization(momentum = 0.85, epsilon=0.0001))\n",
- "classifier.add(Activation('relu'))\n",
- "#Pooling\n",
- "classifier.add(MaxPooling2D(pool_size = (2, 2)))\n",
- "classifier.add(Dropout(0.2))\n",
- "# Adding a second convolutional layer\n",
- "classifier.add(Convolution2D(32, 3, 3))\n",
- "classifier.add(BatchNormalization(momentum = 0.85, epsilon=0.0001))\n",
- "classifier.add(Activation('relu'))\n",
- "classifier.add(MaxPooling2D(pool_size = (2, 2)))\n",
- "classifier.add(Dropout(0.2))\n",
- "# Flattening\n",
- "classifier.add(Flatten())\n",
- "\n",
- "# Full connection\n",
- "classifier.add(Dense(output_dim = 128, activation = 'relu'))\n",
- "classifier.add(Dense(output_dim = 3, activation = 'softmax'))\n",
- "\n",
- "# Compiling the CNN\n",
- "classifier.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Splitting and creating a new train test folders of images \n",
- "from PIL import Image\n",
- "from keras.preprocessing.image import load_img\n",
- "import os, os.path\n",
- "import scipy"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "imgs = []\n",
- "path = \"/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/daisy/\"\n",
- "for f in os.listdir(path):\n",
- " #print(f)\n",
- " imgs.append(Image.open(path+f).convert('RGB'))\n",
- " \n",
- " \n",
- "for i in range(1,len(imgs)):\n",
- " total = len(imgs)\n",
- " split = round(total*0.7)\n",
- "# print(i)\n",
- "# print(split)\n",
- " if(i <= split):\n",
- " imgs[i].save('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/train/daisy/%d.jpg'%(i))\n",
- " else:\n",
- " imgs[i].save('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/test/daisy/%d.jpg'%(i))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "from PIL import Image\n",
- "from keras.preprocessing.image import load_img\n",
- "import os, os.path\n",
- "import scipy\n",
- "#from sklearn.preprocessing import train_test_split\n",
- "\n",
- "\n",
- "imgs = []\n",
- "path = \"/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/rose/\"\n",
- "for f in os.listdir(path):\n",
- " imgs.append(Image.open(path+f).convert('RGB'))\n",
- " \n",
- " \n",
- "for i in range(1,len(imgs)):\n",
- " total = len(imgs)\n",
- " split = round(total*0.7)\n",
- " print(i)\n",
- " print(split)\n",
- " if(i <= split):\n",
- " imgs[i].save('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/train/rose/%d.jpg'%(i))\n",
- " else:\n",
- " imgs[i].save('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/test/rose/%d.jpg'%(i))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "from PIL import Image\n",
- "from keras.preprocessing.image import load_img\n",
- "import os, os.path\n",
- "import scipy\n",
- "#from sklearn.preprocessing import train_test_split\n",
- "\n",
- "\n",
- "imgs = []\n",
- "path = \"/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/sunflower/\"\n",
- "for f in os.listdir(path):\n",
- " imgs.append(Image.open(path+f).convert('RGB'))\n",
- " \n",
- " \n",
- "for i in range(1,len(imgs)):\n",
- " total = len(imgs)\n",
- " split = round(total*0.7)\n",
- "# print(i)\n",
- "# print(split)\n",
- " if(i <= split):\n",
- " imgs[i].save('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/train/sunflower/%d.jpg'%(i))\n",
- " else:\n",
- " imgs[i].save('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/test/sunflower/%d.jpg'%(i))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "from keras.preprocessing.image import ImageDataGenerator\n",
- "train_datagen = ImageDataGenerator(rescale = 1./255,\n",
- " shear_range = 0.2,\n",
- " zoom_range = 0.2,\n",
- " horizontal_flip = True)\n",
- "\n",
- "test_datagen = ImageDataGenerator(rescale = 1./255)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "<keras.preprocessing.image.ImageDataGenerator at 0x7f52820ee1d0>"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "train_datagen"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Found 246 images belonging to 3 classes.\n"
- ]
- }
- ],
- "source": [
- "training_set = train_datagen.flow_from_directory('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/train',\n",
- " target_size = (64, 64),\n",
- " batch_size = 32,\n",
- " class_mode = 'categorical')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Found 101 images belonging to 3 classes.\n"
- ]
- }
- ],
- "source": [
- "\n",
- "test_set = test_datagen.flow_from_directory('/home/coea/HJ/Razorthink/modified_flowers/modified_flowers/test',\n",
- " target_size = (64, 64),\n",
- " batch_size = 32,\n",
- " class_mode = 'categorical')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "<keras_preprocessing.image.DirectoryIterator at 0x7f52820ee208>"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "test_set"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "conv2d_1 (Conv2D) (None, 62, 62, 32) 896 \n",
- "_________________________________________________________________\n",
- "max_pooling2d_1 (MaxPooling2 (None, 31, 31, 32) 0 \n",
- "_________________________________________________________________\n",
- "conv2d_2 (Conv2D) (None, 29, 29, 32) 9248 \n",
- "_________________________________________________________________\n",
- "max_pooling2d_2 (MaxPooling2 (None, 14, 14, 32) 0 \n",
- "_________________________________________________________________\n",
- "flatten_1 (Flatten) (None, 6272) 0 \n",
- "_________________________________________________________________\n",
- "dense_1 (Dense) (None, 128) 802944 \n",
- "_________________________________________________________________\n",
- "dense_2 (Dense) (None, 3) 387 \n",
- "=================================================================\n",
- "Total params: 813,475\n",
- "Trainable params: 813,475\n",
- "Non-trainable params: 0\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "classifier.summary()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [],
- "source": [
- "import sys\n",
- "from PIL import Image\n",
- "sys.modules['Image'] = Image "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "/home/coea/anaconda3/lib/python3.6/site-packages/PIL/Image.py\n"
- ]
- }
- ],
- "source": [
- "from PIL import Image\n",
- "print(Image.__file__)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/coea/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:5: UserWarning: The semantics of the Keras 2 argument `steps_per_epoch` is not the same as the Keras 1 argument `samples_per_epoch`. `steps_per_epoch` is the number of batches to draw from the generator at each epoch. Basically steps_per_epoch = samples_per_epoch/batch_size. Similarly `nb_val_samples`->`validation_steps` and `val_samples`->`steps` arguments have changed. Update your method calls accordingly.\n",
- " \"\"\"\n",
- "/home/coea/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:5: UserWarning: Update your `fit_generator` call to the Keras 2 API: `fit_generator(<keras_pre..., validation_data=<keras_pre..., workers=8, steps_per_epoch=1, epochs=100, validation_steps=2000)`\n",
- " \"\"\"\n",
- "WARNING (theano.tensor.blas): We did not find a dynamic library in the library_dir of the library we use for blas. If you use ATLAS, make sure to compile it with dynamics library.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Epoch 1/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 1.0865 - acc: 0.3125 - val_loss: 1.2651 - val_acc: 0.4158\n",
- "Epoch 2/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 1.2396 - acc: 0.5000 - val_loss: 1.0243 - val_acc: 0.4059\n",
- "Epoch 3/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 1.1907 - acc: 0.4062 - val_loss: 1.0464 - val_acc: 0.4059\n",
- "Epoch 4/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 1.1058 - acc: 0.3750 - val_loss: 1.0543 - val_acc: 0.5347\n",
- "Epoch 5/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 1.0582 - acc: 0.5312 - val_loss: 1.0463 - val_acc: 0.4158\n",
- "Epoch 6/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 1.0577 - acc: 0.4062 - val_loss: 1.0148 - val_acc: 0.4158\n",
- "Epoch 7/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 1.0453 - acc: 0.4375 - val_loss: 0.9673 - val_acc: 0.5347\n",
- "Epoch 8/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 1.0542 - acc: 0.4545 - val_loss: 0.9185 - val_acc: 0.6733\n",
- "Epoch 9/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.9689 - acc: 0.6562 - val_loss: 0.8967 - val_acc: 0.6238\n",
- "Epoch 10/100\n",
- "1/1 [==============================] - 70s 70s/step - loss: 0.8869 - acc: 0.7500 - val_loss: 0.8914 - val_acc: 0.5644\n",
- "Epoch 11/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.9077 - acc: 0.5625 - val_loss: 0.9271 - val_acc: 0.5248\n",
- "Epoch 12/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.8872 - acc: 0.5312 - val_loss: 0.8416 - val_acc: 0.6139\n",
- "Epoch 13/100\n",
- "1/1 [==============================] - 91s 91s/step - loss: 0.8500 - acc: 0.6250 - val_loss: 0.7847 - val_acc: 0.6733\n",
- "Epoch 14/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.7329 - acc: 0.8125 - val_loss: 0.8103 - val_acc: 0.6238\n",
- "Epoch 15/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.8154 - acc: 0.6562 - val_loss: 0.8447 - val_acc: 0.6139\n",
- "Epoch 16/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.7329 - acc: 0.6818 - val_loss: 0.8180 - val_acc: 0.6238\n",
- "Epoch 17/100\n",
- "1/1 [==============================] - 70s 70s/step - loss: 0.7606 - acc: 0.6562 - val_loss: 0.7729 - val_acc: 0.6832\n",
- "Epoch 18/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.7154 - acc: 0.6875 - val_loss: 0.8620 - val_acc: 0.6238\n",
- "Epoch 19/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.9581 - acc: 0.5938 - val_loss: 0.9412 - val_acc: 0.6139\n",
- "Epoch 20/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.7176 - acc: 0.7188 - val_loss: 0.8494 - val_acc: 0.6238\n",
- "Epoch 21/100\n",
- "1/1 [==============================] - 70s 70s/step - loss: 0.8283 - acc: 0.6250 - val_loss: 0.7353 - val_acc: 0.6832\n",
- "Epoch 22/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.7750 - acc: 0.6875 - val_loss: 0.7326 - val_acc: 0.6733\n",
- "Epoch 23/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.5797 - acc: 0.7812 - val_loss: 0.7659 - val_acc: 0.6535\n",
- "Epoch 24/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6883 - acc: 0.6818 - val_loss: 0.7641 - val_acc: 0.6535\n",
- "Epoch 25/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6270 - acc: 0.7500 - val_loss: 0.7075 - val_acc: 0.6634\n",
- "Epoch 26/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6236 - acc: 0.7500 - val_loss: 0.7081 - val_acc: 0.6931\n",
- "Epoch 27/100\n",
- "1/1 [==============================] - 119s 119s/step - loss: 0.5566 - acc: 0.8125 - val_loss: 0.8244 - val_acc: 0.6535\n",
- "Epoch 28/100\n",
- "1/1 [==============================] - 138s 138s/step - loss: 1.1191 - acc: 0.4688 - val_loss: 0.8391 - val_acc: 0.6436\n",
- "Epoch 29/100\n",
- "1/1 [==============================] - 144s 144s/step - loss: 0.7097 - acc: 0.6875 - val_loss: 0.7933 - val_acc: 0.6634\n",
- "Epoch 30/100\n",
- "1/1 [==============================] - 93s 93s/step - loss: 0.7841 - acc: 0.6875 - val_loss: 0.7083 - val_acc: 0.6832\n",
- "Epoch 31/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6815 - acc: 0.6250 - val_loss: 0.6760 - val_acc: 0.6931\n",
- "Epoch 32/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6354 - acc: 0.6818 - val_loss: 0.6901 - val_acc: 0.6634\n",
- "Epoch 33/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6612 - acc: 0.6875 - val_loss: 0.6839 - val_acc: 0.6733\n",
- "Epoch 34/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6294 - acc: 0.7188 - val_loss: 0.6765 - val_acc: 0.7129\n",
- "Epoch 35/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5649 - acc: 0.7812 - val_loss: 0.6851 - val_acc: 0.7426\n",
- "Epoch 36/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.4238 - acc: 0.9375 - val_loss: 0.7046 - val_acc: 0.7327\n",
- "Epoch 37/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.7942 - acc: 0.5312 - val_loss: 0.7033 - val_acc: 0.7327\n",
- "Epoch 38/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6164 - acc: 0.7500 - val_loss: 0.6896 - val_acc: 0.7426\n",
- "Epoch 39/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.7916 - acc: 0.7188 - val_loss: 0.6580 - val_acc: 0.7525\n",
- "Epoch 40/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.6091 - acc: 0.7727 - val_loss: 0.6501 - val_acc: 0.7129\n",
- "Epoch 41/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.4100 - acc: 0.8438 - val_loss: 0.6811 - val_acc: 0.6931\n",
- "Epoch 42/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.5511 - acc: 0.7500 - val_loss: 0.7026 - val_acc: 0.7030\n",
- "Epoch 43/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.5974 - acc: 0.7188 - val_loss: 0.6998 - val_acc: 0.6832\n",
- "Epoch 44/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5175 - acc: 0.7812 - val_loss: 0.6827 - val_acc: 0.7030\n",
- "Epoch 45/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4769 - acc: 0.7812 - val_loss: 0.6675 - val_acc: 0.7228\n",
- "Epoch 46/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.4497 - acc: 0.8125 - val_loss: 0.6664 - val_acc: 0.7129\n",
- "Epoch 47/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.7728 - acc: 0.6875 - val_loss: 0.6743 - val_acc: 0.7327\n",
- "Epoch 48/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5609 - acc: 0.7273 - val_loss: 0.6850 - val_acc: 0.7525\n",
- "Epoch 49/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.5247 - acc: 0.7500 - val_loss: 0.7158 - val_acc: 0.7426\n",
- "Epoch 50/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4550 - acc: 0.9062 - val_loss: 0.7603 - val_acc: 0.7030\n",
- "Epoch 51/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.4788 - acc: 0.7812 - val_loss: 0.7433 - val_acc: 0.7129\n",
- "Epoch 52/100\n",
- "1/1 [==============================] - 70s 70s/step - loss: 0.4931 - acc: 0.7812 - val_loss: 0.6769 - val_acc: 0.7525\n",
- "Epoch 53/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6260 - acc: 0.7188 - val_loss: 0.6463 - val_acc: 0.7525\n",
- "Epoch 54/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.7252 - acc: 0.6250 - val_loss: 0.6594 - val_acc: 0.6931\n",
- "Epoch 55/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.3809 - acc: 0.7500 - val_loss: 0.6671 - val_acc: 0.6931\n",
- "Epoch 56/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.5237 - acc: 0.7273 - val_loss: 0.6738 - val_acc: 0.7327\n",
- "Epoch 57/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.3579 - acc: 0.8125 - val_loss: 0.7099 - val_acc: 0.7030\n",
- "Epoch 58/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6069 - acc: 0.7188 - val_loss: 0.7007 - val_acc: 0.7129\n",
- "Epoch 59/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6616 - acc: 0.6875 - val_loss: 0.6647 - val_acc: 0.7525\n",
- "Epoch 60/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.5614 - acc: 0.8125 - val_loss: 0.6443 - val_acc: 0.7624\n",
- "Epoch 61/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3418 - acc: 0.8750 - val_loss: 0.6435 - val_acc: 0.7723\n",
- "Epoch 62/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.2942 - acc: 0.9375 - val_loss: 0.6459 - val_acc: 0.7624\n",
- "Epoch 63/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5000 - acc: 0.7812 - val_loss: 0.6434 - val_acc: 0.7525\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Epoch 64/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4193 - acc: 0.8636 - val_loss: 0.6539 - val_acc: 0.7129\n",
- "Epoch 65/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3639 - acc: 0.7812 - val_loss: 0.6506 - val_acc: 0.7030\n",
- "Epoch 66/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.5190 - acc: 0.8750 - val_loss: 0.6718 - val_acc: 0.7327\n",
- "Epoch 67/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3082 - acc: 0.9375 - val_loss: 0.7209 - val_acc: 0.7228\n",
- "Epoch 68/100\n",
- "1/1 [==============================] - 70s 70s/step - loss: 0.4515 - acc: 0.8125 - val_loss: 0.7280 - val_acc: 0.7228\n",
- "Epoch 69/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4008 - acc: 0.9062 - val_loss: 0.7134 - val_acc: 0.7129\n",
- "Epoch 70/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.3517 - acc: 0.8125 - val_loss: 0.7017 - val_acc: 0.7228\n",
- "Epoch 71/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.6477 - acc: 0.7500 - val_loss: 0.6957 - val_acc: 0.6931\n",
- "Epoch 72/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.6443 - acc: 0.6818 - val_loss: 0.7019 - val_acc: 0.7129\n",
- "Epoch 73/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4497 - acc: 0.7812 - val_loss: 0.7011 - val_acc: 0.7030\n",
- "Epoch 74/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4581 - acc: 0.7500 - val_loss: 0.6935 - val_acc: 0.7624\n",
- "Epoch 75/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5335 - acc: 0.8125 - val_loss: 0.6997 - val_acc: 0.7228\n",
- "Epoch 76/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4006 - acc: 0.8438 - val_loss: 0.6766 - val_acc: 0.7525\n",
- "Epoch 77/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4860 - acc: 0.9062 - val_loss: 0.6527 - val_acc: 0.7327\n",
- "Epoch 78/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.2830 - acc: 0.9375 - val_loss: 0.6674 - val_acc: 0.7030\n",
- "Epoch 79/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3773 - acc: 0.8438 - val_loss: 0.6668 - val_acc: 0.6931\n",
- "Epoch 80/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5167 - acc: 0.7273 - val_loss: 0.6626 - val_acc: 0.7030\n",
- "Epoch 81/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.2665 - acc: 0.9375 - val_loss: 0.6558 - val_acc: 0.7525\n",
- "Epoch 82/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.4382 - acc: 0.8438 - val_loss: 0.6767 - val_acc: 0.7228\n",
- "Epoch 83/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3791 - acc: 0.8750 - val_loss: 0.7182 - val_acc: 0.7129\n",
- "Epoch 84/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5555 - acc: 0.7812 - val_loss: 0.7291 - val_acc: 0.7228\n",
- "Epoch 85/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.2581 - acc: 0.9688 - val_loss: 0.7101 - val_acc: 0.7426\n",
- "Epoch 86/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3808 - acc: 0.8750 - val_loss: 0.6935 - val_acc: 0.7525\n",
- "Epoch 87/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.2688 - acc: 0.8750 - val_loss: 0.6903 - val_acc: 0.7327\n",
- "Epoch 88/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.5422 - acc: 0.7727 - val_loss: 0.6925 - val_acc: 0.7327\n",
- "Epoch 89/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.2427 - acc: 0.8750 - val_loss: 0.7114 - val_acc: 0.7129\n",
- "Epoch 90/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.4907 - acc: 0.8438 - val_loss: 0.7053 - val_acc: 0.7228\n",
- "Epoch 91/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.4050 - acc: 0.8438 - val_loss: 0.6921 - val_acc: 0.7426\n",
- "Epoch 92/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.3384 - acc: 0.8125 - val_loss: 0.7109 - val_acc: 0.7228\n",
- "Epoch 93/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3424 - acc: 0.8438 - val_loss: 0.6975 - val_acc: 0.7228\n",
- "Epoch 94/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.2862 - acc: 0.9062 - val_loss: 0.7181 - val_acc: 0.7723\n",
- "Epoch 95/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.5684 - acc: 0.7188 - val_loss: 0.6874 - val_acc: 0.7426\n",
- "Epoch 96/100\n",
- "1/1 [==============================] - 69s 69s/step - loss: 0.1996 - acc: 1.0000 - val_loss: 0.6827 - val_acc: 0.7228\n",
- "Epoch 97/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.2910 - acc: 0.9062 - val_loss: 0.6624 - val_acc: 0.7327\n",
- "Epoch 98/100\n",
- "1/1 [==============================] - 68s 68s/step - loss: 0.3039 - acc: 0.9688 - val_loss: 0.6530 - val_acc: 0.7525\n",
- "Epoch 99/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.2786 - acc: 0.9062 - val_loss: 0.6620 - val_acc: 0.7624\n",
- "Epoch 100/100\n",
- "1/1 [==============================] - 67s 67s/step - loss: 0.2878 - acc: 0.9062 - val_loss: 0.6901 - val_acc: 0.7228\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "<keras.callbacks.History at 0x7f52b597e4e0>"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "classifier.fit_generator(training_set,\n",
- " samples_per_epoch = 50,\n",
- " nb_epoch = 10,\n",
- " validation_data = test_set,\n",
- " nb_val_samples = 2000, workers=8)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## It seems model is overfitting the data after reaching training accuracy of 75% and corresponding validation accuracy is 74%. "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## For further improvement we can use batch normalisation and dropout layers and can also use more powerful models like\n",
- "\n",
- "### Residual Neural Network(ResNet)\n",
- "### Inception Net\n",
- "### Inception Net-ResNet(we can use it as transfer learning i.e. already trained model on imageNet datasets)"
- ]
- }
- ],
- "metadata": {
- "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.6.5"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
- }
Add Comment
Please, Sign In to add comment