0% found this document useful (0 votes)
13 views20 pages

Apple vs Orange Image Classification

The document discusses image classification of apples and oranges using a convolutional neural network model in Python. It loads training image data of apples and oranges, preprocesses the images, splits the data into training and validation sets, develops a CNN model with multiple convolutional and dense layers, compiles and trains the model over 64 epochs while monitoring validation loss and accuracy.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views20 pages

Apple vs Orange Image Classification

The document discusses image classification of apples and oranges using a convolutional neural network model in Python. It loads training image data of apples and oranges, preprocesses the images, splits the data into training and validation sets, develops a CNN model with multiple convolutional and dense layers, compiles and trains the model over 64 epochs while monitoring validation loss and accuracy.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

IMAGE CLASSIFICATION_RITHVIK

March 23, 2020

[1]: import cv2


import numpy as np
import pandas as pd

import [Link] as plt


%matplotlib inline

import os
import random

[2]: TRAINDIR = 'C:/Users/ADMIN/Desktop/Snehil devops/train'


CATEGORIES = ["apple","orange"]

[3]: nrows = 150


ncolumns = 150
channels = 3

[4]: train_data=[]
def create_training_data():
for category in CATEGORIES:
path = [Link](TRAINDIR,category) # path to apple or orange␣
,→directory

class_num = [Link](category)

for image in [Link](path): # Bunch of images in the path

image_array1 = [Link]([Link](path,image),cv2.IMREAD_COLOR)

new_array1 = [Link](image_array1,(nrows,ncolumns)) #␣
Normalising sizes of all pics to (150,150)
,→

color_img = [Link](new_array1, cv2.COLOR_BGR2RGB)


imgplot=[Link](color_img)

train_data.append([color_img,class_num]) # Collecting all␣


training data along with indices
,→

1
create_training_data()

[5]: [Link](train_data)

[6]: [Link](train_data[1][0])
[Link]()

2
[7]: [Link](train_data[2][0])
[Link]()

[8]: X = []
y = []

for feature,label in train_data:


[Link](feature)
[Link](label)

X = [Link](X).reshape(-1,nrows,ncolumns,channels)
y = [Link](y)

[9]: X[0]

[9]: array([[[255, 255, 255],


[255, 255, 255],
[255, 255, 255],
…,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],

3
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
…,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],

[[255, 255, 255],


[255, 255, 255],
[255, 255, 255],
…,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],

…,

[[255, 255, 255],


[255, 255, 255],
[255, 255, 255],
…,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],

[[255, 255, 255],


[255, 255, 255],
[255, 255, 255],
…,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],

[[255, 255, 255],


[255, 255, 255],
[255, 255, 255],
…,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]]], dtype=uint8)

[10]: y

[10]: array([0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0,
0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1])

4
[11]: [Link](figsize=(20,20))
columns = 5
for i in range(columns):
[Link](5/columns + 1, columns, i + 1)
[Link](X[i])

[12]: import seaborn as sns


[Link](y)
[Link]('Labels for apples and oranges')

[12]: Text(0.5, 1.0, 'Labels for apples and oranges')

[13]: [Link]

[13]: (40, 150, 150, 3)

5
[14]: [Link]

[14]: (40,)

[15]: from sklearn.model_selection import train_test_split


X_train, X_val, y_train, y_val = train_test_split(X,y,test_size=0.
,→2,random_state=2)

[16]: print(X_train.shape)
print(X_val.shape)
print(y_train.shape)
print(y_val.shape)

(32, 150, 150, 3)


(8, 150, 150, 3)
(32,)
(8,)

[17]: #get the length of the train and validation data


ntrain = len(X_train)
nval = len(X_val)

#We will use a batch size of 32. Note: batch size should be a factor of 2.
,→***4,8,16,32,64...***

batch_size = 32

print(ntrain)
print(nval)

32
8

[18]: from keras import layers


from keras import models
from keras import optimizers
from [Link] import ImageDataGenerator
from [Link] import img_to_array, load_img

model = [Link]()
[Link](layers.Conv2D(32, (3, 3), activation='relu',input_shape=(150, 150,␣
,→3)))

