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