С ResNet50 точность проверки и потери не меняются - PullRequest
3 голосов
/ 15 апреля 2020

Я пытаюсь сделать распознавание изображения с ResNet50 в Python (keras). Я пытался выполнить ту же задачу с VGG16, и я получил некоторые результаты, подобные этим (которые мне кажутся нормальными): resultsVGG16 . Функции точности обучения и проверки / потери становятся лучше с каждым шагом, поэтому сеть должна учиться.

Однако при ResNet50 функции обучения делают ставки лучше, а функции проверки не меняются: resultsRe sNet

Я использовал один и тот же код и данные в обоих случаях, только модель меняется.

Так в чем же причины ResNet50 учиться только на тренировочных данных?

Моя модель Re sNet выглядит следующим образом:

'' 'python

model = Sequential()
base_model = VGG16(weights='imagenet', include_top=False,input_shape= 
(image_size,image_size,3))
for layer in base_model.layers[:-4]:
    layer.trainable=False

model.add(base_model)
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.4))
model.add(Dense(NUM_CLASSES, activation='softmax'))

VGG очень похож:

model = Sequential()
base_model = ResNet50(include_top=False, weights='imagenet', input_shape= 
(image_size,image_size,3))
for layer in base_model.layers[:-8]:
     layer.trainable=False

model.add(base_model)
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.4))
model.add(Dense(NUM_CLASSES, activation='softmax'))
...