Я пытаюсь сделать распознавание изображения с 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'))