[Link](layers.MaxPooling2D((2, 2)))
[Link](layers.Conv2D(64, (3, 3), activation='relu'))
[Link](layers.MaxPooling2D((2, 2)))
[Link](layers.Conv2D(128, (3, 3), activation='relu'))
[Link](layers.MaxPooling2D((2, 2)))
[Link](layers.Conv2D(128, (3, 3), activation='relu'))

6
[Link](layers.MaxPooling2D((2, 2)))
[Link]([Link]())
[Link]([Link](0.5)) #Dropout for regularization
[Link]([Link](512, activation='relu'))
[Link]([Link](1, activation='sigmoid')) #Sigmoid function at the end␣
,→because we have just two classes

Using TensorFlow backend.

[19]: [Link]()

Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 148, 148, 32) 896
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 74, 74, 32) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 72, 72, 64) 18496
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 36, 36, 64) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 34, 34, 128) 73856
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 17, 17, 128) 0
_________________________________________________________________
conv2d_4 (Conv2D) (None, 15, 15, 128) 147584
_________________________________________________________________
max_pooling2d_4 (MaxPooling2 (None, 7, 7, 128) 0
_________________________________________________________________
flatten_1 (Flatten) (None, 6272) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 6272) 0
_________________________________________________________________
dense_1 (Dense) (None, 512) 3211776
_________________________________________________________________
dense_2 (Dense) (None, 1) 513
=================================================================
Total params: 3,453,121
Trainable params: 3,453,121
Non-trainable params: 0
_________________________________________________________________

[20]: [Link](loss='binary_crossentropy', optimizer=optimizers.


,→RMSprop(lr=1e-4), metrics=['acc'])

7
[21]: train_datagen = ImageDataGenerator(rescale=1/255,
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,)

val_datagen = ImageDataGenerator(rescale=1/255)

[22]: train_generator = train_datagen.flow(X_train, y_train, batch_size=batch_size)


val_generator = val_datagen.flow(X_val, y_val, batch_size=batch_size)

