В настоящее время я пытаюсь обучить набор данных на модели VGG-16.Проблема в том, что точность не сильно меняется, но она не придерживается фиксированной точности.Рисунок сюжета можно увидеть ниже.Любые предположения, почему это происходит?
Я следовал нескольким инструкциям, чтобы исправить эту проблему, которая о точности застрял, но они не работают.
РЕДАКТИРОВАТЬ:
200 эпох
50 эпох с весами Imagenet
Код
Входной размер для модели составляет 600 изображений 224x224x3.Более того, две метки собака и кошка (0,1).
Свойства
imageSize = (224,224,3)
epochs = 25
batch_size = 32
Модель
from keras.applications.vgg16 import VGG16
vgg = VGG16(input_shape=imageSize,weights=None,include_top=False)
x = Flatten()(vgg.output)
prediction = Dense(1,activation='sigmoid')(x)
model = Model(inputs=vgg.input,outputs=prediction)
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=['accuracy'])
Генератор изображений
from keras.applications.vgg16 import preprocess_input
from keras.preprocessing import image
from keras.preprocessing.image import ImageDataGenerator
imgGen = ImageDataGenerator(rotation_range=20,
width_shift_range=0.1,
height_shift_range=0.1,
shear_range=0.1,
zoom_range=0.2,
horizontal_flip=True,
vertical_flip=True,
preprocessing_function = preprocess_input)
Подходящая модель
r = model.fit_generator(imgGen.flow(trainX, trainY, batch_size=batch_size),
validation_data = imgGen.flow(testX, testY, batch_size=batch_size),
epochs=epochs,
steps_per_epoch=len(trainX)//batch_size,
validation_steps=len(testX)//batch_size,
verbose = 1,
)