-1

I'm having multiple errors while running this VGG training code (code and errors shown below). I don't know if its because of my dataset or is it something else.


import tensorflow as tf
from tensorflow import keras
from keras import Sequential,optimizers
from keras.models import Model
from keras.applications.vgg16 import VGG16
from keras.preprocessing.image import ImageDataGenerator
from keras.preprocessing import image
from keras.applications.vgg16 import VGG16
from keras.layers import Dense,Conv2D,MaxPooling2D,Flatten,BatchNormalization,Dropout,Convolution2D,ZeroPadding2D

# generators
trdata = ImageDataGenerator(rescale = 1./255)
traindata = trdata.flow_from_directory(directory="/content/splited_data/train",
    batch_size=64,
    target_size=(224,224)
)

tsdata = ImageDataGenerator(rescale = 1./255)
testdata = tsdata.flow_from_directory(directory="/content/splited_data/test",
    batch_size=64,
    target_size=(224,224)
)

# create VGG Model
model = VGG16(weights="imagenet",include_top=True)

model.summary()

for layers in (model.layers)[:19]:
  print(layers)
  layers.trainable =False

X = model.layers[-2].output
predictions = Dense(3,activation="softmax")(X)
model_final = Model(inputs = model.input,outputs = predictions)

model_final.compile(optimizer=optimizers.SGD(lr=0.0001,momentum=0.9),loss="categorical_crossentropy",metrics=['accuracy',tf.keras.metrics.Precision(),tf.keras.metrics.Recall()])

model_final.summary()

# from keras.callbacks import ModelCheckpoint,EarlyStopping
# checkpoint =ModelCheckpoint("vgg16_1.h5",monitor="val_accuracy",verbose=1,save_best_only=True,save_weights_only=False,mode="auto",save_freq=1)
# early =EarlyStopping(monitor="val_accuracy",min_delta=0,patience=40,verbose=1,mode="auto")
# hist=model_final.fit_generator(generator=traindata,steps_per_epoch=2,epochs=10,validation_data=testdata,validation_steps=1,callbacks=[checkpoint,early])
hist=model_final.fit_generator(generator=traindata,steps_per_epoch=2,epochs=10,validation_data=testdata)

#1 errorenter image description here

output of epochs

Any changes I need to work on

1 Answers1

0

Ok, I tried it out, and no error, except if I introduce the number of output neurons wrong.
So I guess you must committed the same mistake. Here in predictions = Dense(3,activation="softmax")(X) Are you sure you have 3 classes? Maybe your distribution of folders is wrong. Remember you need this:

train:
------cat: fotos
------dog: fotos
------horse: fotos

TheEngineerProgrammer
  • 1,282
  • 1
  • 4
  • 9