[23]: history = model.fit_generator(train_generator,


steps_per_epoch=ntrain // batch_size,
epochs=64,
validation_data=val_generator,
validation_steps=nval // batch_size)

Epoch 1/64
1/1 [==============================] - 6s 6s/step - loss: 0.7065 - acc: 0.4375 -
val_loss: 0.8212 - val_acc: 0.2500
Epoch 2/64
1/1 [==============================] - 1s 1s/step - loss: 0.6678 - acc: 0.5625 -
val_loss: 0.7575 - val_acc: 0.2500
Epoch 3/64
1/1 [==============================] - 1s 1s/step - loss: 0.6678 - acc: 0.5625 -
val_loss: 0.7680 - val_acc: 0.2500
Epoch 4/64
1/1 [==============================] - 1s 1s/step - loss: 0.6510 - acc: 0.5625 -
val_loss: 0.7596 - val_acc: 0.2500
Epoch 5/64
1/1 [==============================] - 1s 1s/step - loss: 0.6300 - acc: 0.5625 -
val_loss: 0.7385 - val_acc: 0.2500
Epoch 6/64
1/1 [==============================] - 1s 1s/step - loss: 0.6239 - acc: 0.5938 -
val_loss: 0.6869 - val_acc: 0.3750
Epoch 7/64
1/1 [==============================] - 1s 1s/step - loss: 0.6036 - acc: 0.6875 -
val_loss: 0.6855 - val_acc: 0.2500
Epoch 8/64
1/1 [==============================] - 1s 1s/step - loss: 0.5691 - acc: 0.6875 -
val_loss: 0.5079 - val_acc: 1.0000
Epoch 9/64
1/1 [==============================] - 1s 1s/step - loss: 0.5438 - acc: 0.9062 -
val_loss: 0.9853 - val_acc: 0.2500
Epoch 10/64

8
1/1 [==============================] - 1s 1s/step - loss: 0.6351 - acc: 0.5625 -
val_loss: 0.3528 - val_acc: 0.7500
Epoch 11/64
1/1 [==============================] - 1s 1s/step - loss: 0.7234 - acc: 0.4375 -
val_loss: 0.9200 - val_acc: 0.2500
Epoch 12/64
1/1 [==============================] - 1s 1s/step - loss: 0.5870 - acc: 0.5625 -
val_loss: 0.4810 - val_acc: 1.0000
Epoch 13/64
1/1 [==============================] - 1s 1s/step - loss: 0.4991 - acc: 0.9688 -
val_loss: 0.5023 - val_acc: 1.0000
Epoch 14/64
1/1 [==============================] - 1s 1s/step - loss: 0.4579 - acc: 0.9375 -
val_loss: 0.4560 - val_acc: 1.0000
Epoch 15/64
1/1 [==============================] - 1s 1s/step - loss: 0.4477 - acc: 0.9375 -
val_loss: 0.4165 - val_acc: 1.0000
Epoch 16/64
1/1 [==============================] - 1s 1s/step - loss: 0.4100 - acc: 0.9375 -
val_loss: 0.2992 - val_acc: 1.0000
Epoch 17/64
1/1 [==============================] - 1s 1s/step - loss: 0.3705 - acc: 1.0000 -
val_loss: 0.3474 - val_acc: 1.0000
Epoch 18/64
1/1 [==============================] - 1s 1s/step - loss: 0.3358 - acc: 0.9375 -
val_loss: 0.1423 - val_acc: 1.0000
Epoch 19/64
1/1 [==============================] - 1s 1s/step - loss: 0.4137 - acc: 0.8438 -
val_loss: 1.2224 - val_acc: 0.2500
Epoch 20/64
1/1 [==============================] - 1s 1s/step - loss: 0.6372 - acc: 0.5625 -
val_loss: 0.1364 - val_acc: 1.0000
Epoch 21/64
1/1 [==============================] - 1s 1s/step - loss: 0.4004 - acc: 0.8750 -
val_loss: 0.4918 - val_acc: 0.7500
Epoch 22/64
1/1 [==============================] - 1s 1s/step - loss: 0.3285 - acc: 0.8750 -
val_loss: 0.1318 - val_acc: 1.0000
Epoch 23/64
1/1 [==============================] - 1s 1s/step - loss: 0.2680 - acc: 0.9688 -
val_loss: 0.2443 - val_acc: 1.0000
Epoch 24/64
1/1 [==============================] - 1s 1s/step - loss: 0.2337 - acc: 0.9375 -
val_loss: 0.1242 - val_acc: 1.0000
Epoch 25/64
1/1 [==============================] - 1s 1s/step - loss: 0.2146 - acc: 1.0000 -
val_loss: 0.1625 - val_acc: 1.0000
Epoch 26/64

9
1/1 [==============================] - 1s 1s/step - loss: 0.1888 - acc: 0.9688 -
val_loss: 0.0721 - val_acc: 1.0000
Epoch 27/64
1/1 [==============================] - 1s 1s/step - loss: 0.1924 - acc: 1.0000 -
val_loss: 0.2031 - val_acc: 1.0000
Epoch 28/64
1/1 [==============================] - 1s 1s/step - loss: 0.1690 - acc: 0.9375 -
val_loss: 0.0373 - val_acc: 1.0000
Epoch 29/64
1/1 [==============================] - 1s 1s/step - loss: 0.2340 - acc: 0.9375 -
val_loss: 0.5769 - val_acc: 0.6250
Epoch 30/64
1/1 [==============================] - 2s 2s/step - loss: 0.3332 - acc: 0.8125 -
val_loss: 0.0345 - val_acc: 1.0000
Epoch 31/64
1/1 [==============================] - 1s 1s/step - loss: 0.2581 - acc: 0.9062 -
val_loss: 0.2331 - val_acc: 1.0000
Epoch 32/64
1/1 [==============================] - 1s 1s/step - loss: 0.1766 - acc: 0.9688 -
val_loss: 0.0436 - val_acc: 1.0000
Epoch 33/64
1/1 [==============================] - 1s 1s/step - loss: 0.0993 - acc: 1.0000 -
val_loss: 0.0478 - val_acc: 1.0000
Epoch 34/64
1/1 [==============================] - 1s 1s/step - loss: 0.1268 - acc: 0.9688 -
val_loss: 0.0373 - val_acc: 1.0000
Epoch 35/64
1/1 [==============================] - 1s 1s/step - loss: 0.1125 - acc: 0.9688 -
val_loss: 0.0281 - val_acc: 1.0000
Epoch 36/64
1/1 [==============================] - 1s 1s/step - loss: 0.0974 - acc: 1.0000 -
val_loss: 0.0399 - val_acc: 1.0000
Epoch 37/64
1/1 [==============================] - 1s 1s/step - loss: 0.0825 - acc: 1.0000 -
val_loss: 0.0229 - val_acc: 1.0000
Epoch 38/64
1/1 [==============================] - 1s 1s/step - loss: 0.0852 - acc: 1.0000 -
val_loss: 0.0247 - val_acc: 1.0000
Epoch 39/64
1/1 [==============================] - 1s 1s/step - loss: 0.0736 - acc: 1.0000 -
val_loss: 0.0178 - val_acc: 1.0000
Epoch 40/64
1/1 [==============================] - 1s 1s/step - loss: 0.0507 - acc: 1.0000 -
val_loss: 0.0230 - val_acc: 1.0000
Epoch 41/64
1/1 [==============================] - 1s 1s/step - loss: 0.1101 - acc: 0.9688 -
val_loss: 0.0066 - val_acc: 1.0000
Epoch 42/64

10
1/1 [==============================] - 1s 1s/step - loss: 0.0733 - acc: 1.0000 -
val_loss: 0.1129 - val_acc: 1.0000
Epoch 43/64
1/1 [==============================] - 1s 1s/step - loss: 0.1748 - acc: 0.9688 -
val_loss: 0.0071 - val_acc: 1.0000
Epoch 44/64
1/1 [==============================] - 1s 1s/step - loss: 0.2756 - acc: 0.8125 -
val_loss: 0.6086 - val_acc: 0.6250
Epoch 45/64
1/1 [==============================] - 1s 1s/step - loss: 0.4446 - acc: 0.7188 -
val_loss: 0.0070 - val_acc: 1.0000
Epoch 46/64
1/1 [==============================] - 1s 1s/step - loss: 0.0929 - acc: 1.0000 -
val_loss: 0.0168 - val_acc: 1.0000
Epoch 47/64
1/1 [==============================] - 1s 1s/step - loss: 0.0604 - acc: 1.0000 -
val_loss: 0.0117 - val_acc: 1.0000
Epoch 48/64
1/1 [==============================] - 1s 1s/step - loss: 0.0405 - acc: 1.0000 -
val_loss: 0.0113 - val_acc: 1.0000
Epoch 49/64
1/1 [==============================] - 1s 1s/step - loss: 0.0416 - acc: 1.0000 -
val_loss: 0.0101 - val_acc: 1.0000
Epoch 50/64
1/1 [==============================] - 1s 1s/step - loss: 0.0385 - acc: 1.0000 -
val_loss: 0.0082 - val_acc: 1.0000
Epoch 51/64
1/1 [==============================] - 1s 1s/step - loss: 0.0562 - acc: 0.9688 -
val_loss: 0.0057 - val_acc: 1.0000
Epoch 52/64
1/1 [==============================] - 1s 1s/step - loss: 0.0362 - acc: 1.0000 -
val_loss: 0.0069 - val_acc: 1.0000
Epoch 53/64
1/1 [==============================] - 1s 1s/step - loss: 0.0429 - acc: 1.0000 -
val_loss: 0.0074 - val_acc: 1.0000
Epoch 54/64
1/1 [==============================] - 1s 1s/step - loss: 0.0314 - acc: 1.0000 -
val_loss: 0.0062 - val_acc: 1.0000
Epoch 55/64
1/1 [==============================] - 1s 1s/step - loss: 0.0538 - acc: 0.9688 -
val_loss: 0.0033 - val_acc: 1.0000
Epoch 56/64
1/1 [==============================] - 1s 1s/step - loss: 0.0391 - acc: 1.0000 -
val_loss: 0.0060 - val_acc: 1.0000
Epoch 57/64
1/1 [==============================] - 1s 1s/step - loss: 0.0334 - acc: 1.0000 -
val_loss: 0.0031 - val_acc: 1.0000
Epoch 58/64

11
1/1 [==============================] - 1s 1s/step - loss: 0.0322 - acc: 1.0000 -
val_loss: 0.0054 - val_acc: 1.0000
Epoch 59/64
1/1 [==============================] - 1s 1s/step - loss: 0.0662 - acc: 0.9688 -
val_loss: 0.0015 - val_acc: 1.0000
Epoch 60/64
1/1 [==============================] - 1s 1s/step - loss: 0.0732 - acc: 1.0000 -
val_loss: 0.0736 - val_acc: 1.0000
Epoch 61/64
1/1 [==============================] - 1s 1s/step - loss: 0.1606 - acc: 0.9375 -
val_loss: 0.0015 - val_acc: 1.0000
Epoch 62/64
1/1 [==============================] - 1s 1s/step - loss: 0.0647 - acc: 1.0000 -
val_loss: 0.0077 - val_acc: 1.0000
Epoch 63/64
1/1 [==============================] - 1s 1s/step - loss: 0.0510 - acc: 0.9688 -
val_loss: 0.0018 - val_acc: 1.0000
Epoch 64/64
1/1 [==============================] - 1s 1s/step - loss: 0.0409 - acc: 1.0000 -
val_loss: 0.0014 - val_acc: 1.0000

[24]: #lets plot the train and val curve


#get the details form the history object
acc = [Link]['acc']
val_acc = [Link]['val_acc']
loss = [Link]['loss']
val_loss = [Link]['val_loss']

epochs = range(1, len(acc) + 1)

#Train and validation accuracy


[Link](epochs, acc, 'b', label='Training accurarcy')
[Link](epochs, val_acc, 'r', label='Validation accurarcy')
[Link]('Training and Validation accurarcy')
[Link]()

[Link]()
#Train and validation loss
[Link](epochs, loss, 'b', label='Training loss')
[Link](epochs, val_loss, 'r', label='Validation loss')
[Link]('Training and Validation loss')
[Link]()

[Link]()

12
[25]: TRAINDIR2 = 'C:/Users/ADMIN/Desktop/Snehil devops/train2'
CATEGORIES = ["apple","orange"]

13
[26]: nrows = 150
ncolumns = 150
channels = 3

[27]: train_data=[]
def create_training_data():
for category in CATEGORIES:
path = [Link](TRAINDIR2,category) # path to apple or orange␣
,→directory

class_num = [Link](category)

for image in [Link](path): # Bunch of images in the path

image_array1 = [Link]([Link](path,image))

new_array1 = [Link](image_array1,(nrows,ncolumns)) #␣
Normalising sizes of all pics to (150,150)
,→

train_data.append([new_array1,class_num]) # Collecting all␣


training data along with indices
,→

create_training_data()

[28]: [Link](train_data)

[29]: X = []
y = []

for feature,label in train_data:


[Link](feature)
[Link](label)

X = [Link](X).reshape(-1,nrows,ncolumns,channels)
y = [Link](y)

[30]: from sklearn.model_selection import train_test_split


X_train, X_val, y_train, y_val = train_test_split(X,y,test_size=0.
,→2,random_state=2)

[31]: from keras import layers


from keras import models
from keras import optimizers
from [Link] import ImageDataGenerator
from [Link] import img_to_array, load_img

model = [Link]()

14
[Link](layers.Conv2D(32, (3, 3), activation='relu',input_shape=(150, 150,␣
,→3)))

[Link](layers.MaxPooling2D((2, 2)))
[Link](layers.Conv2D(64, (3, 3), activation='relu'))
[Link](layers.MaxPooling2D((2, 2)))
[Link](layers.Conv2D(128, (3, 3), activation='relu'))
[Link](layers.MaxPooling2D((2, 2)))
[Link](layers.Conv2D(128, (3, 3), activation='relu'))
[Link](layers.MaxPooling2D((2, 2)))
[Link]([Link]())
[Link]([Link](0.5)) #Dropout for regularization
[Link]([Link](512, activation='relu'))
[Link]([Link](1, activation='sigmoid')) #Sigmoid function at the end␣
,→because we have just two classes

[32]: [Link](loss='binary_crossentropy', optimizer=optimizers.


,→RMSprop(lr=1e-4), metrics=['acc'])

[33]: train_datagen = ImageDataGenerator(rescale=1/255,


rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,)

val_datagen = ImageDataGenerator(rescale=1/255)

[34]: train_generator = train_datagen.flow(X_train, y_train, batch_size=batch_size)


val_generator = val_datagen.flow(X_val, y_val, batch_size=batch_size)

[35]: history = model.fit_generator(train_generator,


steps_per_epoch=ntrain // batch_size,
epochs=64,
validation_data=val_generator,
validation_steps=nval // batch_size)

Epoch 1/64
1/1 [==============================] - 2s 2s/step - loss: 0.7488 - acc:
0.0000e+00 - val_loss: 0.7260 - val_acc: 0.0000e+00
Epoch 2/64
1/1 [==============================] - 0s 322ms/step - loss: 0.6702 - acc:
0.7500 - val_loss: 0.7659 - val_acc: 0.0000e+00
Epoch 3/64
1/1 [==============================] - 0s 238ms/step - loss: 0.7086 - acc:
0.2500 - val_loss: 0.7933 - val_acc: 0.0000e+00
Epoch 4/64

15
1/1 [==============================] - 0s 228ms/step - loss: 0.7221 - acc:
0.2500 - val_loss: 0.8002 - val_acc: 0.0000e+00
Epoch 5/64
1/1 [==============================] - 0s 223ms/step - loss: 0.6538 - acc:
0.5000 - val_loss: 0.8223 - val_acc: 0.0000e+00
Epoch 6/64
1/1 [==============================] - 0s 236ms/step - loss: 0.6598 - acc:
0.5000 - val_loss: 0.8112 - val_acc: 0.0000e+00
Epoch 7/64
1/1 [==============================] - 0s 220ms/step - loss: 0.6797 - acc:
0.5000 - val_loss: 0.8222 - val_acc: 0.0000e+00
Epoch 8/64
1/1 [==============================] - 0s 236ms/step - loss: 0.6600 - acc:
0.5000 - val_loss: 0.8145 - val_acc: 0.0000e+00
Epoch 9/64
1/1 [==============================] - 0s 227ms/step - loss: 0.6658 - acc:
0.5000 - val_loss: 0.8071 - val_acc: 0.0000e+00
Epoch 10/64
1/1 [==============================] - 0s 200ms/step - loss: 0.6317 - acc:
0.5000 - val_loss: 0.8206 - val_acc: 0.0000e+00
Epoch 11/64
1/1 [==============================] - 0s 211ms/step - loss: 0.6144 - acc:
0.5000 - val_loss: 0.8757 - val_acc: 0.0000e+00
Epoch 12/64
1/1 [==============================] - 0s 244ms/step - loss: 0.5905 - acc:
0.5000 - val_loss: 0.8940 - val_acc: 0.0000e+00
Epoch 13/64
1/1 [==============================] - 0s 226ms/step - loss: 0.5772 - acc:
0.5000 - val_loss: 0.8304 - val_acc: 0.0000e+00
Epoch 14/64
1/1 [==============================] - 0s 230ms/step - loss: 0.6076 - acc:
0.7500 - val_loss: 0.8506 - val_acc: 0.0000e+00
Epoch 15/64
1/1 [==============================] - 0s 231ms/step - loss: 0.5957 - acc:
0.7500 - val_loss: 0.8438 - val_acc: 0.0000e+00
Epoch 16/64
1/1 [==============================] - 0s 209ms/step - loss: 0.5621 - acc:
1.0000 - val_loss: 0.9591 - val_acc: 0.0000e+00
Epoch 17/64
1/1 [==============================] - 0s 221ms/step - loss: 0.5479 - acc:
0.7500 - val_loss: 0.8745 - val_acc: 0.0000e+00
Epoch 18/64
1/1 [==============================] - 0s 192ms/step - loss: 0.5567 - acc:
1.0000 - val_loss: 0.9368 - val_acc: 0.0000e+00
Epoch 19/64
1/1 [==============================] - 0s 230ms/step - loss: 0.5336 - acc:
0.5000 - val_loss: 0.7476 - val_acc: 0.0000e+00
Epoch 20/64

16
1/1 [==============================] - 0s 226ms/step - loss: 0.5187 - acc:
1.0000 - val_loss: 1.0511 - val_acc: 0.0000e+00
Epoch 21/64
1/1 [==============================] - 0s 227ms/step - loss: 0.5668 - acc:
0.5000 - val_loss: 0.6944 - val_acc: 0.0000e+00
Epoch 22/64
1/1 [==============================] - 0s 210ms/step - loss: 0.5034 - acc:
1.0000 - val_loss: 0.9773 - val_acc: 0.0000e+00
Epoch 23/64
1/1 [==============================] - 0s 230ms/step - loss: 0.4580 - acc:
0.7500 - val_loss: 0.7391 - val_acc: 0.0000e+00
Epoch 24/64
1/1 [==============================] - 0s 225ms/step - loss: 0.4911 - acc:
1.0000 - val_loss: 0.9671 - val_acc: 0.0000e+00
Epoch 25/64
1/1 [==============================] - 0s 229ms/step - loss: 0.4118 - acc:
1.0000 - val_loss: 0.6861 - val_acc: 1.0000
Epoch 26/64
1/1 [==============================] - 0s 233ms/step - loss: 0.4328 - acc:
1.0000 - val_loss: 0.8052 - val_acc: 0.0000e+00
Epoch 27/64
1/1 [==============================] - 0s 210ms/step - loss: 0.3462 - acc:
1.0000 - val_loss: 0.6915 - val_acc: 1.0000
Epoch 28/64
1/1 [==============================] - 0s 216ms/step - loss: 0.3413 - acc:
1.0000 - val_loss: 0.8950 - val_acc: 0.0000e+00
Epoch 29/64
1/1 [==============================] - 0s 214ms/step - loss: 0.3386 - acc:
1.0000 - val_loss: 0.7495 - val_acc: 0.0000e+00
Epoch 30/64
1/1 [==============================] - 0s 233ms/step - loss: 0.2826 - acc:
1.0000 - val_loss: 0.6020 - val_acc: 1.0000
Epoch 31/64
1/1 [==============================] - 0s 238ms/step - loss: 0.2306 - acc:
1.0000 - val_loss: 0.8484 - val_acc: 0.0000e+00
Epoch 32/64
1/1 [==============================] - 0s 219ms/step - loss: 0.2038 - acc:
1.0000 - val_loss: 0.2980 - val_acc: 1.0000
Epoch 33/64
1/1 [==============================] - 0s 223ms/step - loss: 0.2371 - acc:
1.0000 - val_loss: 1.2804 - val_acc: 0.0000e+00
Epoch 34/64
1/1 [==============================] - 0s 227ms/step - loss: 0.2799 - acc:
1.0000 - val_loss: 0.3936 - val_acc: 1.0000
Epoch 35/64
1/1 [==============================] - 0s 220ms/step - loss: 0.3017 - acc:
0.7500 - val_loss: 1.4285 - val_acc: 0.0000e+00
Epoch 36/64

17
1/1 [==============================] - 0s 213ms/step - loss: 0.3286 - acc:
0.7500 - val_loss: 0.3543 - val_acc: 1.0000
Epoch 37/64
1/1 [==============================] - 0s 230ms/step - loss: 0.2262 - acc:
1.0000 - val_loss: 0.8729 - val_acc: 0.0000e+00
Epoch 38/64
1/1 [==============================] - 0s 240ms/step - loss: 0.1715 - acc:
1.0000 - val_loss: 0.5858 - val_acc: 1.0000
Epoch 39/64
1/1 [==============================] - 0s 223ms/step - loss: 0.1511 - acc:
1.0000 - val_loss: 0.4047 - val_acc: 1.0000
Epoch 40/64
1/1 [==============================] - 0s 213ms/step - loss: 0.1389 - acc:
1.0000 - val_loss: 0.6890 - val_acc: 1.0000
Epoch 41/64
1/1 [==============================] - 0s 220ms/step - loss: 0.0760 - acc:
1.0000 - val_loss: 0.5406 - val_acc: 1.0000
Epoch 42/64
1/1 [==============================] - 0s 228ms/step - loss: 0.1174 - acc:
1.0000 - val_loss: 0.3511 - val_acc: 1.0000
Epoch 43/64
1/1 [==============================] - 0s 204ms/step - loss: 0.0817 - acc:
1.0000 - val_loss: 0.3587 - val_acc: 1.0000
Epoch 44/64
1/1 [==============================] - 0s 220ms/step - loss: 0.1399 - acc:
1.0000 - val_loss: 0.7814 - val_acc: 0.0000e+00
Epoch 45/64
1/1 [==============================] - 0s 209ms/step - loss: 0.1517 - acc:
1.0000 - val_loss: 0.6013 - val_acc: 1.0000
Epoch 46/64
1/1 [==============================] - 0s 244ms/step - loss: 0.1596 - acc:
1.0000 - val_loss: 0.7223 - val_acc: 0.0000e+00
Epoch 47/64
1/1 [==============================] - 0s 226ms/step - loss: 0.0931 - acc:
1.0000 - val_loss: 0.2536 - val_acc: 1.0000
Epoch 48/64
1/1 [==============================] - 0s 221ms/step - loss: 0.0430 - acc:
1.0000 - val_loss: 0.2913 - val_acc: 1.0000
Epoch 49/64
1/1 [==============================] - 0s 243ms/step - loss: 0.0561 - acc:
1.0000 - val_loss: 0.6297 - val_acc: 1.0000
Epoch 50/64
1/1 [==============================] - 0s 217ms/step - loss: 0.0457 - acc:
1.0000 - val_loss: 0.1851 - val_acc: 1.0000
Epoch 51/64
1/1 [==============================] - 0s 201ms/step - loss: 0.3246 - acc:
0.7500 - val_loss: 3.0876 - val_acc: 0.0000e+00
Epoch 52/64

18
1/1 [==============================] - 0s 223ms/step - loss: 0.4525 - acc:
0.7500 - val_loss: 0.4010 - val_acc: 1.0000
Epoch 53/64
1/1 [==============================] - 0s 230ms/step - loss: 0.0689 - acc:
1.0000 - val_loss: 0.4990 - val_acc: 1.0000
Epoch 54/64
1/1 [==============================] - 0s 229ms/step - loss: 0.1680 - acc:
1.0000 - val_loss: 1.5214 - val_acc: 0.0000e+00
Epoch 55/64
1/1 [==============================] - 0s 208ms/step - loss: 0.2285 - acc:
0.7500 - val_loss: 0.2791 - val_acc: 1.0000
Epoch 56/64
1/1 [==============================] - 0s 231ms/step - loss: 0.1566 - acc:
1.0000 - val_loss: 1.1356 - val_acc: 0.0000e+00
Epoch 57/64
1/1 [==============================] - 0s 227ms/step - loss: 0.0868 - acc:
1.0000 - val_loss: 0.4983 - val_acc: 1.0000
Epoch 58/64
1/1 [==============================] - 0s 215ms/step - loss: 0.0646 - acc:
1.0000 - val_loss: 0.2248 - val_acc: 1.0000
Epoch 59/64
1/1 [==============================] - 0s 232ms/step - loss: 0.2712 - acc:
0.7500 - val_loss: 2.0532 - val_acc: 0.0000e+00
Epoch 60/64
1/1 [==============================] - 0s 242ms/step - loss: 0.2136 - acc:
0.7500 - val_loss: 0.4599 - val_acc: 1.0000
Epoch 61/64
1/1 [==============================] - 0s 214ms/step - loss: 0.0810 - acc:
1.0000 - val_loss: 0.5290 - val_acc: 1.0000
Epoch 62/64
1/1 [==============================] - 0s 227ms/step - loss: 0.0383 - acc:
1.0000 - val_loss: 0.3421 - val_acc: 1.0000
Epoch 63/64
1/1 [==============================] - 0s 239ms/step - loss: 0.0513 - acc:
1.0000 - val_loss: 0.4359 - val_acc: 1.0000
Epoch 64/64
1/1 [==============================] - 0s 235ms/step - loss: 0.0359 - acc:
1.0000 - val_loss: 0.3430 - val_acc: 1.0000

[36]: test_datagen=ImageDataGenerator(rescale=1./255)

[37]: i = 0
text_labels = []
[Link](figsize=(30,20))
for batch in test_datagen.flow(X, batch_size=1):
pred = [Link](batch)
if pred > 0.5:

19
text_labels.append('orange')
else:
text_labels.append('apple')
[Link](5 / columns + 1, columns, i + 1)
[Link]('This is a ' + text_labels[i])
color_img = [Link](batch[0], cv2.COLOR_BGR2RGB)
imgplot=[Link](color_img)
i += 1
if i % 10 == 0:
break
[Link]()

[ ]:

20

You might also like