Value accuracy remains the same
I have used my own build model and also fine-tuned other two model ResNeT50 and VGG16, but val_acc remains the same for them all.
import tensorflow as tf
model_1 = Sequential()
model_1.add(Conv2D(32, kernel_size=(3,3), padding='same', activation='relu',
input_shape=(224,224,3)))
model_1.add(MaxPooling2D(2,2))
model_1.add(Dropout(0.3))
model_1.add(Conv2D(64, kernel_size=(3,3), padding='same', activation='relu'))
model_1.add(Flatten())
model_1.add(Dropout(0.3))
model_1.add(BatchNormalization())
model_1.add(Dense(1, activation='sigmoid'))
model_1.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
history_1 = model_1.fit(train_gen,
epochs=3,
batch_size=32,
validation_data=(val_gen))
Results:
CPU Frequency: 2199995000 Hz
Epoch 1/3
13/13 [==============================] - 81s 6s/step - loss: 2.3583 - accuracy: 0.3001 - val_loss: 0.3717 - val_accuracy: 0.1900
Epoch 2/3
13/13 [==============================] - 67s 5s/step - loss: 0.5658 - accuracy: 0.2054 - val_loss: 0.3613 - val_accuracy: 0.1900
Epoch 3/3
VGG16:
VGG = tf.keras.applications.vgg16.VGG16(weights='imagenet',
include_top=False,
input_shape=(224,224,3))
model_2 = Sequential()
model_2.add(VGG)
model_2.add(Flatten())
model_2.add(Dense(128, activation='relu'))
model_2.add(Dropout(0.2))
model_2.add(Dense(1, activation='sigmoid'))
model_2.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
history_2 = model_2.fit(train_gen,
epochs=3,
batch_size=32,
validation_data=(val_gen))
Epoch 1/3
13/13 [==============================] - 424s 33s/step - loss: 6.8425 - accuracy: 0.2368 - val_loss: 0.6241 - val_accuracy: 0.1900
Epoch 2/3
13/13 [==============================] - 426s 32s/step - loss: 0.5443 - accuracy: 0.1708 - val_loss: 0.5196 - val_accuracy: 0.1900
What could I do to fix this?
Topic finetuning cnn keras tensorflow
Category Data Science