Professional Documents
Culture Documents
Code
Code
Code
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 148833 C 9267MiB |
+-----------------------------------------------------------------------------+
2.9.2
IMAGE_SIZE = [224,224]
train_path = '/content/drive/MyDrive/Deep Learning/Flower classification/flowers/train'
valid_path = '/content/drive/MyDrive/Deep Learning/Flower classification/flowers/validat
In [55]: # importing the VGG16 library as shoen below and add preprocessing layer to fromt of VGG
vgg16 = VGG16(input_shape=IMAGE_SIZE+[3],weights='imagenet',include_top=False)
input_2 False
block1_conv1 False
block1_conv2 False
block1_pool False
block2_conv1 False
block2_conv2 False
block2_pool False
block3_conv1 False
block3_conv2 False
block3_conv3 False
block3_pool False
block4_conv1 False
block4_conv2 False
block4_conv3 False
block4_pool False
block5_conv1 False
block5_conv2 False
block5_conv3 False
block5_pool False
In [58]: vgg16.summary()
Model: "vgg16"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) [(None, 224, 224, 3)] 0
=================================================================
Total params: 14,714,688
Trainable params: 0
Non-trainable params: 14,714,688
_________________________________________________________________
In [60]: folders
In [61]: len(folders)
5
Out[61]:
model.add(vgg16)
model.add(Flatten())
model.add(Dense(256,activation='relu'))
model.add(Dense(5,activation = 'softmax'))
In [63]: model.summary()
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
vgg16 (Functional) (None, 7, 7, 512) 14714688
=================================================================
Total params: 21,138,757
Trainable params: 6,424,069
Non-trainable params: 14,714,688
_________________________________________________________________
model.compile(
loss = 'categorical_crossentropy',
optimizer='adam',
metrics=['accuracy']
)
In [65]: # use the image data generator to import the image from the dataset
In [66]: # provide the same target size as initialized for the image size
r = model.fit(
training_set,
validation_data = test_set,
epochs = 30,
steps_per_epoch = len(training_set),
validation_steps = len(test_set)
)
Epoch 1/30
20/20 [==============================] - 12s 577ms/step - loss: 4.6933 - accuracy: 0.301
6 - val_loss: 1.0930 - val_accuracy: 0.6233
Epoch 2/30
20/20 [==============================] - 11s 548ms/step - loss: 1.0284 - accuracy: 0.593
4 - val_loss: 0.8130 - val_accuracy: 0.7133
Epoch 3/30
20/20 [==============================] - 11s 525ms/step - loss: 0.6441 - accuracy: 0.785
2 - val_loss: 1.4110 - val_accuracy: 0.5133
Epoch 4/30
20/20 [==============================] - 13s 634ms/step - loss: 0.6040 - accuracy: 0.775
4 - val_loss: 0.8122 - val_accuracy: 0.6733
Epoch 5/30
20/20 [==============================] - 11s 560ms/step - loss: 0.4162 - accuracy: 0.850
8 - val_loss: 0.7150 - val_accuracy: 0.7633
Epoch 6/30
20/20 [==============================] - 11s 559ms/step - loss: 0.3344 - accuracy: 0.908
2 - val_loss: 0.7170 - val_accuracy: 0.7633
Epoch 7/30
20/20 [==============================] - 11s 552ms/step - loss: 0.2985 - accuracy: 0.909
8 - val_loss: 0.8458 - val_accuracy: 0.7167
Epoch 8/30
20/20 [==============================] - 10s 523ms/step - loss: 0.2562 - accuracy: 0.913
1 - val_loss: 0.7284 - val_accuracy: 0.7567
Epoch 9/30
20/20 [==============================] - 11s 529ms/step - loss: 0.2021 - accuracy: 0.939
3 - val_loss: 0.7251 - val_accuracy: 0.7767
Epoch 10/30
20/20 [==============================] - 12s 603ms/step - loss: 0.1573 - accuracy: 0.960
7 - val_loss: 0.8071 - val_accuracy: 0.7533
Epoch 11/30
20/20 [==============================] - 11s 568ms/step - loss: 0.1282 - accuracy: 0.978
7 - val_loss: 0.7777 - val_accuracy: 0.7667
Epoch 12/30
20/20 [==============================] - 11s 574ms/step - loss: 0.1073 - accuracy: 0.978
7 - val_loss: 0.8117 - val_accuracy: 0.7633
Epoch 13/30
20/20 [==============================] - 11s 550ms/step - loss: 0.0849 - accuracy: 0.988
5 - val_loss: 0.7360 - val_accuracy: 0.7800
Epoch 14/30
20/20 [==============================] - 10s 544ms/step - loss: 0.0720 - accuracy: 0.990
2 - val_loss: 0.7316 - val_accuracy: 0.8000
Epoch 15/30
20/20 [==============================] - 11s 562ms/step - loss: 0.0631 - accuracy: 0.991
8 - val_loss: 0.9053 - val_accuracy: 0.7567
Epoch 16/30
20/20 [==============================] - 11s 555ms/step - loss: 0.1033 - accuracy: 0.972
1 - val_loss: 0.8066 - val_accuracy: 0.7700
Epoch 17/30
20/20 [==============================] - 11s 570ms/step - loss: 0.0856 - accuracy: 0.983
6 - val_loss: 0.7580 - val_accuracy: 0.7833
Epoch 18/30
20/20 [==============================] - 10s 522ms/step - loss: 0.0477 - accuracy: 0.995
1 - val_loss: 0.8135 - val_accuracy: 0.7767
Epoch 19/30
20/20 [==============================] - 11s 554ms/step - loss: 0.0445 - accuracy: 0.993
4 - val_loss: 0.8002 - val_accuracy: 0.7700
Epoch 20/30
20/20 [==============================] - 11s 557ms/step - loss: 0.0420 - accuracy: 0.993
4 - val_loss: 0.7963 - val_accuracy: 0.7700
Epoch 21/30
20/20 [==============================] - 11s 559ms/step - loss: 0.0340 - accuracy: 1.000
0 - val_loss: 0.7490 - val_accuracy: 0.7900
Epoch 22/30
20/20 [==============================] - 11s 549ms/step - loss: 0.0316 - accuracy: 0.998
4 - val_loss: 0.7693 - val_accuracy: 0.7800
Epoch 23/30
20/20 [==============================] - 11s 565ms/step - loss: 0.0324 - accuracy: 0.998
4 - val_loss: 0.8094 - val_accuracy: 0.7667
Epoch 24/30
20/20 [==============================] - 11s 567ms/step - loss: 0.0240 - accuracy: 1.000
0 - val_loss: 0.8463 - val_accuracy: 0.7800
Epoch 25/30
20/20 [==============================] - 11s 560ms/step - loss: 0.0227 - accuracy: 0.998
4 - val_loss: 0.8094 - val_accuracy: 0.7667
Epoch 26/30
20/20 [==============================] - 11s 550ms/step - loss: 0.0224 - accuracy: 1.000
0 - val_loss: 0.7583 - val_accuracy: 0.7833
Epoch 27/30
20/20 [==============================] - 11s 557ms/step - loss: 0.0202 - accuracy: 0.998
4 - val_loss: 0.8391 - val_accuracy: 0.7667
Epoch 28/30
20/20 [==============================] - 11s 564ms/step - loss: 0.0177 - accuracy: 1.000
0 - val_loss: 0.7959 - val_accuracy: 0.7700
Epoch 29/30
20/20 [==============================] - 11s 534ms/step - loss: 0.0153 - accuracy: 1.000
0 - val_loss: 0.7940 - val_accuracy: 0.7733
Epoch 30/30
20/20 [==============================] - 10s 516ms/step - loss: 0.0232 - accuracy: 0.998
4 - val_loss: 0.8367 - val_accuracy: 0.7833
model.save('model_vgg16.h5')
In [74]: y_pred
In [76]: y_pred
array([0, 4, 1, 2, 2, 3, 2, 4, 2, 4, 2, 4, 3, 1, 1, 4, 1, 2, 3, 1, 1, 1,
Out[76]:
4, 1, 0, 3, 3, 4, 4, 0, 1, 4, 2, 4, 2, 1, 2, 3, 0, 2, 1, 3, 2, 4,
1, 4, 2, 2, 4, 1, 1, 2, 0, 2, 1, 3, 4, 1, 3, 0, 4, 3, 2, 3, 1, 2,
3, 3, 3, 0, 2, 1, 1, 2, 2, 1, 2, 4, 1, 3, 1, 2, 0, 1, 2, 4, 2, 2,
2, 4, 3, 3, 2, 2, 0, 1, 4, 0, 4, 2, 3, 2, 2, 3, 2, 1, 0, 0, 4, 4,
0, 2, 2, 4, 3, 3, 1, 4, 3, 2, 3, 2, 4, 2, 0, 3, 2, 4, 1, 1, 1, 1,
2, 2, 2, 1, 4, 1, 4, 3, 0, 1, 3, 2, 3, 0, 1, 2, 1, 2, 3, 0, 2, 3,
4, 2, 3, 4, 1, 3, 3, 2, 4, 2, 3, 4, 4, 2, 3, 0, 0, 2, 2, 1, 4, 3,
3, 4, 2, 3, 4, 3, 2, 2, 1, 4, 0, 0, 0, 4, 3, 1, 0, 2, 2, 3, 3, 0,
3, 3, 1, 0, 0, 0, 1, 1, 0, 2, 4, 3, 2, 1, 2, 2, 4, 1, 2, 0, 2, 4,
2, 3, 3, 0, 2, 4, 4, 4, 4, 1, 4, 0, 0, 2, 0, 1, 0, 3, 4, 1, 0, 4,
4, 4, 1, 2, 0, 0, 0, 4, 2, 1, 2, 2, 3, 1, 1, 4, 2, 2, 0, 0, 4, 1,
0, 1, 1, 2, 3, 3, 2, 1, 3, 4, 0, 4, 0, 4, 4, 0, 4, 3, 0, 4, 4, 2,
1, 3, 3, 3, 3, 0, 4, 2, 0, 1, 2, 3, 4, 3])
In [78]: model=load_model('model_vgg16.h5')
In [80]: x=image.img_to_array(img)
x
...,
<matplotlib.image.AxesImage at 0x7fe8ef402c40>
Out[81]:
In [82]: x.shape
(224, 224, 3)
Out[82]:
In [83]: x=x/255
In [85]: model.predict(img_data)
In [87]: a
array([0])
Out[87]:
In [92]: folders[a[0]]
'/content/drive/MyDrive/Deep Learning/Flower classification/flowers/train/daisy'
Out[92]:
In [93]: flower_name[a[0]]
'tulip'
Out[93]:
In [ ]: