Несоответствие между training_acc и validation acc во время обучения, несмотря на тот же набор данных - PullRequest
0 голосов
/ 30 января 2019

Мой проверочный набор данных является точной копией моего набора тренировочных данных.Однако во время обучения, в конце каждой эпохи, моя точность обучения составляет 99,5 или около того (в среднем по всем партиям), и моя проверка составляет около 96,7.Если я меняю оптимизатор, я замечаю, что разрыв может быть еще больше.

Мой набор полных данных - только 4000 изображений.Во время обучения мои batch size is 50 и steps_per_epoch is 100, поэтому модель должна видеть около 5000 images.

Почему существует такое огромное расхождение между тренировкой и точностью проверки, если они имеют один и тот же набор данных?

Вот как я подгоняю свою модель:

r_optimizer = optimizers.Adagrad(lr=0.001, epsilon=None, decay=0.0) 
r_batch_size = 50
r_epochs = 5
r_steps_per_epoch = 80




MODEL.optimizer = r_optimizer
  MODEL.compile(optimizer= r_optimizer,
              loss='categorical_crossentropy',
              metrics = ['accuracy'])




history = MODEL.fit_generator(
         train_gen,
        steps_per_epoch = r_steps_per_epoch,
        epochs = r_epochs,
        validation_data=valid_gen,
        validation_steps= np.ceil(len(valid_gen.filenames)/r_batch_size),
        callbacks = callbacks,
        shuffle= True,
        verbose =2 )

Я использую xception с помощью обучения передачи и добавил следующие слои:

132 : global_average_pooling2d_1
133 : dense_1
134 : dropout_1
135 : dense_2
136 : dense_3

dropout был установлен на 0путем копирования весов и создания новой модели (ранее это было только .20

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