Низкая точность проверки при переподготовке v3 - PullRequest
0 голосов
/ 25 мая 2018

Я использую набор данных о кошках и собаках с 25000 изображений.

xtrain.shape = (25000, 224, 224, 3)
ytrain.shape = (25000, 2)

Затем, используя InceptionV3, я пытаюсь настроить модель этого набора данных.

from keras.applications.inception_v3 import InceptionV3
base_model = InceptionV3(include_top=False,weights='imagenet')
base = base_model.output
layer1 = GlobalAveragePooling2D()(base)
layer2 = Dense(128,activation='relu')(layer1)
prediction = Dense(2,activation='softmax')(layer2)
model = Model(inputs=base_model.input,outputs=prediction)

for layer in base_model.layers:
    layer.trainable = False
model.compile(optimizer=Adam(lr=0.001), 
              loss='categorical_crossentropy',metrics=['accuracy'])

Затем я тренировал последний слой:

model.fit(x=xtrain,y=ytrain,batch_size=100,
      epochs=10,verbose=1,validation_split=0.2)

Затем я точно настроил последние 50 слоев:

for layer in model.layers[:250]:
    layer.trainable = False
for layer in model.layers[250:]:
    layer.trainable = True

from keras.optimizers import Adam
model.compile(optimizer=Adam(lr=0.0001), 
             loss='categorical_crossentropy',metrics=['accuracy'])

model.fit(x=x,y=y,batch_size=100,epochs=50,verbose=1,validation_data= . 
         (xx,yy))

Я тренируюсь в течение 50 эпох, я получаю около 95%точность обучения, но только 50% достоверности.Я не понимаю почему.Кроме того, набор данных imagenet уже содержит классы о кошках и собаках, поэтому нет необходимости в тяжелых тренировках для моего набора данных.Я знаю, что я где-то не прав, кто-то, пожалуйста, укажите на ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...